El 3 de febrero, se lanzó una nueva versión de los clústeres de Anthos en AWS (GKE en AWS). Para obtener más información, consulta las notas de la versión.

Instala el servicio de administración

Un servicio de administración crea, actualiza y borra clústeres de Anthos alojados en AWS (GKE en AWS). En este tema, se explica cómo crear un servicio de administración dentro de una nube privada virtual (VPC) dedicada de AWS. Si ya tienes una VPC, consulta la sección sobre cómo integrar en la infraestructura existente en su lugar.

Antes de comenzar

Antes de comenzar a usar clústeres de Anthos alojados en AWS, asegúrate de haber realizado las siguientes tareas:

  • Completar los requisitos
  • Autentícate con la herramienta de línea de comandos de gcloud.
    gcloud auth login &&\
          gcloud auth application-default login

Valores que necesitas

Para completar este tema, necesitas estos elementos a fin de cumplir con los requisitos:

  • ARN de clave KMS o alias
  • Claves de cuenta de servicio de Google Cloud
  • Proyecto de Google Cloud
  • Las herramientas de línea de comandos de aws, terraform y anthos-gke instalada y configurada.
  • La región y las zonas de disponibilidad de AWS en las que clústeres de Anthos alojados en AWS crea tu clúster de administración.

Configura tu servicio de administración

Configura tu servicio de administración de clústeres de Anthos alojados en AWS con un archivo YAML. El archivo es similar a la configuración de un recurso personalizado de Kubernetes, pero no es una representación de un recurso.

  1. Abre una terminal en la computadora en la que instalaste y configuraste las herramientas de línea de comandos de aws, terraform y anthos-gke.

  2. Crea un directorio vacío para tu configuración de clústeres en Anthos y cambia a este directorio. La documentanción de clústeres de Anthos alojados en AWS usa anthos-aws como el directorio de configuración de ejemplo.

    mkdir anthos-aws && \
    cd anthos-aws
    
  3. Crea un archivo llamado anthos-gke.yaml en un editor de texto. Pega el siguiente contenido en el archivo.

     apiVersion: multicloud.cluster.gke.io/v1
     kind: AWSManagementService
     metadata:
       name: management
     spec:
       version: aws-1.6.1-gke.2
       region: AWS_REGION
       authentication:
         awsIAM:
           adminIdentityARNs:
           - ADMIN_AWS_IAM_ARN
       kmsKeyARN: KMS_KEY_ARN
       databaseEncryption:
         kmsKeyARN: DATABASE_KMS_KEY_ARN
       googleCloud:
         projectID: GCP_PROJECT_ID
         serviceAccountKeys:
           managementService: MANAGEMENT_KEY_PATH
           connectAgent: HUB_KEY_PATH
           node: NODE_KEY_PATH
       dedicatedVPC:
         vpcCIDRBlock: VPC_CIDR_BLOCK
         availabilityZones:
         - ZONE_1
         - ZONE_2
         - ZONE_3
         privateSubnetCIDRBlocks:
         - PRIVATE_CIDR_BLOCK_1
         - PRIVATE_CIDR_BLOCK_2
         - PRIVATE_CIDR_BLOCK_3
         publicSubnetCIDRBlocks:
         - PUBLIC_CIDR_BLOCK_1
         - PUBLIC_CIDR_BLOCK_2
         - PUBLIC_CIDR_BLOCK_3
       # Optional
       bastionHost:
         allowedSSHCIDRBlocks:
         - SSH_CIDR_BLOCK
       proxy: PROXY_JSON_FILE # optional
    

    Reemplaza los siguientes valores:

    • AWS_REGION por la región de AWS en la que ejecutarás el clúster

    • ADMIN_AWS_IAM_ARN por el nombre de recurso de Amazon del usuario con permisos de IAM de AWS para crear un servicio de administración. Para obtener el ARN del usuario autenticado en la herramienta de aws, ejecuta aws sts get-caller-identity.

    • KMS_KEY_ARN con el nombre del recurso de Amazon de la clave de AWS KMS o el alias de la clave KMS que protege los datos del servicio de administración durante la creación. Por ejemplo, arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab. Si no tienes el ARN, ejecuta aws kms list-keys para recuperar una lista de ARN.

    • DATABASE_KMS_KEY_ARN con el nombre del recurso de Amazon de la clave de AWS KMS o el alias de clave que protege las bases de datos etcd del servicio de administración. Por ejemplo, arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab

    • GCP_PROJECT_ID por el ID del proyecto de Google Cloud que aloja el entorno de Anthos.

    • MANAGEMENT_KEY_PATH por la ubicación de la clave de cuenta de servicio de administración de Google Cloud.

    • HUB_KEY_PATH por la ubicación de la clave de cuenta de servicio de Google Cloud Connect.

    • NODE_KEY_PATH con la ubicación de tu clave de cuenta de servicio de nodo de clústeres de Anthos alojados en AWS.

    • VPC_CIDR_BLOCK con el rango CIDR total de direcciones IP para la VPC de AWS que crea anthos-gke. Por ejemplo, 10.0.0.0/16. Para obtener más información, consulta Conceptos básicos de la VPC y la subred en la documentación de AWS.

    • ZONE_1, ZONE_2 y ZONE_3 por las zonas de disponibilidad de AWS EC2 en las que deseas crear nodos y planos de control. Clústeres de Anthos alojados en AWS crea subredes en estas zonas. Cuando usas anthos-gke para generar una configuración para un clúster de usuario, clústeres de Anthos alojados en AWS crea planos de control y grupos de nodos en estas zonas de disponibilidad.
      Si deseas usar anthos-gke para crear un clúster de usuario en una sola zona, puedes quitar ZONE_2 y ZONE_3.

    • PRIVATE_CIDR_BLOCK_1, PRIVATE_CIDR_BLOCK_2 y PRIVATE_CIDR_BLOCK_3 por el bloque CIDR para la subred privada. Los componentes de clústeres de Anthos alojados en AWS, como el servicio de administración, se ejecutan en la subred privada. Esta subred debe estar dentro del rango CIDR de la VPC especificada en vpcCIDRBlock. Necesitas una subred para cada zona de disponibilidad. Por ejemplo, 10.0.1.0/24.

    • PUBLIC_CIDR_BLOCK_1, PUBLIC_CIDR_BLOCK_2 y PUBLIC_CIDR_BLOCK_3 por los bloques CIDR para la subred pública. Necesitas una subred para cada zona de disponibilidad. La subred pública expone los servicios del clúster, como los balanceadores de cargas, a los grupos de seguridad y los rangos de direcciones especificados en las LCA de red y los grupos de seguridad de AWS. Por ejemplo, 10.0.100.0/24.

    • SSH_CIDR_BLOCK por el bloque CIDR que permite la conexión SSH entrante a tu host de bastión. Por ejemplo, 203.0.113.0/24. Si deseas permitir una conexión SSH desde cualquier dirección IP, usa 0.0.0.0/0.

    • (opcional) PROXY_JSON_FILE por la ruta relativa del archivo de configuración del proxy Si no usas un proxy, borra esta línea.

  4. Ejecuta anthos-gke aws management init para generar un archivo anthos-gke.status.yaml con configuración adicional. El comando init también valida el objeto AWSManagementService en tu archivo anthos-gke.yaml.

    anthos-gke aws management init
    
  5. Ejecuta anthos-gke aws management apply para crear el servicio de administración en AWS.

    anthos-gke aws management apply
    

    El comando anthos-gke aws management apply puede llevar hasta diez minutos en completarse. Cuando se complete el comando, tu servicio de administración se ejecutará en AWS.

Conexión al servicio de administración

Luego, usa anthos-gke para conectarte y autenticarte en tu servicio de administración de clústeres de Anthos alojados en AWS.

Cuando creas un servicio de administración mediante la configuración predeterminada, el plano de control tiene una dirección IP privada. No se puede acceder a esta dirección IP desde fuera de la VPC de AWS. Puedes acceder al servicio de administración con un host de bastion o usar otra conexión a la VPC de AWS, como una VPN o AWS Direct Connect.

Cuando creas un servicio de administración en una VPC dedicada, clústeres de Anthos alojados en AWS incluye un host de bastión en una subred pública.

Para conectarte al servicio de administración, realiza los siguientes pasos:

  1. Usa terraform para generar una secuencia de comandos que abra un túnel SSH al host de bastión.

    terraform output bastion_tunnel > bastion-tunnel.sh
    chmod 755 bastion-tunnel.sh
    

    Terraform crea la secuencia de comandos bastion-tunnel.sh que hace referencia a la clave SSH del host de bastión en ~/.ssh/anthos-gke.

  2. Para abrir el túnel, ejecuta la secuencia de comandos bastion-tunnel.sh. El túnel realiza reenvíos de localhost:8118 al host de bastión.

    Para abrir un túnel al host de bastión, ejecuta el siguiente comando:

    ./bastion-tunnel.sh -N -4
    

    Los mensajes del túnel SSH aparecen en esta ventana. Cuando estés listo para cerrar la conexión, detén el proceso mediante Control+C o cierra la ventana.

  3. Abre una terminal nueva y cambia el directorio al directorio con tu configuración de clústeres de Anthos alojados AWS.

  4. Genera un kubeconfig para la autenticación. Usa anthos-gke para adjuntar credenciales a tu configuración almacenada en ~/.kube/config.

    anthos-gke aws management get-credentials
    
  5. Comprueba si puedes conectarte al servicio de administración mediante kubectl.

    env HTTP_PROXY=http://localhost:8118 \
    kubectl cluster-info
    

    El resultado incluye la URL para el servidor de API del servicio de administración.

¿Qué sigue?