O recurso AWSManagementService
conté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 controlospec.dataVolume
, para volumes de disco de dados do plano de controlospec.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 |