El 6 de abril, se lanzó una nueva versión de los clústeres de Anthos en AWS (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 los clústeres de Anthos en el servicio de administración de AWS (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 section
  rootVolume:
    sizeGiB: ROOT_VOLUME_SIZE
    volumeType: ROOT_VOLUME_TYPE
    iops: ROOT_VOLUME_IOPS
    kmsKeyARN: ROOT_VOLUME_KEY
  ubuntuRepositoryMirror: 'packages.cloud.google.com'
  tags:
    tag-name: tag-value
  bastionHost:
    allowedSSHCIDRBlocks:
    - SSH_CIDR_BLOCK
    rootVolume:
      sizeGiB: ROOT_VOLUME_SIZE
      volumeType: ROOT_VOLUME_TYPE
      iops: ROOT_VOLUME_IOPS
      kmsKeyARN: ROOT_VOLUME_KEY
  bootstrapS3Bucket: BOOTSTRAP_S3_BUCKET
  proxy: PROXY_JSON_FILE
  terraform:
    invokeManually: No

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 fields
  rootVolume:
    sizeGiB: ROOT_VOLUME_SIZE
    volumeType: ROOT_VOLUME_TYPE
    iops: ROOT_VOLUME_IOPS
    kmsKeyARN: ROOT_VOLUME_KEY
  ubuntuRepositoryMirror: 'packages.cloud.google.com'
  bastionHost:
    subnetID: [BASTION_HOST_SUBNET_ID]
    allowedSSHCIDRBlocks:
    - [SSH_CIDR_BLOCK]
    rootVolume:
      sizeGiB: ROOT_VOLUME_SIZE
      volumeType: ROOT_VOLUME_TYPE
      iops: ROOT_VOLUME_IOPS
      kmsKeyARN: ROOT_VOLUME_KEY
  bootstrapS3Bucket: BOOTSTRAP_S3_BUCKET
  tags:
    tag-name: tag-value
  proxy: PROXY_JSON_FILE
  terraform:
    invokeManually: No

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.7.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 de IAM de AWS con permisos para crear clústeres de Anthos en el servicio de administración 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) o el alias de la clave de KMS de AWS creada en los requisitos previos. Los clústeres de Anthos en AWS usan 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) o el alias de la clave de KMS de AWS que los clústeres de Anthos en AWS usan para encriptar los secretos de la capa de la aplicación en los 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 los clústeres de Anthos 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 clústeres de Anthos 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.googleCloud

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

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

Nombre 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 tus clústeres de Anthos en el entorno de AWS.

Nombre 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.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 tus clústeres de Anthos en el servicio de administración y clústeres de usuarios de AWS.

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, los clústeres de Anthos en AWS crean un host de bastión nuevo.

  • Para una instalación de dedicatedVPC, los clústeres de Anthos en AWS crean 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.

Nombre 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. Los clústeres de Anthos en AWS aprovisionarán 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]
rootVolume Un objeto que describe el volumen raíz de los hosts de bastión. object {sizeGiB: 10}

spec.rootVolume y spec.bastionHost.rootVolume

Estos campos se aplican tanto a spec.rootVolume como a spec.bastionHost.rootVolume.

Nombre Description Tipo Ejemplo Obligatorio
sizeGiB Tamaño del volumen raíz en gigabytes. integer 10
volumeType El tipo de volumen de EBS de AWS del nodo del plano de control Puede ser gp2 (predeterminado) o gp3. string gp2 No
iops La cantidad de operaciones de E/S aprovisionadas por segundo (IOPS) para el volumen. Solo es válido cuando volumeType es GP3. Para obtener más información, consulta Volúmenes de uso general SSD (gp3). integer 5000 No
kmsKeyARN El ARN de la clave de AWS KMS que se usa para encriptar el volumen de EBS. Si deseas obtener más información, consulta Usa una CMK administrada por clientes para encriptar volúmenes. string arn:aws:kms:us-west-1:123456789:key/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee No

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 Metadatos de clave-valor opcionales asignados a cada recurso de AWS que admiten el servicio de administración. map(string) {Environment: Production, Team: Analytics}

spec.proxy

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

Nombre 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 bucket S3 para clústeres de Anthos en AWS .

Nombre Description Tipo Ejemplo
bootstrapS3Bucket Campo opcional para el nombre del bucket de AWS S3 en el que los clústeres de Anthos en AWS almacenan la información de configuración. Si deseas crear varios clústeres de Anthos en servicios de administración de AWS en la misma región de AWS, establece este valor en un nombre de bucket único. string example-s3-bucket

spec.terraform

El campo spec.terraform.invokeManually configura el comando anthos-gke para no crear un servicio de administración.

Nombre Description Tipo Ejemplo
invokeManually Campo opcional que configura la herramienta de línea de comandos de anthos-gke para que no cree un servicio de administración después de compilar y validar su configuración. Si configuras invokeManually como Yes, puedes editar y aplicar los archivos de configuración de Terraform de forma manual. Yes, No Yes