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.

AWSManagementService

El recurso AWSManagementService contiene información de configuración para el servicio de administración GKE on AWS.

Configura un archivo YAML llamado anthos-gke.yaml antes de crear el servicio de administración. La herramienta anthos-gke usa la configuración cuando creas el servicio de administración.

El contenido de tu archivo anthos-gke.yaml depende de si usas anthos-gke para crear una nube privada virtual (VPC) de AWS dedicada o si usas una VPC de AWS existente.

VPC dedicada

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: KMS_KEY_ARN
  googleCloud:
    projectID: GCP_PROJECT_ID
    serviceAccountKeys:
      managementService: MANAGEMENT_KEY_PATH
      connectAgent: CONNECT_KEY_PATH
      node: NODE_KEY_PATH
  iam:
      permissionsBoundary: IAM_PERMISSIONS_BOUNDARY
      path: IAM_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
  ubuntuRepositoryMirror: 'packages.cloud.google.com'
  tags:
    <var>tag-name</var>: <var>tag-value</var>
  bastionHost:
    allowedSSHCIDRBlocks:
    - SSH_CIDR_BLOCK
  proxy: PROXY_JSON_FILE

VPC existente

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: KMS_KEY_ARN
  securityGroupIDs:
    - SECURITY_GROUP_IDS
  googleCloud:
    projectID: GCP_PROJECT_ID
    serviceAccountKeys:
      managementService: MANAGEMENT_KEY_PATH
      connectAgent: CONNECT_KEY_PATH
      node: NODE_KEY_PATH
  iam:
      permissionsBoundary: IAM_PERMISSIONS_BOUNDARY
      path: IAM_PATH
  existingVPC:
    subnetID: [MANAGEMENT_SUBNET_ID]
    allowedSSHSecurityGroupIDs: [SSH_SECURITY_GROUPS]
  #optional
  ubuntuRepositoryMirror: 'packages.cloud.google.com'
  bastionHost:
    subnetID: [BASTION_HOST_SUBNET_ID]
    allowedSSHCIDRBlocks:
    - [SSH_CIDR_BLOCK]
  tags:
    <var>tag-name</var>: <var>tag-value</var>
  proxy: PROXY_JSON_FILE

En las siguientes secciones, se describen estos campos.

spec.version

El valor de spec.version es la versión del servicio administrado que crea anthos- gke. La versión coincide con la salida de anthos-gke version. Por ejemplo, aws-1.5.1-gke.1.

spec.region

El valor de spec.region es la región de AWS en la que deseas implementar el servicio administrado. Por ejemplo, us-east-1.

spec.authentication.awsIAM

El valor de spec.authentication.awsIAM.adminIdentityARNs es una string con el nombre del recurso de Amazon (ARN) de un usuario IAM de AWS con permisos para crear un GKE en el servicio administrado de AWS. Por ejemplo, arn:aws:iam::123456789:user/someuser.

spec.kmsKeyARN

El valor de spec.kmsKeyARN es una string con el nombre del recurso de Amazon (ARN) de la clave de KMS de AWS creada en los requisitos previos. GKE on AWS usa la clave para la encriptación de sobre. Por ejemplo, arn:aws:kms:us-west-1:123456789:key/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee

spec.databaseEncryption

El valor de spec.databaseEncryption.kmsKeyARN es una string con el nombre del recurso de Amazon (ARN) de la clave de KMS de AWS que GKE usa en AWS para encriptar secretos de la capa de la aplicación en clústeres. Por ejemplo, arn:aws:kms:us-west-1:123456789:key/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee

spec.securityGroupIDs

El valor de spec.securityGroupIDs es una lista de ID de grupos de seguridad adicionales de AWS asignados a la VM del servicio administrado. Por ejemplo [sg-00123456789abcd, sg-00123456789def1].

spec.dedicatedVPC

Este campo representa la configuración de VPC deseada.

Nombre Description Tipo Ejemplo
vpcCIDRBlock El bloque CIDR de la VPC de AWS deseada. Debe estar entre /16 y /28 bits. string 10.0.0.0/16
availabilityZones Zonas de disponibilidad para implementar réplicas del plano del control. Cada zona tendrá su propia subred y necesita un bloque CIDR independiente. list(string) [us-east-1a, us-east-1b]
privateSubnetCIDRBlocks Bloque CIDR para subredes privadas dentro de la VPC en cada zona de disponibilidad. Debe ser un subconjunto de vpcCIDRBlock. Debes tener una subred por zona de disponibilidad. list(string) [10.0.101.0/24, 10.0.102.0/24]
publicSubnetCIDRBlocks Bloque CIDR para las subredes públicas dentro de la VPC en cada zona de disponibilidad. Debe ser un subconjunto de vpcCIDRBlock. Debes tener una subred por zona de disponibilidad. list(string) [10.0.1.0/24, 10.0.2.0/24]
bastionAllowedSSHCIDRBlocks Bloques CIDR para permitir el acceso SSH entrante. Este campo dejará de estar disponible en GKE en AWS 1.5. Usa spec.bastionHost en la versión 1.5 o en versiones posteriores. string [104.132.0.0/14]

spec.existingVPC

Los campos en spec.existingVPC configuran GKE en AWS para usar una VPC de AWS existente.

Nombre Description Tipo Ejemplo
subnetID ID de la subred en la que se ejecuta el servicio de administración. string subnet-00123456789ab
allowedSSHSecurityGroupIDs Lista de ID de los grupos de seguridad permitidos en el acceso de SSH dentro de la VPC. list(string) [sg-00123456789abcd, sg-00123456789def1]

spec.bastionHost

La sección spec.bastionHost es opcional y describe un host de bastión.

Un host de bastión es una instancia de EC2 que se encuentra en una subred pública. Permite el acceso SSH entrante desde un bloque CIDR especificado y tiene acceso SSH saliente a tu GKE en el servicio de administración de AWS y clústeres de usuarios.

Puedes crear un host de bastión para las instalaciones de dedicatedVPC o existingVPC. El campo allowedSSHCIDRBlocks especifica el rango entrante de direcciones permitidas y no debe estar vacío.

Si no existe un host de bastión, GKE en AWS crea un host de bastión nuevo.

  • Para una instalación de dedicatedVPC, GKE en AWS crea una subred.
  • Para una instalación existingVPC, debes proporcionar una subred para el host de bastión y asegurarte de que esta subred tenga conectividad en tu VPC.

Puedes modificar el host de bastión si cambias o borras el campo spec.bastionHost y ejecutas anthos-gke aws management init, seguido de anthos-gke aws management apply.

Name Description Tipo Ejemplo
subnetID El ID de la subred en la que se ejecuta el host de bastión. En las instalaciones de existingVPC, la subred debe permitir la entrada desde el lugar en el que accederá a el puerto 22. Además, asegúrate de que tu VPC permita el acceso entrante desde esta subred. Para las instalaciones de dedicatedVPC, no especifiques este campo. GKE en AWS aprovisionará la subred con el acceso requerido. string subnet-003bdf7b0f5e21e45
allowedSSHCIDRBlocks Bloques CIDR para permitir el acceso SSH entrante. list(string) [104.132.0.0/14]

spec.googleCloud

Los campos en spec.googleCloud configuran tu proyecto de Google Cloud y las claves de cuenta de servicio de IAM.

Name Description Tipo Ejemplo
projectID Proyecto de Google Cloud. string my-gcp-project-id
serviceAccountKeys Rutas de acceso de archivo a las claves de cuenta de servicio. serviceAccountKeys

spec.googleCloud.serviceAccountKeys

Los campos en spec.googleCloud.serviceAccountKeys incluyen rutas de archivos locales a las claves de la cuenta de servicio de GCP. Consulta Requisitos previos para obtener descripciones detalladas de cada clave.

Name Description Tipo Ejemplo
managementService Clave de la cuenta de servicio que usa el clúster de administración. String path/to/key/management-sa-key.json
connectAgent Clave de la cuenta de servicio que usa el agente de Connect de GKE Hub. String path/to/key/hub-sa-key.json
node Clave de la cuenta de servicio que usan los nodos. string path/to/key/node-sa-key.json

spec.iam

Los campos en spec.iam configuran parámetros opcionales de IAM de AWS para tu GKE en el entorno de AWS.

Name Description Tipo Ejemplo
permissionsBoundary ARN de los Límites de permisos para las funciones de IAM string arn:aws:iam::126285863215:policy/testPolicyBoundary
ruta de acceso Ruta de acceso a la función de IAM string /org_abc/team_abc/member_abc/

spec.ubuntuRepositoryMirror

El valor de spec.ubuntuRepositoryMirror es un nombre de dominio opcional para un repositorio de paquetes de apt.

Nombre Description Tipo Ejemplo
ubuntuRepositoryMirror Nombre de dominio opcional para un repositorio de paquetes de apt. Este campo solo se puede establecer como una string vacía o una duplicación alojada en Google en packages.cloud.google.com. No se permiten otros dominios. Para usar la duplicación alojada en Google, también debes habilitar el Acceso privado a Google. string packages.cloud.google.com

spec.tags

Nombre Description Tipo Ejemplo
tags Son metadatos de clave-valor opcionales asignados a cada recurso de AWS que admite el grupo de nodos. map(string) {Environment: Production, Team: Analytics}

spec.proxy

El campo spec.proxy configura un proxy HTTP/HTTPS opcional.

Name Description Tipo Ejemplo
proxy Ruta de acceso al archivo de configuración del proxy. Ruta de acceso relativa de anthos-gke.yaml proxy.json

spec.bootstrapS3Bucket

El campo spec.bootstrapS3Bucket configura un nombre de depósito S3 para GKE en AWS.

Name Description Tipo Ejemplo
bootstrapS3Bucket Campo opcional para el nombre del bucket de AWS S3 en el que GKE en AWS almacena la información de configuración. string example-s3-bucket