AWSManagementService

O recurso AWSManagementServicecontém informações de configuração para o seu serviço de gestão do GKE na AWS.

Configura um ficheiro YAML denominado anthos-gke.yaml antes de criar o seu serviço de gestão. A ferramenta anthos-gke usa a configuração quando cria o seu serviço de gestão.

O conteúdo do ficheiro anthos-gke.yaml depende de usar anthos-gke para criar uma nuvem virtual privada (VPC) da AWS dedicada para si ou se usar uma VPC da 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

As secções seguintes descrevem estes campos.

spec.version

O valor de spec.version é a versão do serviço de gestão que anthos- gke cria. A versão corresponde ao resultado de anthos-gke version. Por exemplo, aws-1.14.1-gke.0.

spec.region

O valor de spec.region é a região da AWS onde quer implementar o serviço de gestão. Por exemplo, us-east-1.

spec.authentication.awsIAM

O valor de spec.authentication.awsIAM.adminIdentityARNs é uma string com o nome do recurso da Amazon (ARN) de um utilizador do AWS IAM com autorizações para criar um serviço de gestão do GKE na AWS. Por exemplo, arn:aws:iam::123456789:user/someuser.

spec.kmsKeyARN

O valor de spec.kmsKeyARN é uma string com o nome do recurso da Amazon (ARN) ou o alias da chave do AWS KMS criada nos Pré-requisitos. O GKE na AWS usa a chave para encriptação em envelope. Por exemplo, arn:aws:kms:us-west-1:123456789:key/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee.

spec.databaseEncryption

O valor de spec.databaseEncryption.kmsKeyARN é uma string com o nome do recurso da Amazon (ARN) ou o alias da chave da AWS KMS que o GKE no AWS usa para encriptar segredos da camada de aplicação em clusters. Por exemplo, arn:aws:kms:us-west-1:123456789:key/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee.

spec.securityGroupIDs

O valor de spec.securityGroupIDs é uma lista de IDs de grupos de segurança da AWS adicionais atribuídos à VM do serviço de gestão. Por exemplo, [sg-00123456789abcd, sg-00123456789def1]`.

spec.dedicatedVPC

Este campo representa as definições de VPC pretendidas.

Nome Descrição Tipo Exemplo
vpcCIDRBlock O bloco CIDR da VPC da AWS pretendida. Tem de ter entre 16 e 28 bits. string 10.0.0.0/16
availabilityZones Zonas de disponibilidade para implementar réplicas do plano de controlo. Cada zona tem a sua própria sub-rede e precisa de um bloco CIDR separado. list(string) [us-east-1a, us-east-1b]
privateSubnetCIDRBlocks Bloco CIDR para sub-redes privadas na VPC em cada zona de disponibilidade. Tem de ser um subconjunto de vpcCIDRBlock. Tem de ter uma sub-rede por zona de disponibilidade. list(string) [10.0.101.0/24, 10.0.102.0/24]
publicSubnetCIDRBlocks Bloco CIDR para sub-redes públicas na VPC em cada zona de disponibilidade. Tem de ser um subconjunto de vpcCIDRBlock. Tem de ter uma sub-rede por zona de disponibilidade. list(string) [10.0.1.0/24, 10.0.2.0/24]
bastionAllowedSSHCIDRBlocks Blocos CIDR a partir dos quais o acesso SSH de entrada é permitido. Este campo foi descontinuado no GKE on AWS 1.5. Use o spec.bastionHost na versão 1.5 ou superior. string [104.132.0.0/14]

spec.existingVPC

Os campos em spec.existingVPC configuram o GKE na AWS para usar uma VPC da AWS existente.

Nome Descrição Tipo Exemplo
subnetID ID da sub-rede onde o serviço de gestão é executado. string subnet-00123456789ab
allowedSSHSecurityGroupIDs Lista de IDs de grupos de segurança que permitem o acesso SSH na VPC. list(string) [sg-00123456789abcd, sg-00123456789def1]

spec.googleCloud

Os campos em spec.googleCloud configuram o seu Google Cloud projeto e as chaves da conta de serviço de IAM.

Nome Descrição Tipo Exemplo
projectID Google Cloud Google Cloud projeto. string my-gcp-project-id
serviceAccountKeys Caminhos dos ficheiros para as chaves de contas de serviço. serviceAccountKeys

spec.googleCloud.serviceAccountKeys

Os campos em spec.googleCloud.serviceAccountKeys incluem caminhos de ficheiros locais para as chaves da conta de serviço do GCP. Consulte os Pré-requisitos para ver descrições detalhadas de cada chave.

Nome Descrição Tipo Exemplo
managementService Chave da conta de serviço usada pelo cluster de gestão de string path/to/key/management-sa-key.json
connectAgent Chave da conta de serviço usada pelo agente do GKE Hub Connect de string path/to/key/hub-sa-key.json
node Chave da conta de serviço usada pelos nós de string path/to/key/node-sa-key.json

spec.iam

Os campos em spec.iam configuram parâmetros opcionais do AWS IAM para o seu ambiente do GKE na AWS.

Nome Descrição Tipo Exemplo
permissionsBoundary ARN dos limites de autorizações para funções do IAM string arn:aws:iam::126285863215:policy/testPolicyBoundary
caminho Caminho para a função de IAM string /org_abc/team_abc/member_abc/

spec.bastionHost

A secção spec.bastionHost é opcional e descreve um anfitrião de baluarte.

Um anfitrião de bastion é uma instância do EC2 colocada numa sub-rede pública. Permite o acesso SSH de entrada a partir de um bloco CIDR especificado e tem acesso SSH de saída ao seu serviço de gestão do GKE on AWS e clusters de utilizadores.

Pode criar um anfitrião bastion para instalações do dedicatedVPC ou do existingVPC. O campo allowedSSHCIDRBlocks especifica o intervalo de entrada de endereços permitidos e não pode estar vazio.

Se não existir um anfitrião de bastion, o GKE on AWS cria um novo anfitrião de bastion.

  • Para uma instalação dedicatedVPC, o GKE on AWS cria uma sub-rede.
  • Para uma instalação do existingVPC, tem de fornecer uma sub-rede para o anfitrião bastion e garantir que esta sub-rede tem conetividade com a sua VPC.

Pode modificar o seu anfitrião bastion alterando ou eliminando o campo spec.bastionHost e executando anthos-gke aws management init, seguido de anthos-gke aws management apply.

Nome Descrição Tipo Exemplo
subnetID O ID da sub-rede onde o anfitrião bastion é executado. Para instalações do existingVPC, a sub-rede tem de permitir a entrada a partir do local onde vai aceder à mesma na porta 22. Além disso, certifique-se de que a sua VPC permite o acesso de entrada a partir desta sub-rede. Para instalações do dedicatedVPC, não especifique este campo. O GKE no AWS aprovisiona a sub-rede com o acesso necessário. de string subnet-003bdf7b0f5e21e45
allowedSSHCIDRBlocks Blocos CIDR a partir dos quais o acesso SSH de entrada é permitido. list(string) [104.132.0.0/14]
rootVolume Um objeto que descreve o volume de raiz do anfitrião bastion. object {volumeType: gp2}

spec.rootVolume, spec.dataVolume e spec.bastionHost.rootVolume

A tabela seguinte descreve os campos comuns para os seguintes objetos:

  • spec.rootVolume, para volumes de disco raiz do plano de controlo
  • spec.dataVolume, para volumes de disco de dados do plano de controlo
  • spec.bastionHost.rootVolume, para volumes de disco raiz do bastion host
Nome Descrição Tipo Exemplo Obrigatória
volumeType O tipo de volume do EBS da AWS do nó. Pode ser gp2 (predefinição) ou gp3. string gp2 não
iops A quantidade de operações de E/S aprovisionadas por segundo (IOPS) para volumes. Só é válido quando volumeType é GP3. Para mais informações, consulte o artigo Volumes SSD de uso geral (gp3). integer 5000 não
kmsKeyARN O ARN da chave do AWS KMS usada para encriptar o volume do EBS. Para mais informações, consulte o artigo Usar uma CMK gerida pelo cliente para encriptar volumes. string arn:aws:kms:us-west-1:123456789:key/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee não

spec.tags

Nome Descrição Tipo Exemplo
etiquetas Metadados de chave/valor opcionais atribuídos a cada recurso da AWS que suporta o serviço de gestão. map(string) {Environment: Production, Team: Analytics}

spec.proxy

O campo spec.proxy configura um proxy HTTP/HTTPS opcional.

Nome Descrição Tipo Exemplo
proxy Caminho para o ficheiro de configuração do proxy. Caminho relativo a partir de anthos-gke.yaml proxy.json

spec.bootstrapS3Bucket

O campo spec.bootstrapS3Bucket configura um nome de contentor do S3 para o GKE na AWS .

Nome Descrição Tipo Exemplo
bootstrapS3Bucket Campo opcional para o nome do contentor do AWS S3 onde o GKE no AWS armazena informações de configuração. Se quiser criar vários serviços de gestão do GKE on AWS na mesma região da AWS, defina este valor como um nome de contentor único. string example-s3-bucket

spec.terraform

O campo spec.terraform.invokeManually configura o comando anthos-gke para não criar um serviço de gestão.

Nome Descrição Tipo Exemplo
invokeManually Campo opcional que configura a ferramenta de linha de comandos para não criar um serviço de gestão após criar e validar a sua configuração.anthos-gke Se definir invokeManually como Yes, pode editar e aplicar os ficheiros de configuração do Terraform manualmente. Yes, No Yes
stateGCSBucket Campo opcional que especifica um contentor do Google Cloud Storage pré-existente para o Terraform armazenar os respetivos dados de configuração. string example-GCS-bucket