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 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 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:
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 administrado que crea anthos-
gke
. La versión coincide con la salida 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 deseas implementar el servicio de administración. 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) o el alias 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 cadena con el nombre del recurso de Amazon (ARN) o el alias de la clave de KMS de AWS que GKE on AWS usa 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 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.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 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.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
.
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. 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] |
rootVolume | Un objeto que describe el volumen raíz de los hosts de bastión. | object |
{volumeType: gp2} |
spec.rootVolume, spec.dataVolume y spec.bastionHost.rootVolume
En la siguiente tabla, se describen los campos comunes para los siguientes objetos:
spec.rootVolume
para volúmenes de discos raíz del plano de controlspec.dataVolume
, para volúmenes de discos de datos del plano de controlspec.bastionHost.rootVolume
para volúmenes de discos raíz del host de bastión
Nombre | Description | Tipo | Ejemplo | Obligatorio |
---|---|---|---|---|
volumeType | El tipo de volumen de EBS de AWS del nodo. 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.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 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. Si deseas crear varios servicios de administración de GKE on 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 |
stateGCSBucket | Campo opcional que especifica un bucket de Google Cloud Storage preexistente para que Terraform almacene sus datos de configuración. | string |
example-GCS-bucket |