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 |