Prepararse para implementar clústeres de administración en AWS

En este tema se explica cómo preparar Amazon Web Services (AWS) para ejecutar Tanzu Kubernetes Grid.

Antes de poder utilizar la interfaz de la CLI o del instalador de Tanzu para implementar un clúster de administración, debe preparar la máquina de arranque en la que se ejecuta la CLI de Tanzu y configurar la cuenta de la cuenta de Amazon Web Services (AWS).

Si va a instalar Tanzu Kubernetes Grid en VMware Cloud on AWS, lo hace en un entorno vSphere. Consulte Preparar VMware Cloud on AWS 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.

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.
  • Tiene una cuenta de AWS activa con:
    • Clave de acceso y secreto de clave de acceso. Para obtener más información sobre las claves de acceso, consulte Claves de acceso y cuenta de AWS en la documentación de AWS.
    • Permisos descritos en Permisos de AWS necesarios. Estos permisos permiten a Tanzu Kubernetes Grid crear y administrar clústeres en AWS.
  • Una VPC en las zonas de disponibilidad en las que se implementa un clúster de administración. Por ejemplo, una VPC que creó manualmente o mediante herramientas como AWS CloudFormation o Terraform. La VPC debe estar configurada con:
    • Dos subredes para clústeres de desarrollo o seis subredes para clústeres de producción.
    • Puertas de enlace NAT como se indica a continuación o bien consulte Amazon VPC sin puertas de enlace NAT:
      • Una puerta de enlace NAT para clústeres de desarrollo o tres puertas de enlace NAT para clústeres de producción.
        • La cuota de la puerta de enlace NAT predeterminada en AWS es de 5 instancias por zona de disponibilidad, por cuenta. Cuando se implementa un clúster de administración, todos los clústeres de carga de trabajo comparten la VPC del clúster de administración y sus puertas de enlace NAT.
        • Consulte Uso de recursos en la cuenta de Amazon Web Services y Cuotas de Amazon VPC en la documentación de AWS.
      • Una puerta de enlace de Internet y las tablas de enrutamiento correspondientes.
      • (Opcional) Grupos de seguridad configurados con las reglas adecuadas.
  • Su cuenta de AWS tiene suficientes cuotas de recursos para direcciones IP elásticas (EIP). La cuota de EIP predeterminada es de 5 direcciones EIP por región y por cuenta.
  • Tráfico permitido entre la máquina de arranque local y el puerto 6443 de todas las máquinas virtuales de los clústeres que cree. El puerto 6443 es donde se expone la API de Kubernetes de forma predeterminada. 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.
  • 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 BOM está bajo ~/.config/tanzu/tkg/bom/ y su nombre incluye la versión Tanzu Kubernetes Grid, por ejemplo tkg-bom-2.2.0+vmware.1.yaml para v2.2.
    • Ejecute una búsqueda de DNS en todos los valores de imageRepository, por ejemplo, projects.registry.vmware.com/tkg, para encontrar los CNAME a los que se permite el acceso.
  • La CLI de AWS se ha instalado de forma local.

  • jq instalado localmente.

    La guía de la CLI de AWS utiliza jq para procesar JSON al crear pares de claves SSH. También se utiliza para preparar el entorno o las variables de configuración cuando se implementa Tanzu Kubernetes Grid mediante la CLI.

  • Para solucionar un problema desconocido con CAPA, establezca EXP_EXTERNAL_RESOURCE_GC=false en el entorno local o en el archivo de configuración del clúster de administración.

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

Uso de recursos en la cuenta de AWS

Por cada clúster que cree, Tanzu Kubernetes Grid utiliza un conjunto de recursos en la cuenta de AWS.

Recurso Usos de Tanzu Kubernetes Grid
VPC 1
Direcciones de IP elástica 1 por zona de disponibilidad* (AZ)
Subredes 2 por AZ para acceso a Internet, 1 por AZ para interna*
Grupos de seguridad (VPC) de EC2 4
Puertas de enlace de Internet: 1
Puerta de enlace NAT 1 por AZ para implementaciones predeterminadas*
Instancias de EC2 del plano de control 1 por AZ*

* Los clústeres de desarrollo utilizan una zona de disponibilidad y los clústeres de producción utilizan 3.

AWS implementa límites o cuotas predeterminados en estos recursos y permite modificar los límites. Por lo general, los límites predeterminados son suficientes para comenzar a crear y utilizar clústeres, pero a medida que aumenta el recuento de clústeres o cargas de trabajo, puede superar estos límites de AWS, lo que impide que Tanzu Kubernetes Grid cree nuevos clústeres o implemente nuevas cargas de trabajo.

VMware recomienda evaluar periódicamente los límites especificados en la cuenta de AWS y solicitar aumentos de la cuota de servicios según sea necesario para satisfacer sus necesidades empresariales.

Las cuotas de servicios más relevantes son:

Código de servicio Nombre de cuota Código de cuota
vpc Puertas de enlace de Internet por región L-A4707A72
vpc Puertas de enlace NAT por zona de disponibilidad L-FE5A380F
vpc VPC por región L-F678F1CE
ec2 Ejecución de instancias estándar a petición (A, C, D, H, I, M, R, T, Z) L-1216C47A
ec2 IP elásticas EC2-VPC L-0263D0A3
elasticloadbalancing Equilibradores de carga clásicos por región L-E9E9831D

Opcionalmente, puede compartir VPC en lugar de crear otras nuevas, como un clúster de carga de trabajo que comparte una VPC con su clúster de administración.

Para obtener información sobre los tamaños de las instancias de nodo de clúster, consulte Tipo de instancia de Amazon EC2 en la documentación de AWS.

Amazon VPC sin puertas de enlace NAT

Tanzu Kubernetes Grid se pueden implementar en VPC sin puertas de enlace NAT asociadas si se cumple alguna de las siguientes condiciones:

  • Las subredes en las que se implementan los clústeres de carga de trabajo tienen tablas de rutas con rutas 0.0.0.0/0 a Internet, o,
  • El entorno de implementación tiene acceso a Internet restringido, como se describe en Preparar un entorno con acceso a Internet restringido.

Tanzu Kubernetes Grid no comprueba la existencia de rutas específicas en las tablas de enrutamiento. Por lo tanto, se admite la conectividad de Internet a través de puertas de enlace NAT de VPC, instancias de EC2 o dispositivos, puertas de enlace de Internet, puertas de enlace de tránsito o DirectConnect.

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 AWS. 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: m4.large (CPU: 2; Memoria: 8 GB)
  • Nodos de trabajo: m4.large (CPU: 2; Memoria: 8 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: c4.large (CPU: 2; Memoria: 3,75 GB)
  • Nodos de trabajo: c4.large (CPU: 2; Memoria: 3,75 GB)
3 nodos de plano de control y 3 nodos de trabajo
  • Nodos del plano de control: m4.large (CPU: 2; Memoria: 8 GB)
  • Nodos de trabajo: m4.large (CPU: 2; Memoria: 8 GB)
Ejemplo: Un clúster de carga de trabajo, implementado con 3 nodos de plano de control y 500 nodos de trabajo
  • Nodos del plano de control: c5.4xlarge (CPU: 16; Memoria: 32 GB)
  • Nodos de trabajo: c5.xlarge (CPU: 4; Memoria: 8 GB)
3 nodos de plano de control y 3 nodos de trabajo
  • Nodos del plano de control: m4.xlarge (CPU: 4; Memoria: 16 GB)
  • Nodos de trabajo: m4.xlarge (CPU: 4; Memoria: 16 GB)
Ejemplo: 200 clústeres de carga de trabajo, cada uno implementado con 3 plano de control y 5 nodos de trabajo
  • Nodos del plano de control: c4.large (CPU: 2; Memoria: 3,75 GB)
  • Nodos de trabajo: c4.large (CPU: 2; Memoria: 3,75 GB)

Permisos de AWS necesarios

En las siguientes secciones, se enumeran los permisos que Tanzu Kubernetes Grid necesita para implementar y administrar clústeres de en AWS:

  • Permisos establecidos por Tanzu Kubernetes Grid: Tanzu Kubernetes Grid establece estos permisos automáticamente, al ejecutar el comando tanzu mc permissions aws set o seleccionar la casilla de verificación Automatizar la creación de la pila de AWS CloudFormation en la interfaz del instalador.
    • El alias de la CLI de Tanzu mc es abreviado para management-cluster.
  • Permisos establecidos por usted: Estos permisos se agregan manualmente.

Permisos establecidos por Tanzu Kubernetes Grid

Para permitir que Tanzu Kubernetes Grid implemente clústeres en AWS, debe crear una pila de CloudFormation, tkg-cloud-vmware-com, en su cuenta de AWS. Esta pila de CloudFormation define los recursos y los permisos de administración de identidades y acceso (IAM) que Tanzu Kubernetes Grid necesita para implementar y administrar clústeres en AWS.

Para crear la pila, después de completar los pasos descritos en este tema, ejecute el comando tanzu mc permissions aws set o seleccione la casilla Automatizar la creación de la pila de AWS CloudFormation en la interfaz del instalador, como se describe en la sección Crear recursos de IAM de Implementar clústeres de administración desde un archivo de configuración o Implementar clústeres de administración con la interfaz del instalador. Debe realizar esta operación solo una vez por cuenta de AWS, independientemente de si pretende utilizar una o varias regiones de AWS para el entorno de Tanzu Kubernetes Grid.

Al ejecutar tanzu mc permissions aws set o seleccionar Automatizar la creación de la pila de AWS CloudFormation, se crean las siguientes directivas, funciones y perfiles de IAM. El usuario cuyas credenciales proporciona a Tanzu Kubernetes Grid al crear la pila debe tener permisos de administrador para crear estos recursos de IAM en su cuenta de AWS.

  • Perfiles / AWS::IAM::InstanceProfile:

    • Plano de control: control-plane.tkg.cloud.vmware.com: utilizado por instancias de EC2 que ejecutan componentes del plano de control de Kubernetes.
    • Nodos: nodes.tkg.cloud.vmware.com: utilizados por todas las instancias de EC2 que no son de plano de control en clústeres de Tanzu Kubernetes Grid clústeres.
    • Controladores: controllers.tkg.cloud.vmware.com: se pueden utilizar para arrancar Tanzu Kubernetes Grid desde un Jump Box en EC2 con el perfil de instancia asociado.
  • Funciones / AWS::IAM::Role: estas se asignan 1:1 a los perfiles de instancia de AWS IAM anteriores:

    • Plano de control: control-plane.tkg.cloud.vmware.com
    • Nodos: nodes.tkg.cloud.vmware.com
    • Controladores: controllers.tkg.cloud.vmware.com
  • Directivas / AWS::IAM::ManagedPolicy:

    • arn:aws:iam::YOUR-ACCOUNT-ID:policy/control-plane.tkg.cloud.vmware.com: asociada a la función de IAM Plano de control anterior.
    • arn:aws:iam::YOUR-ACCOUNT-ID:policy/nodes.tkg.cloud.vmware.com: asociada a las funciones de IAM Plano de control y Nodos anteriores.
    • arn:aws:iam::YOUR-ACCOUNT-ID:policy/controllers.tkg.cloud.vmware.com: asociada a las funciones de IAM Plano de control y Controladores anteriores.

Después de que Tanzu Kubernetes Grid crea la pila de CloudFormation en la cuenta de AWS, puede recuperar su plantilla desplazándose hasta CloudFormation > Pilas en la consola de AWS. Para obtener más información sobre las pilas de CloudFormation, consulte Trabajar con pilas en la documentación de AWS.

Como alternativa, en lugar de ejecutar tanzu mc permissions aws set o seleccionar Creación automática de la pila de AWS CloudFormation, puede recuperar la plantilla que Tanzu Kubernetes Grid utiliza para crear los recursos de IAM anteriores y crear la pila tkg-cloud-vmware-com directamente en la cuenta de AWS. Para recuperar la plantilla, ejecute tanzu mc permissions aws generate-cloudformation-template.

Permisos requeridos por Tanzu Mission Control

Los siguientes permisos de IAM solo son necesarios si pretende registrar el clúster de administración con Tanzu Mission Control. Estos permisos se agregan automáticamente a la función de IAM nodes.tkg.cloud.vmware.com al ejecutar el comando tanzu mc permissions aws set.

{
  "Action": [
    "servicequotas:ListServiceQuotas",
    "ec2:DescribeKeyPairs",
    "ec2:DescribeInstanceTypeOfferings",
    "ec2:DescribeInstanceTypes",
    "ec2:DescribeAvailabiilityZones",
    "ec2:DescribeRegions",
    "ec2:DescribeSubnets",
    "ec2:DescribeRouteTables",
    "ec2:DescribeVpcs",
    "ec2:DescribeNatGateways",
    "ec2:DescribeAddresses",
    "elasticloadbalancing:DescribeLoadBalancers"
  ],
  "Resource": [
    "*"
  ],
  "Effect": "Allow"
}

Para desactivar estos permisos, establezca DISABLE_TMC_CLOUD_PERMISSIONS en true antes de ejecutar tanzu mc permissions aws set. Para obtener más información, consulte Registrar el clúster de administración con Tanzu Mission Control.

Permisos establecidos por usted

Debe establecer los siguientes permisos manualmente, una vez por cuenta de AWS.

Interfaz del instalador

Si pretende implementar el clúster de administración desde la interfaz del instalador, el usuario cuyas credenciales proporcione para Tanzu Kubernetes Grid al implementar el clúster debe tener los permisos "ec2:DescribeInstanceTypeOfferings" y "ec2:DescribeInstanceTypes". Si el usuario no tiene actualmente estos permisos, puede crear una directiva personalizada que incluya los permisos y asociarla a su usuario.

Configurar credenciales de cuenta de AWS

Para permitir que Tanzu Kubernetes Grid cree y administre máquinas virtuales en Amazon EC2, debe tener una cuenta de AWS junto con:

  • Credenciales de la cuenta de AWS
  • Un par de claves SSH registrado con la cuenta para cada región de AWS en la que planea implementar clústeres de administración

Debe establecer las credenciales de su cuenta para crear un par de claves SSH para la región en la que planea implementar los clústeres de Tanzu Kubernetes Grid.

Dispone de varias opciones para configurar las credenciales de la cuenta de AWS que se utilizan para acceder a EC2. En las siguientes subsecciones se explican las diferentes opciones.

VMware recomienda la opción Perfiles de credenciales, administrada con el comando aws configure. Estos perfiles se guardan en un archivo de configuración local compartido, por lo general, en ~/.aws/config.

En orden descendente de prioridad cuando se utiliza más de una, las opciones de configuración de credenciales posibles son:

  1. Variables del archivo de configuración del clúster de carga de trabajo (solo para la creación de clústeres de carga de trabajo). Consulte Archivo de configuración de clúster, a continuación.

  2. Variables de entorno locales y estáticas. Consulte Variables de entorno local, a continuación.

  3. (Recomendado) Los perfiles de credenciales, que se actualizan al ejecutar aws configure. Se guardan en un archivo ubicado en ~/.aws/config en Linux o macOS, o en C:\Users\USERNAME\.aws\config en Windows, o se puede llamar credentials. Consulte Perfiles de credenciales, a continuación.

  4. Credenciales de perfiles de instancia. Puede asociar una función de IAM a cada una de las instancias de Amazon Elastic Compute Cloud (Amazon EC2). A continuación, las credenciales temporales para esa función están disponibles para el código que se ejecuta en la instancia. Las credenciales se entregan a través del servicio de metadatos de Amazon EC2. Para obtener más información, consulte Funciones de IAM para AWS en la guía del usuario de Amazon EC2 para instancias de Linux y Uso de perfiles de instancias en la guía del usuario de IAM.

Variables de entorno local

Una opción para configurar las credenciales de AWS es establecer variables de entorno local en la máquina de arranque. Para utilizar variables de entorno local, establezca las siguientes variables de entorno para su cuenta de AWS:

  • export AWS_ACCESS_KEY_ID=aws_access_key, donde aws_access_key es la clave de acceso de AWS.

  • export AWS_SECRET_ACCESS_KEY=aws_access_key_secret, donde aws_access_key_secret es el secreto de la clave de acceso de AWS.

  • export AWS_SESSION_TOKEN=aws_session_token, donde aws_session_token es el token de sesión de AWS concedido a su cuenta. Solo es necesario especificar esta variable si se le solicita que utilice una clave de acceso temporal. Para obtener más información sobre el uso de claves de acceso temporales, consulte Comprender y obtener las credenciales de AWS.

  • export AWS_REGION=aws_region, donde aws_region es la región de AWS en la que desea implementar el clúster. Por ejemplo, us-west-2.

    Para obtener la lista completa de regiones de AWS, consulte Endpoints de servicio de AWS. Además de las regiones normales de AWS, también puede especificar las regiones us-gov-east y us-gov-west en AWS GovCloud.

Tanzu Kubernetes Grid admite las siguientes variables de entorno de la CLI de AWS:

  • AWS_ACCESS_KEY_ID
  • AWS_SECRET_ACCESS_KEY
  • AWS_SESSION_TOKEN
  • AWS_SHARED_CREDENTIALS_FILE
  • AWS_CONFIG_FILE
  • AWS_REGION
  • AWS_PROFILE

Puede obtener más información en la Guía del usuario de la interfaz de línea de comandos de AWS.

Perfiles de credenciales

El método recomendado para trabajar con Tanzu Kubernetes Grid es utilizar el comando aws configure para almacenar las credenciales de AWS en un archivo de configuración o de credenciales local. Un archivo de configuración de AWS puede admitir una serie de mecanismos de autenticación, desde credenciales estáticas hasta SSO a través de aplicaciones auxiliares de credenciales externas.

Un archivo de credenciales de AWS puede servir para varias cuentas, incluidos un perfil predeterminado y perfiles con nombre adicionales. Los perfiles y los archivos de credenciales se aplican después de las variables de entorno local como parte de la prioridad de credenciales anterior.

Para configurar archivos de credenciales y perfiles para su cuenta de AWS en la máquina de arranque, puede utilizar el comando CLI aws configure.

Para personalizar los perfiles y los archivos de credenciales de AWS que desea utilizar, puede establecer las siguientes variables de entorno:

  • export AWS_PROFILE=profile_name donde profile_name es el nombre del perfil que contiene la clave de acceso de AWS que desea utilizar. Si no especifica un valor para esta variable, se utilizará el nombre del perfil default. Para obtener más información sobre el uso de perfiles con nombre, consulte Perfiles nombrados en la documentación de AWS.

  • export AWS_SHARED_CREDENTIAL_FILE=path_to_credentials_file donde path_to_credentials_file es la ubicación y el nombre del archivo de credenciales que contiene la información de la clave de acceso de AWS. Si no define esta variable de entorno, la ubicación y el nombre de archivo predeterminados son $HOME/.aws/credentials.

  • export AWS_CONFIG=path_to_config_file donde path_to_config_file es la ubicación y el nombre del archivo de configuración que contiene la configuración de perfil. Si no define esta variable de entorno, la ubicación y el nombre de archivo predeterminados son $HOME/.aws/config. Si especifica fuentes de credenciales explícitas o utiliza procesos de credenciales externos, deberá utilizar este archivo.

Nota

Todos los perfiles con nombre que cree en las credenciales de AWS o los archivos de configuración aparecen como opciones seleccionables en el menú desplegable Perfil de credenciales de AWS en la interfaz de usuario de Tanzu Kubernetes Grid Installer para AWS.

Para obtener más información sobre cómo trabajar con las credenciales de AWS y la cadena predeterminada de proveedores de credenciales de AWS, consulte Prácticas recomendadas para administrar las claves de acceso de AWS en la documentación de AWS.

Archivo de configuración del clúster

Puede especificar las credenciales de AWS en el archivo de configuración utilizado para crear un clúster configurando las siguientes variables:

  • AWS_ACCESS_KEY_ID (codificado en base 64)
  • AWS_SECRET_ACCESS_KEY (codificado en base 64)
  • AWS_SESSION_TOKEN (opcional)

AWS_ACCESS_KEY_ID y AWS_SECRET_ACCESS_KEY deben transmitirse con el formato <encoded:(base64 encoded value)>, por ejemplo, si el identificador de clave de acceso de AWS es AKIAIOSFODNN7EXAMPLE, clave de acceso secreta wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY y token de sesión AQoEXAMPLEH4aoAH0gNCAPyJxz4BlCFFxWNE1OP, esto debe establecerse en el archivo de configuración como:

AWS_ACCESS_KEY_ID: <encoded:QUtJQUlPU0ZPRE5ON0VYQU1QTEU=>
AWS_SECRET_ACCESS_KEY: <encoded:d0phbHJYVXRuRkVNSS9LN01ERU5HL2JQeFJmaUNZRVhBTVBMRUtFWQ==>
AWS_SESSION_TOKEN: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY

Las versiones anteriores de Tanzu Kubernetes Grid guardarían las credenciales en un archivo de configuración del clúster. Tanzu Kubernetes Grid 1.4 y versiones posteriores no guardan las credenciales de AWS en los archivos de configuración de forma predeterminada.

Registrar un par de claves EC2

Después de configurar las credenciales de la cuenta de AWS mediante variables de entorno local o en un archivo de credenciales y un perfil, debe generar un par de claves EC2 para su cuenta de AWS. Tanzu Kubernetes Grid pasa la parte de clave pública de este par de claves a AWS para autenticarse en cada región.

Nota

AWS solo admite claves RSA. Las claves requeridas por AWS tienen un formato diferente a las que requiere vSphere. No puede utilizar el mismo par de claves para las implementaciones de AWS y vSphere.

Si aún no tiene un par de claves EC2 para la cuenta y la región que está utilizando para implementar el clúster de administración, cree uno siguiendo los pasos que se indican a continuación:

  1. Para cada región que tenga pensado utilizar con Tanzu Kubernetes Grid, cree un par de claves con nombre y genere un archivo .pem que incluya el nombre. Por ejemplo, el siguiente comando utiliza default y guarda el archivo como default.pem.

    aws ec2 create-key-pair --key-name default --output json | jq .KeyMaterial -r > default.pem
    

    Para crear un par de claves para una región que no sea la predeterminada en el perfil o establecer localmente como AWS_DEFAULT_REGION, incluya la opción --region.

  2. Inicie sesión en el panel de control de Amazon EC2 y vaya a Redes y seguridad > Par de claves para verificar que el par de claves creado está registrado en su cuenta.

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:

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 AWS.

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