El recurso AWSManagementService
contiene información de configuración de tu servicio de gestión de GKE en AWS.
Debes configurar un archivo YAML llamado anthos-gke.yaml
antes de crear tu servicio de gestión. La herramienta anthos-gke
usa la configuración al crear tu servicio de gestión.
El contenido del archivo anthos-gke.yaml
depende de si usas anthos-gke
para crear una
nube privada virtual (VPC) de AWS específica para ti
o si usas una
VPC de AWS ya creada.
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:
volumeType: ROOT_VOLUME_TYPE
iops: ROOT_VOLUME_IOPS
kmsKeyARN: ROOT_VOLUME_KEY
dataVolume:
volumeType: DATA_VOLUME_TYPE
iops: DATA_VOLUME_IOPS
kmsKeyARN: DATA_VOLUME_KEY
tags:
tag-name: tag-value
bastionHost:
allowedSSHCIDRBlocks:
- SSH_CIDR_BLOCK
rootVolume:
volumeType: ROOT_VOLUME_TYPE
iops: ROOT_VOLUME_IOPS
kmsKeyARN: ROOT_VOLUME_KEY
bootstrapS3Bucket: BOOTSTRAP_S3_BUCKET
proxy: PROXY_JSON_FILE
terraform:
invokeManually: No
stateGCSBucket: GCS_BUCKET_NAME
VPC ya creada
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:
volumeType: ROOT_VOLUME_TYPE
iops: ROOT_VOLUME_IOPS
kmsKeyARN: ROOT_VOLUME_KEY
dataVolume:
volumeType: DATA_VOLUME_TYPE
iops: DATA_VOLUME_IOPS
kmsKeyARN: DATA_VOLUME_KEY
ubuntuRepositoryMirror: 'packages.cloud.google.com'
bastionHost:
subnetID: [BASTION_HOST_SUBNET_ID]
allowedSSHCIDRBlocks:
- [SSH_CIDR_BLOCK]
rootVolume:
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
stateGCSBucket: GCS_BUCKET_NAME
En las siguientes secciones se describen estos campos.
spec.version
El valor de spec.version
es la versión del servicio de gestión que crea anthos-
gke
. La versión coincide con el resultado de anthos-gke version
. Por ejemplo, aws-1.14.1-gke.0
.
spec.region
El valor de spec.region
es la región de AWS en la que quieres implementar el servicio de gestión. Por ejemplo, us-east-1
.
spec.authentication.awsIAM
El valor de spec.authentication.awsIAM.adminIdentityARNs
es una cadena con el nombre de recurso de Amazon (ARN) de un usuario de IAM de AWS con permisos para crear un servicio de gestión de GKE en AWS. Por ejemplo, arn:aws:iam::123456789:user/someuser
.
spec.kmsKeyARN
El valor de spec.kmsKeyARN
es una cadena con el nombre de recurso de Amazon (ARN) o el alias de la clave de KMS de AWS creada en Requisitos.
GKE en AWS usa la clave para el cifrado envolvente.
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 cadena con el nombre de recurso de Amazon (ARN) o el alias de clave de la clave de AWS KMS que usa GKE en AWS para cifrar los secretos de la capa de 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 IDs de grupos de seguridad de AWS adicionales asignados a la VM del servicio de gestión.
Por ejemplo, [sg-00123456789abcd, sg-00123456789def1]`.
spec.dedicatedVPC
Este campo representa la configuración de VPC deseada.
Nombre | Descripción | Tipo | Ejemplo |
---|---|---|---|
vpcCIDRBlock | El bloque CIDR de la VPC de AWS que quieras. Debe tener entre 16 y 28 bits. | string |
10.0.0.0/16 |
availabilityZones | Zonas de disponibilidad en las que desplegar réplicas del plano de control. Cada zona tendrá su propia subred y necesitará un bloque CIDR independiente. | list(string) |
[us-east-1a, us-east-1b] |
privateSubnetCIDRBlocks | Bloque CIDR de las subredes privadas 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 de las subredes públicas 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 desde los que se permite el acceso SSH entrante. Este campo está obsoleto en GKE en AWS 1.5. Usa spec.bastionHost en la versión 1.5 o posterior. |
string |
[104.132.0.0/14] |
spec.existingVPC
Los campos de spec.existingVPC
configuran GKE en AWS para usar una VPC de AWS.
Nombre | Descripción | Tipo | Ejemplo |
---|---|---|---|
subnetID | ID de la subred en la que se ejecuta el servicio de gestión. | string |
subnet-00123456789ab |
allowedSSHSecurityGroupIDs | Lista de los IDs de los grupos de seguridad que tienen permitido el acceso SSH en la VPC. | list(string) | [sg-00123456789abcd, sg-00123456789def1] |
spec.googleCloud
Los campos de spec.googleCloud
configuran tu Google Cloud proyecto
y las claves de cuenta de servicio de IAM.
Nombre | Descripción | Tipo | Ejemplo |
---|---|---|---|
projectID | Google Cloud Google Cloud proyecto. | string |
my-gcp-project-id |
serviceAccountKeys | Rutas de archivo a las claves de cuenta de servicio. | serviceAccountKeys |
spec.googleCloud.serviceAccountKeys
Los campos de spec.googleCloud.serviceAccountKeys
incluyen rutas de archivos locales a las claves de la cuenta de servicio de GCP. Consulta los requisitos para ver descripciones detalladas de cada clave.
Nombre | Descripción | Tipo | Ejemplo |
---|---|---|---|
managementService
|
Clave de cuenta de servicio usada por el clúster de gestión | cadena | path/to/key/management-sa-key.json
|
connectAgent
|
Clave de cuenta de servicio usada por el agente de conexión de GKE Hub | cadena | path/to/key/hub-sa-key.json
|
node
|
Clave de cuenta de servicio usada por los nodos | cadena | path/to/key/node-sa-key.json
|
spec.iam
Los campos de spec.iam
configuran parámetros opcionales de gestión de identidades y accesos de AWS para tu entorno de GKE en AWS.
Nombre | Descripción | Tipo | Ejemplo |
---|---|---|---|
permissionsBoundary | ARN de los límites de permisos de los roles de gestión de identidades y accesos | string |
arn:aws:iam::126285863215:policy/testPolicyBoundary |
ruta | Ruta al rol de gestión de identidades y accesos | string |
/org_abc/team_abc/member_abc/ |
spec.bastionHost
La sección spec.bastionHost
es opcional y describe un host bastion.
Un host bastion es una instancia de EC2 que se coloca en una subred pública. Permite el acceso SSH entrante desde un bloque CIDR especificado y el acceso SSH saliente a tus clústeres de gestión y de usuario de GKE en AWS.
Puedes crear un host bastion para instalaciones de dedicatedVPC
o existingVPC
. El campo allowedSSHCIDRBlocks
especifica el intervalo de direcciones entrantes permitidas y no debe estar vacío.
Si no existe ningún host bastion, GKE en AWS crea uno.
- En una instalación de
dedicatedVPC
, GKE on AWS crea una subred. - Para una instalación de
existingVPC
, debes proporcionar una subred para el host bastion y asegurarte de que esta subred tenga conectividad con tu VPC.
Puedes modificar tu host bastion cambiando o eliminando el campo spec.bastionHost
y ejecutando anthos-gke aws management init
, seguido de
anthos-gke aws management apply
.
Nombre | Descripción | Tipo | Ejemplo |
---|---|---|---|
subnetID | El ID de la subred en la que se ejecuta el host bastion. En las instalaciones de existingVPC , la subred debe permitir la entrada desde donde vayas a acceder a ella en el puerto 22. Además, asegúrate de que tu VPC permite el acceso entrante desde esta subred. En las instalaciones de dedicatedVPC , no especifique este campo. GKE on AWS aprovisionará la subred con el acceso necesario. |
cadena | subnet-003bdf7b0f5e21e45 |
allowedSSHCIDRBlocks | Bloques CIDR desde los que se permite el acceso SSH entrante. | list(string) |
[104.132.0.0/14] |
rootVolume | Objeto que describe el volumen raíz del host bastion. | object |
{volumeType: gp2} |
spec.rootVolume, spec.dataVolume y spec.bastionHost.rootVolume
En la siguiente tabla se describen los campos comunes de los siguientes objetos:
spec.rootVolume
para los volúmenes de disco raíz del plano de controlspec.dataVolume
, para volúmenes de disco de datos del plano de controlspec.bastionHost.rootVolume
para volúmenes de disco raíz de hosts bastion
Nombre | Descripción | Tipo | Ejemplo | Obligatorio |
---|---|---|---|---|
volumeType | El tipo de volumen de EBS de AWS del nodo. Puede ser gp2 (valor predeterminado) o gp3 . |
string |
gp2 |
no |
IOPS | Cantidad de operaciones de entrada/salida por segundo (IOPS) aprovisionadas para los volúmenes. Solo es válido cuando volumeType es GP3 . Para obtener más información, consulta Volúmenes SSD de uso general (gp3). |
integer |
5000 |
no |
kmsKeyARN | El ARN de la clave de KMS de AWS que se usa para cifrar el volumen de EBS. Para obtener más información, consulta Usar una CMK gestionada por el cliente para cifrar volúmenes. | string |
arn:aws:kms:us-west-1:123456789:key/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee |
no |
spec.tags
Nombre | Descripción | Tipo | Ejemplo |
---|---|---|---|
etiquetas | Metadatos opcionales de clave/valor asignados a cada recurso de AWS que admita el servicio de gestión. | map(string) |
{Environment: Production, Team: Analytics} |
spec.proxy
El campo spec.proxy
configura un proxy HTTP o HTTPS opcional.
Nombre | Descripción | Tipo | Ejemplo |
---|---|---|---|
proxy | Ruta al archivo de configuración del proxy. | Ruta relativa desde anthos-gke.yaml |
proxy.json |
spec.bootstrapS3Bucket
El campo spec.bootstrapS3Bucket
configura un nombre de segmento de S3 para GKE en AWS .
Nombre | Descripción | Tipo | Ejemplo |
---|---|---|---|
bootstrapS3Bucket | Campo opcional para el nombre del bucket de AWS S3 donde GKE en AWS almacena la información de configuración. Si quiere crear varios servicios de gestión de GKE en AWS en la misma región de AWS, asigne a este valor un nombre de segmento único. | string |
example-s3-bucket |
spec.terraform
El campo spec.terraform.invokeManually
configura el comando anthos-gke
para que no cree un servicio de gestión.
Nombre | Descripción | Tipo | Ejemplo |
---|---|---|---|
invokeManually | Campo opcional que configura la herramienta de línea de comandos anthos-gke para que no cree un servicio de gestión después de compilar y validar la configuración. Si asignas el valor Yes a invokeManually , puedes editar y aplicar los archivos de configuración de Terraform manualmente. |
Yes , No |
Yes |
stateGCSBucket | Campo opcional que especifica un segmento de Google Cloud Storage preexistente para que Terraform almacene sus datos de configuración. | string |
example-GCS-bucket |