Serviço de Gerenciamento AWS

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

Configure um arquivo YAML chamado anthos-gke.yaml antes de criar seu serviço de gerenciamento. A ferramenta anthos-gke usa essa configuração ao criar seu serviço de gerenciamento.

O conteúdo do seu arquivo anthos-gke.yaml depende se você usa anthos-gke para criar uma AWS Virtual Private Cloud (VPC) dedicada para você ou se usa uma AWS VPC 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 seções a seguir descrevem esses campos.

spec.version

O valor de spec.version é a versão do serviço de gerenciamento criado anthos- gke . A versão corresponde à saída 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 você deseja implantar o serviço de gerenciamento. 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 usuário do AWS IAM com permissões para criar um serviço de gerenciamento 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 alias da chave do AWS KMS criada em Pré-requisitos . O GKE na AWS usa a chave para criptografia de 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 alias da chave do AWS KMS que o GKE na AWS usa para criptografar segredos da camada de aplicativo 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 adicionais da AWS atribuídos à VM do serviço de gerenciamento. Por exemplo, [sg-00123456789abcd, sg-00123456789def1].

spec.dedicatedVPC

Este campo representa as configurações de VPC desejadas.

Nome Descrição Tipo Exemplo
vpcCIDRBlock O bloco CIDR da VPC AWS desejada. Deve estar entre /16 e /28 bits. string 10.0.0.0/16
Zonas de disponibilidade Zonas de disponibilidade para implantar réplicas do plano de controle. Cada zona terá sua própria sub-rede e precisará de um bloco CIDR separado. list(string) [eua-leste-1a, eua-leste-1b]
privateSubnetCIDRBlocks Bloco CIDR para sub-redes privadas dentro da VPC em cada zona de disponibilidade. Precisa ser um subconjunto de vpcCIDRBlock . É necessário 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 dentro da VPC em cada zona de disponibilidade. Precisa ser um subconjunto de vpcCIDRBlock . É necessário ter uma sub-rede por zona de disponibilidade. list(string) [10.0.1.0/24, 10.0.2.0/24]
bastionAllowedSSHCIDRBlocks Blocos CIDR para permitir acesso SSH de entrada. Este campo está obsoleto no GKE na AWS 1.5. Use 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
ID da sub-rede ID da sub-rede onde o serviço de gerenciamento é executado. string sub-rede-00123456789ab
IDs de grupo de segurança SSH permitidos Lista de IDs de grupos de segurança que permitem acesso SSH dentro da VPC. lista(string) [sg-00123456789abcd, sg-00123456789def1]

spec.googleCloud

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

Nome Descrição Tipo Exemplo
ID do projeto Google Cloud Google Cloud projeto. string my-gcp-project-id
Chaves de Conta de Serviço Caminhos de arquivo para as chaves da conta de serviço . Chaves de Conta de Serviço

spec.googleCloud.serviceAccountKeys

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

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

spec.iam

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

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

spec.bastionHost

A seção spec.bastionHost é opcional e descreve um bastion host.

Um bastion host é uma instância do EC2 localizada em uma sub-rede pública. Ele permite acesso SSH de entrada a partir de um bloco CIDR especificado e tem acesso SSH de saída ao seu serviço de gerenciamento e clusters de usuários do GKE na AWS.

Você pode criar um host bastião para instalações de VPC dedicatedVPC ou existingVPC . O campo allowedSSHCIDRBlocks especifica o intervalo de endereços de entrada permitidos e não deve estar vazio.

Se um bastion host não existir, o GKE na AWS criará um novo bastion host.

  • Para uma instalação dedicatedVPC , o GKE na AWS cria uma sub-rede.
  • Para uma instalação existingVPC , você precisa fornecer uma sub-rede para o bastion host e garantir que essa sub-rede tenha conectividade com sua VPC.

Você pode modificar seu bastion host alterando ou excluindo o campo spec.bastionHost e executando anthos-gke aws management init , seguido por anthos-gke aws management apply .

Nome Descrição Tipo Exemplo
ID da sub-rede O ID da sub-rede onde o host bastion é executado. Para instalações de existingVPC , a sub-rede deve permitir a entrada de onde você a acessará na porta 22. Além disso, certifique-se de que sua VPC permita o acesso de entrada a partir dessa sub-rede. Para instalações de VPC dedicatedVPC , não especifique este campo. O GKE na AWS provisionará a sub-rede com o acesso necessário. corda sub-rede-003bdf7b0f5e21e45
bloqueios SSHCIDRB permitidos Blocos CIDR para permitir acesso SSH de entrada. list(string) [104.132.0.0/14]
volume raiz Um objeto que descreve o volume raiz do host bastião. object {volumeType: gp2}

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

A tabela a seguir descreve campos comuns para os seguintes objetos:

  • spec.rootVolume , para volumes de disco raiz do plano de controle
  • spec.dataVolume , para volumes de disco de dados do plano de controle
  • spec.bastionHost.rootVolume , para volumes de disco raiz do host bastion
Nome Descrição Tipo Exemplo Obrigatório
Tipo de volume O tipo de volume AWS EBS do nó. Pode ser gp2 (padrão) ou gp3 . string gp2 não
iops A quantidade de operações de E/S provisionadas por segundo (IOPS) para volumes. Válido somente quando volumeType for GP3 . Para obter mais informações, consulte Volumes SSD de uso geral (gp3) . integer 5000 não
kmsKeyARN O ARN da chave KMS da AWS usada para criptografar o volume do EBS. Para obter mais informações, consulte Usando uma CMK gerenciada pelo cliente para criptografar 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 dá suporte ao serviço de gerenciamento. map(string) {Ambiente: Produção, Equipe: Análise}

spec.proxy

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

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

spec.bootstrapS3Bucket

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

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

spec.terraform

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

Nome Descrição Tipo Exemplo
invocarManualmente Campo opcional que configura a ferramenta de linha de comando anthos-gke para não criar um serviço de gerenciamento após compilar e validar sua configuração. Se você definir invokeManually como Yes , poderá editar e aplicar os arquivos de configuração do Terraform manualmente. Yes , No Yes
StateGCSBucket Campo opcional que especifica um bucket pré-existente do Google Cloud Storage para o Terraform armazenar seus dados de configuração. string example-GCS-bucket