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.
ImportanteTanzu Kubernetes Grid v2.4.x es la última versión de TKG que admite la creación de clústeres de administración de TKG independientes en AWS. La capacidad para crear clústeres de administración de TKG independientes en AWS se eliminará en la versión 2.5 de Tanzu Kubernetes Grid.
A partir de ahora, VMware recomienda utilizar Tanzu Mission Control para crear clústeres de AWS EKS nativos en lugar de crear nuevos clústeres de administración de TKG en AWS. Para obtener información sobre cómo crear clústeres nativos de AWS EKS con Tanzu Mission Control, consulte Gestión del ciclo de vida de los clústeres de AWS EKS en la documentación de Tanzu Mission Control.
Para obtener más información, consulte Desuso de la administración de TKG y los clústeres de cargas de trabajo en AWS y Azure en las Notas de la versión de VMware Tanzu Kubernetes Grid v2.4.
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.*
~/.config/tanzu/tkg/bom/
y su nombre incluye la versión Tanzu Kubernetes Grid, por ejemplo, tkg-bom-v2.3.1+vmware.1.yaml
para v2.3.1.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.
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.
Tanzu Kubernetes Grid se pueden implementar en VPC sin puertas de enlace NAT asociadas si se cumple alguna de las siguientes condiciones:
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.
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 |
|
Ejemplos:
|
|
3 nodos de plano de control y 3 nodos de trabajo |
|
Ejemplo: Un clúster de carga de trabajo, implementado con 3 nodos de plano de control y 500 nodos de trabajo |
|
3 nodos de plano de control y 3 nodos de trabajo |
|
Ejemplo: 200 clústeres de carga de trabajo, cada uno implementado con 3 plano de control y 5 nodos de trabajo |
|
En las siguientes secciones, se enumeran los permisos que Tanzu Kubernetes Grid necesita para implementar y administrar clústeres de en AWS:
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.
mc
es abreviado para management-cluster
.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
:
control-plane.tkg.cloud.vmware.com
: utilizado por instancias de EC2 que ejecutan componentes del plano de control de Kubernetes.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.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:
control-plane.tkg.cloud.vmware.com
nodes.tkg.cloud.vmware.com
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
.
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.
Debe establecer los siguientes permisos manualmente, una vez por cuenta de AWS.
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.
Para permitir que Tanzu Kubernetes Grid cree y administre máquinas virtuales en Amazon EC2, debe tener una cuenta de AWS junto con:
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:
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.
Variables de entorno locales y estáticas. Consulte Variables de entorno local, a continuación.
(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.
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.
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.
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.
NotaTodos 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.
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.
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.
NotaAWS 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:
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
.
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.
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.