Prepararse para implementar clústeres de administración en Microsoft Azure

En este tema se explica cómo preparar Microsoft Azure para ejecutar Tanzu Kubernetes Grid.

Si va a instalar Tanzu Kubernetes Grid en Azure VMware Solution (AVS), va a realizar la instalación en un entorno vSphere. Consulte Preparar Azure VMware Solution en Microsoft Azure en Preparar para implementar clústeres de administración en un entorno de VMware Cloud para preparar el entorno y Preparar para implementar clústeres de administración en vSphere para implementar clústeres de administración.

Para su comodidad, al final de esta página encontrará una Lista de comprobación de preparación para asegurarse de que está preparado para implementar un clúster de administración de Tanzu Kubernetes Grid en Azure.

Requisitos generales

  • La CLI de Tanzu se ha instalado de forma local. Consulte Instalar la CLI de Tanzu y otras herramientas para su uso con clústeres de administración independientes.
  • Una cuenta de Microsoft Azure con lo siguiente:

    • Permisos necesarios para crear una entidad de servicio y asignarle la función Owner.
      Para obtener más información sobre las funciones, consulte Funciones integradas en Azure.
    • Suficientes cuotas de núcleos de máquina virtual (vCPU) para sus clústeres. Una cuenta de Azure estándar tiene una cuota de 10 vCPU por región. Los requisitos de vCPU dependerán de si utilizará un plan prod o dev. Para obtener más información sobre los planes, consulte Planes de clúster de carga de trabajo.
      Los clústeres de Tanzu Kubernetes Grid requieren 2 vCPU por nodo, lo que se traduce en:
    • Clúster de administración:
      • Plan dev: 4 vCPU (1 principal, 1 de trabajo)
      • Plan prod: 8 vCPU (3 principales, 1 de trabajo)
    • Cada clúster de carga de trabajo:
      • Plan dev: 4 vCPU (1 principal, 1 de trabajo)
      • Plan prod: 12 vCPU (3 principales, 3 de trabajo)
    • Por ejemplo, si se asume un único clúster de administración y todos los clústeres con el mismo plan:

      Plan Clústeres de carga de trabajo vCPU para carga de trabajo vCPU para administración vCPU total
      Dev 1 4 4 8
      5 20 24
      Prod 1 12 8 20
      5 60 68

    • Suficientes cuotas de direcciones IP públicas para los clústeres, incluida la cuota de direcciones IP públicas: estándar, direcciones IP públicas: básicas y direcciones IP públicas estáticas. Una cuenta de Azure estándar tiene una cuota de 10 direcciones IP públicas por región. Cada clúster de Tanzu Kubernetes Grid requiere 2 direcciones IP públicas, independientemente de cuántos nodos de plano de control y nodos de trabajo tenga. Para cada objeto del servicio de Kubernetes con el tipo LoadBalancer, se requiere 1 dirección IP pública.

  • Se permite el tráfico entre la máquina de arranque local y los repositorios de imágenes enumerados en el archivo de lista de materiales (BoM) del clúster de administración, a través del puerto 443, para TCP.*
    • El archivo de BoM se encuentra en ~/.config/tanzu/tkg/bom/, y su nombre incluye la versión Tanzu Kubernetes Grid. Por ejemplo, tkg-bom-v2.2.0+vmware.1 .yaml.
    • Ejecute una búsqueda de DNS en todos los valores de imageRepository para encontrar sus CNCME.
  • (Opcional) OpenSSL instalado localmente para crear un nuevo par de claves o validar la huella digital del paquete de descarga. Consulte OpenSSL.
  • (Opcional) Una red virtual (VNet) con:

    • Una subred para el nodo de plano de control del clúster de administración
    • Un grupo de seguridad de red (NSG) en el grupo de recursos de VNet del clúster que se encuentra en la subred del plano de control y tiene las siguientes reglas de seguridad entrantes para habilitar las conexiones de servidor de API de Kubernetes y SSH:
      • Permita TCP a través del puerto 22 para cualquier origen y destino
      • Permita TCP a través del puerto 6443 para cualquier puerto de origen y destino. El puerto 6443 es donde se expone la API de Kubernetes en las máquinas virtuales de los clústeres que cree. Para cambiar este puerto para un clúster de carga de trabajo o de administración, establezca la variable CLUSTER_API_SERVER_PORT al implementar el clúster.
    • Una subred para los nodos de trabajo del clúster de administración
    • Un NSG para los nodos de trabajo del clúster de administración que se encuentra en el grupo de recursos VNet del clúster y en la subred del nodo de trabajo del clúster

    Si no utiliza una VNet existente, el proceso de instalación crea una nueva.

  • La CLI de Azure se ha instalado de forma local. Consulte Instalar la CLI de Azure en la documentación de Microsoft Azure.

  • Si va a implementar servicios de tipo LoadBalancer en clústeres de carga de trabajo basados en clases, configure una puerta de enlace NAT u otro front-end, como se describe en Los servicios  LoadBalancer para clústeres de carga de trabajo basados en clases en Azure necesitan una configuración manual de puerta de enlace o front-end.

* O consulte Preparar un entorno con acceso a Internet restringido para instalar sin acceso a la red externa.

Ejemplos de dimensionamiento de clústeres de administración

En la siguiente tabla se describen ejemplos de tamaño de clústeres de administración en Azure. Utilice estos datos como guía para asegurarse de que el clúster de administración esté escalado para controlar la cantidad de clústeres de carga de trabajo que planea implementar. La columna Tamaño de máquina virtual del clúster de carga de trabajo muestra los tamaños de máquina virtual que se utilizaron para los ejemplos en la columna Puede administrar….

Plan de clúster de administración Tamaño de máquina virtual del clúster de administración Puede administrar … Tamaño de máquina virtual del clúster de carga de trabajo
3 nodos de plano de control y 3 nodos de trabajo
  • Nodos del plano de control: Standard_D2s_v3 (CPU: 2; Memoria: 8 GB; SSD: 16 GB)
  • Nodos de trabajo: Standard_D2s_v3 (CPU: 2; Memoria: 8 GB; SSD: 16 GB)
Ejemplos:
  • 5 clústeres de carga de trabajo, cada uno implementado con 3 nodos de plano de control y 200 nodos de trabajo; o
  • 10 clústeres de carga de trabajo, cada clúster implementado con 3 nodos de plano de control y 50 nodos de trabajo
  • Nodos del plano de control: Standard_D2s_v3 (CPU: 2; Memoria: 8 GB; SSD: 16 GB)
  • Nodos de trabajo: Standard_D2s_v3 (CPU: 2; Memoria: 8 GB; SSD: 16 GB)
3 nodos de plano de control y 3 nodos de trabajo
  • Nodos del plano de control: Standard_D2s_v3 (CPU: 2; Memoria: 8 GB; SSD: 16 GB)
  • Nodos de trabajo: Standard_D2s_v3 (CPU: 2; Memoria: 8 GB; SSD: 16 GB)
Ejemplo: Un clúster de carga de trabajo, implementado con 3 nodos de plano de control y 250 nodos de trabajo
  • Nodos del plano de control: Standard_D4s_v3 (CPU: 4; Memoria: 16 GB; SSD: 32 GB)
  • Nodos de trabajo: Standard_D2s_v3 (CPU: 2; Memoria: 8 GB; SSD: 16 GB)
3 nodos de plano de control y 3 nodos de trabajo
  • Nodos del plano de control: Standard_D4s_v3 (CPU: 4; Memoria: 16 GB; SSD: 32 GB)
  • Nodos de trabajo: Standard_D4s_v3 (CPU: 4; Memoria: 16 GB; SSD: 32 GB)
Ejemplo: 199 clústeres de carga de trabajo, cada uno implementado con 3 nodos de plano de control y 3 nodos de trabajo
  • Nodos del plano de control: Standard_D2s_v3 (CPU: 2; Memoria: 8 GB; SSD: 16 GB)
  • Nodos de trabajo: Standard_D2s_v3 (CPU: 2; Memoria: 8 GB; SSD: 16 GB)

Crear NSG de Azure para la VNet existente

Los clústeres de carga de trabajo y administración de Tanzu Kubernetes Grid en Azure requieren que se definan dos grupos de seguridad de red (NSG) en su VNet y en su grupo de recursos de VNet:

  • Un NSG denominado CLUSTER-NAME-controlplane-nsg y asociado con la subred del plano de control del clúster
  • Un NSG denominado CLUSTER-NAME-node-nsg y asociado con la subred del nodo de trabajo del clúster

    Donde CLUSTER-NAME es el nombre del clúster.

    Precaución

    Proporcionar nombres de NSG que no sigan el formato anterior puede impedir la implementación.

Si especifica una VNet existente para el clúster de administración, debe crear estos NSG como se describe en Requisitos generales anteriormente. Se especifica una VNet existente para un clúster de administración con Seleccionar una VNet existente en la interfaz del instalador o AZURE_VNET_NAME en su archivo de configuración.

Si no especifica una VNet existente para el clúster, el proceso de implementación crea una nueva VNet y los NSG necesarios.

Consulte la tabla Microsoft Azure en la Referencia de variables del archivo de configuración para obtener información sobre cómo configurar la VNet, los grupos de recursos y las subredes del clúster.

Registrar Tanzu Kubernetes Grid como una aplicación cliente de Azure

Tanzu Kubernetes Grid administra los recursos de Azure como una aplicación cliente registrada que accede a Azure a través de una entidad de servicio. Para crear la entidad de servicio y configurar su acceso a los recursos de Azure, puede utilizar el comando az ad sp create-for-rbac.

  1. Inicie sesión en la CLI de Azure ejecutando az login.

  2. Cree una entidad de servicio y asígnele la función Owner:

    az ad sp create-for-rbac --role "Owner" --name "APP-NAME" --scopes /subscriptions/SUBSCRIPTION-ID/resourceGroups/RESOURCE-GROUP
    az role assignment create --assignee APP-ID --role "Owner"
    

    Donde:

    • APP-NAME es cualquier nombre que se le asigne a la entidad de servicio
    • SUBSCRIPTION-ID y RESOURCE-GROUP son el identificador de suscripción de Azure y el grupo de recursos de VNet
    • APP-ID es el valor appId devuelto de az ad sp create-for-rbac

    Por ejemplo, para crear y asignar la función Owner a una entidad de servicio denominada tkg:

    $ az ad sp create-for-rbac --role "Owner" --name "tkg" --scopes /subscriptions/c789uce3-aaaa-bbbb-cccc-a51b6b0gb405/resourceGroups/myrg
    Creating 'Owner' role assignment under scope '/subscriptions/c789uce3-aaaa-bbbb-cccc-a51b6b0gb405'
    The output includes credentials that you must protect. Be sure that you do not include these credentials in your code or check the credentials into your source control. For more information, see https://aka.ms/azadsp-cli
    'name' property in the output is deprecated and will be removed in the future. Use 'appId' instead.
    {
     "appId": "c407cfd4-aaaa-bbbb-cccc-80af703eb0ed",
     "displayName": "tkg",
     "name": "c407cfd4-aaaa-bbbb-cccc-80af703eb0ed",
     "password": "R6yM_.aaaabbbbccccdddd111122223333",
     "tenant": "9c117323-aaaa-bbbb-cccc-9ee430723ba3"
    }
    $ az role assignment create --assignee c407cfd4-aaaa-bbbb-cccc-80af703eb0ed --role "Owner"
    

    Registre estos resultados. Utilizará esta información en los siguientes pasos de Aceptar la licencia de imagen base y más adelante al implementar un clúster de administración. Para obtener la lista completa de opciones compatibles con az ad sp create-for-rbac, consulte az ad sp create-for-rbac en la documentación de Azure.

Aceptar la licencia de imagen base

Para ejecutar máquinas virtuales del clúster de administración en Azure, acepte la licencia para su versión base de Kubernetes y el sistema operativo de máquina.

Ejecute el comando az vm image terms accept especificando el --plan y el identificador de suscripción.

En Tanzu Kubernetes Grid v2.2, el valor predeterminado --plan de la imagen del clúster es k8s-1dot25dot7-ubuntu-2004, de acuerdo con la versión 1.25.7 de Kubernetes y el sistema operativo de la máquina, Ubuntu 20.04. Ejecute el siguiente comando:

az vm image terms accept --publisher vmware-inc --offer tkg-capi-2022-06-24 --plan k8s-1dot25dot7-ubuntu-2004 --subscription AZURE_SUBSCRIPTION_ID

Donde AZURE_SUBSCRIPTION_ID es el identificador de suscripción de Azure.

Debe repetir esto para aceptar la licencia de imagen base para cada versión de Kubernetes o sistema operativo que desee utilizar al implementar sus clústeres, y cada vez que actualice a una nueva versión de Tanzu Kubernetes Grid.

Crear un par de claves SSH (opcional)

Los clústeres de administración de se implementan desde una máquina denominada machinebootstrap, mediante la CLI de Tanzu. Para conectarse a Azure, la máquina de arranque debe proporcionar la parte de clave pública de un par de claves SSH. Si la máquina de arranque aún no tiene un par de claves SSH, puede utilizar una herramienta como ssh-keygen para generar una.

  1. En la máquina de arranque, ejecute el siguiente comando ssh-keygen.

    ssh-keygen -t rsa -b 4096 -C "[email protected]"
    
  2. Cuando se le solicite Enter file in which to save the key (/root/.ssh/id_rsa):, pulse Entrar para aceptar el valor predeterminado.

  3. Introduzca y repita una contraseña para el par de claves.
  4. Agregue la clave privada al agente SSH que se ejecuta en su máquina e introduzca la contraseña que creó en el paso anterior.

    ssh-add ~/.ssh/id_rsa
    
  5. Abra el archivo .ssh/id_rsa.pub en un editor de texto para poder copiarlo y pegarlo fácilmente al implementar un clúster de administración.

Lista de comprobación de preparación

Utilice esta lista de comprobación para asegurarse de que está preparado para implementar un clúster de administración Tanzu Kubernetes Grid en Azure:

  • CLI de Tanzu instalada

    • Ejecute tanzu version. El resultado debe mostrar version: v0.29.0, que es la versión de Tanzu Framework en Tanzu Kubernetes Grid v2.2.
  • Cuenta de Azure

    • Inicie sesión en el portal web de Azure en https://portal.azure.com.
  • CLI de Azure instalada

    • Ejecute az version. El resultado debe mostrar la versión actual de la CLI de Azure como aparece en Instalar la CLI de Azure, en la documentación de Microsoft Azure.
  • Aplicación tkg registrada

  • Licencia de imagen de máquina virtual base aceptada

    • Ejecute az vm image terms show --publisher vmware-inc --offer tkg-capi-2022-06-24 --plan k8s-1dot25dot7-ubuntu-2004. El resultado debe contener "accepted": true.

Qué hacer a continuación

Para las implementaciones de producción, se recomienda enfáticamente habilitar la administración de identidades para sus clústeres: * Para obtener información sobre los pasos de preparación que se deben realizar antes de implementar un clúster de administración, consulte Obtener los detalles del proveedor de identidades en Configurar la administración de identidades. * Para obtener información conceptual sobre la administración de identidades y el control de acceso en Tanzu Kubernetes Grid, consulte Acerca de la administración de identidades y acceso.

Si utiliza Tanzu Kubernetes Grid en un entorno con una conexión externa a Internet, una vez que haya configurado la administración de identidades, estará listo para implementar clústeres de administración en Azure.

check-circle-line exclamation-circle-line close-line
Scroll to top icon