O recurso AWSManagementService
contém informações de configuração para seu
GKE no serviço de gerenciamento da AWS.
Você configura um arquivo YAML denominado anthos-gke.yaml
antes de criar
o serviço de gerenciamento. A ferramenta anthos-gke
usa a configuração ao criar
o serviço de gerenciamento.
O conteúdo do arquivo anthos-gke.yaml
depende de você usar anthos-gke
para criar uma nuvem privada virtual (VPC) dedicada da AWS ou usa uma VPC da AWS atual.
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 atual
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 que anthos-
gke
cria. 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
em que você quer 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 GKE no serviço de gerenciamento do 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, na sigla em inglês) ou o alias da chave do KMS da AWS criada em
Pré-requisitos.
O GKE no 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 o alias de chave da chave do KMS da AWS que o GKE na AWS
usa para criptografar secrets da camada de aplicativo nos 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 extras de grupos de segurança da AWS atribuídos à VM de serviço de gerenciamento.
Por exemplo, [sg-00123456789abcd, sg-00123456789def1]`.
spec.dedicatedVPC
Este campo representa as configurações de VPC que você quer.
Nome | Descrição | Tipo | Exemplo |
---|---|---|---|
vpcCIDRBlock | O bloco CIDR da VPC desejada da AWS. Precisa estar entre /16 e /28 bits. | string |
10.0.0.0/16 |
availabilityZones | Zonas de disponibilidade para implantar réplicas do plano de controle. Cada zona terá a 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 particulares na 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 de CIDR para sub-redes públicas na 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 o acesso SSH de entrada. O uso deste campo foi suspenso 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 atual da AWS.
Nome | Descrição | Tipo | Exemplo |
---|---|---|---|
subnetID | ID da sub-rede em que o serviço de gerenciamento é executado. | string |
subnet-00123456789ab |
allowedSSHSecurityGroupIDs | Lista de IDs de grupo de segurança que permitem acesso SSH na VPC. | list(string) | [sg-00123456789abcd, sg-00123456789def1] |
spec.googleCloud
Os campos em spec.googleCloud
configuram as chaves do projeto do Google Cloud e da conta de serviço do IAM.
Nome | Descrição | Tipo | Exemplo |
---|---|---|---|
projectID | Projeto do Google Cloud. | string |
my-gcp-project-id |
serviceAccountKeys | Caminhos para os arquivos das chaves da conta de serviço. | serviceAccountKeys |
spec.googleCloud.serviceAccountKeys
Os campos em spec.googleCloud.serviceAccountKeys
incluem caminhos de arquivo local 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 gerenciamento | string | path/to/key/management-sa-key.json
|
connectAgent
|
Chave de conta de serviço usada pelo agente do GKE Hub | string | path/to/key/hub-sa-key.json
|
node
|
Chave da conta de serviço usada pelos nós | string | path/to/key/node-sa-key.json
|
spec.iam
Os campos em spec.iam
configuram parâmetros opcionais do AWS IAM para o GKE no ambiente da AWS.
Nome | Descrição | Tipo | Exemplo |
---|---|---|---|
1permissionsBoundary | ARN do Limites de permissões para papéis do IAM | string |
arn:aws:iam::126285863215:policy/testPolicyBoundary |
path | Caminho para o papel do 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 colocada em uma sub-rede pública. Ele permite o acesso SSH de entrada a partir de um bloco CIDR especificado e tem acesso de SSH de saída ao seu GKE na gestão da AWS e nos clusters de usuários.
É possível criar um Bastion Host para instalações dedicatedVPC
ou existingVPC
. O campo allowedSSHCIDRBlocks
especifica o intervalo de entrada dos endereços permitidos e não pode estar vazio.
Se não houver um Bastion Host, 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
, é preciso fornecer uma sub-rede para o Bastion Host e garantir que essa sub-rede tenha conectividade com sua VPC.
É possível modificar o Bastion Host alterando ou excluindo 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 em que o Bastion Host é executado. Para instalações de existingVPC , a sub-rede precisa permitir a entrada de onde você a acessará na porta 22. Além disso, verifique se a VPC permite acesso de entrada desta sub-rede. Para instalações de dedicatedVPC , não especifique este campo. O GKE na AWS provisionará a sub-rede com o acesso necessário. |
string | subnet-003bdf7b0f5e21e45 |
allowedSSHCIDRBlocks | Blocos CIDR para permitir o acesso SSH de entrada. | list(string) |
[104.132.0.0/14] |
rootVolume | Objeto que descreve o volume raiz do Bastion Host. | 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 controlespec.dataVolume
, para volumes de disco de dados do plano de controlespec.bastionHost.rootVolume
, para volumes de disco raiz do Bastion Host
Nome | Descrição | Tipo | Exemplo | Obrigatório |
---|---|---|---|---|
volumeType | O tipo de volume EBS da AWS do nó. Pode ser gp2 (padrão) ou gp3 . |
string |
gp2 |
no |
iops | A quantidade de operações de E/S provisionadas por segundo (IOPS, na sigla em inglês) para volumes. Válido apenas quando volumeType for GP3 . Para mais informações, consulte Volumes SSD de uso geral (gp3). |
integer |
5000 |
no |
kmsKeyARN | O ARN da chave do KMS da AWS usado para criptografar o volume EBS. Para mais informações, consulte Como usar 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 |
---|---|---|---|
tags | Metadados de chave-valor opcionais atribuídos a cada recurso da AWS compatível com o 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 |
---|---|---|---|
proxy | Caminho para o arquivo de configuração de proxy. | Caminho relativo de anthos-gke.yaml |
proxy.json |
spec.bootstrapS3Bucket
O campo spec.bootstrapS3Bucket
configura um nome de bucket S3 para GKE na AWS .
Nome | Descrição | Tipo | Exemplo |
---|---|---|---|
bootstrapS3Bucket | Campo opcional para o nome do bucket do AWS S3 em que o GKE no 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 esse 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 |
---|---|---|---|
invokeManually | Campo opcional que configura a ferramenta de linha de comando anthos-gke para não criar um serviço de gerenciamento depois de criar e validar sua configuração. Se você definir invokeManually como Yes , poderá editar e aplicar manualmente os arquivos de configuração do Terraform. |
Yes , No |
Yes |
stateGCSBucket | Campo opcional que especifica um bucket preexistente do Google Cloud Storage para o Terraform armazenar os dados de configuração. | string |
example-GCS-bucket |