El 2 de noviembre, se lanzó una nueva versión de GKE en AWS. Consulta las notas de la versión para obtener más información.

Instala el servicio de administración

Un servicio de administración crea, actualiza y borra GKE en clústeres de 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 Integración con la infraestructura existente en su lugar.

Antes de comenzar

Antes de comenzar a usar GKE on AWS, completa las siguientes tareas:

Valores que necesitas

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

  • ARN de clave KMS
  • 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 GKE on AWS crea tu clúster de administración.

Configura tu servicio de administración

Configura el servicio de administración de GKE on 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. Crea un directorio vacío para la configuración de GKE on AWS y cambia a este directorio.

    mkdir anthos-aws && \
    cd anthos-aws
    
  2. 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: ANTHOS_CLI_VERSION
       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:

    • ANTHOS_CLI_VERSION por la versión de la herramienta de anthos-gke. Para obtener tu versión, ejecuta anthos-gke version.

    • 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 por el nombre de recurso de Amazon de la clave de AWS de KMS que protege los datos del servicio de administración durante la creación.
      Este no es el AliasARN. Si no tienes el ARN, ejecuta aws kms list-keys para obtener el keyAn.

    • DATABASE_KMS_KEY_ARN por el nombre de recurso de Amazon de la etcdclave de KMS de AWS que protege las bases de datos de del servicio de administración.
      Este no es el alias. Si no tienes el ARN, ejecuta aws kms list-keys para obtener el keyAn.

    • GCP_PROJECT_ID con el proyecto de Google Cloud que aloja tu 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 por la ubicación de la clave de cuenta de servicio de nodo de GKE on 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. GKE on AWS crea subredes en estas zonas. Cuando usas anthos-gke para generar una configuración para un clúster de usuario, GKE 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 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. GKE en componentes de AWS, como el servicio de administración, que se ejecuta 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 con la ruta de acceso relativa del archivo de configuración de proxy.

  3. 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
    
  4. 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

Ahora debes usar anthos-gke para conectarte y autenticarte en el servicio de administración de GKE on 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. Para acceder a los recursos de GKE on AWS, consulta las siguientes instrucciones.

Cuando creas un servicio de administración en una VPC dedicada, GKE on 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
    

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

  3. Abre una terminal nueva y cambia el directorio por el directorio que tiene la configuración de GKE on 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?