O produto descrito nesta documentação, os clusters do Anthos na AWS (geração anterior), agora está no modo de manutenção. Todas as novas instalações precisam usar o produto de geração atual Clusters do Anthos na AWS.
Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
Neste tópico, descrevemos as opções de configuração da definição de recurso
personalizada do AWSCluster.
Como definir um AWSCluster
AWSCluster é um recurso personalizado do Kubernetes definido pelo
GKE na AWS. Esse recurso representa um plano de controle do GKE na AWS.
Para criar um cluster com base nesse modelo, copie o YAML a seguir e preencha os
valores destacados definidos nos campos spec.networking e
spec.controlPlane. Em seguida,
aplique o manifesto do recurso ao serviço de gerenciamento.
apiVersion:multicloud.cluster.gke.io/v1kind:AWSClustermetadata:name:CLUSTER_NAMEspec:region:AWS_REGIONnetworking:vpcID:VPC_IDpodAddressCIDRBlocks:POD_ADDRESS_CIDR_BLOCKSserviceAddressCIDRBlocks:SERVICE_ADDRESS_CIDR_BLOCKSserviceLoadBalancerSubnetIDs:SERVICE_LOAD_BALANCER_SUBNETScontrolPlane:version:GKE_VERSION# Latest version is 1.25.5-gke.2100instanceType:AWS_INSTANCE_TYPEkeyName:SSH_KEY_NAMEsubnetIDs:-CONTROL_PLANE_SUBNET_IDSsecurityGroupIDs:-CONTROL_PLANE_SECURITY_GROUPSiamInstanceProfile:CONTROL_PLANE_IAM_ROLEdatabaseEncryption:kmsKeyARN:ARN_OF_KMS_KEYhub:membershipName:ANTHOS_CONNECT_NAMEcloudOperations:# OptionalprojectID:YOUR_PROJECTlocation:GCP_LOCATIONenableLogging:ENABLE_LOGGINGenableMonitoring:ENABLE_MONITORINGtags:TAG_KEY:TAG_VALUEproxySecretName:PROXY_SECRET_NAMEworkloadIdentity:oidcDiscoveryGCSBucket:WORKLOAD_IDENTITY_BUCKETrootVolume:# OptionalsizeGiB:ROOT_VOLUME_SIZEvolumeType:ROOT_VOLUME_TYPEiops:ROOT_VOLUME_IOPSkmsKeyARN:ROOT_VOLUME_KEYetcd:# OptionalmainVolume:sizeGiB:ETCD_VOLUME_SIZEvolumeType:ETCD_VOLUME_TYPEiops:ETCD_VOLUME_IOPSkmsKeyARN:ETCD_VOLUME_KEYauthentication:awsIAM:adminIdentityARNs:ADMIN_IAM_ARNoidc:# Optional-certificateAuthorityData:CERTIFICATE_STRINGclientID:CLIENT_IDclientSecret:CLIENT_SECRETextraParams:EXTRA_PARAMSgroupsClaim:GROUPS_CLAIMgroupPrefix:GROUP_PREFIXissuerURI:ISSUER_URLkubectlRedirectURI:KUBECTL_REDIRECT_URLscopes:SCOPESuserClaim:USER_CLAIMuserPrefix:USER_PREFIX
Os subcampos em spec são descritos nas seções a seguir.
spec.networking
Esse objeto define a configuração de rede em todo o cluster.
Nome
Descrição
Tipo
Exemplo
Obrigatório
vpcID
O ID da VPC em que o cluster é executado. O plano de controle e os pools de nós de um cluster de usuário são executados em uma única VPC.
string
vpc-0814934042d983118
sim
podAddressCIDRBlocks
Intervalo de endereços IPv4 usados pelos pods do cluster. Atualmente, apenas um intervalo é aceito. O intervalo não pode se sobrepor a nenhuma sub-rede acessível pela rede. É seguro usar o mesmo intervalo em vários objetos diferentes do AWSCluster.
list(string)
[10.1.0.0/16]
yes
serviceAddressCIDRBlocks
Intervalo de endereços IPv4 usados pelos serviços do cluster. Atualmente, apenas um intervalo é aceito. O intervalo não pode se sobrepor a nenhuma sub-rede acessível pela rede. É seguro usar o mesmo intervalo em vários objetos diferentes do AWSCluster.
list(string)
[10.2.0.0/16]
yes
serviceLoadBalancerSubnetIDs
Códigos de sub-rede em que o GKE na AWS pode criar balanceadores de carga públicos ou privados. O GKE na AWS aplica tags a cada uma dessas sub-redes para oferecer suporte
ao balanceamento de carga. O suporte do ALB requer mais de uma sub-rede especificada.
list(string)
[subnet-abcdefg, subnet-12345678]
spec.controlPlane
Esse objeto inclui parâmetros comuns para o plano de controle do cluster.
Par de chaves EC2 da AWS atribuído a cada réplica do plano de controle.
string
my-key-pair
sim
subnetIDs
Uma lista de sub-redes VPC para réplicas do plano de controle.
list(string)
[subnet-06a004869a1eae947]
sim
securityGroupIDs
O GKE na AWS cria automaticamente grupos de segurança com regras mínimas necessárias para um cluster em funcionamento. Se você quiser adicionar outros grupos de segurança com acesso a réplicas de plano de controle, adicione seus IDs a securityGroupIDs.
Nome escolhido pelo usuário de um secret usado para definir proxies de rede específicos do cluster
string
proxy-secret-0
não
Identidade da carga de trabalho
Bucket do Cloud Storage para configuração da identidade da carga de trabalho. Contém um único campo: oidcDiscoveryGCSBucket.
object
{oidcDiscoveryGCSBucket: my-bucket}
no
rootVolume
Parâmetros para volumes raiz da réplica do plano de controle. Contém um objeto definido na seção a seguir.
object
{sizeGiB: 10}
yes
etcd
Parâmetros para volumes de etcd. Contém um objeto definido na seção a seguir.
object
{sizeGiB: 10}
yes
spec.controlPlane.rootVolume e spec.etcd.rootVolume
Esses campos se aplicam a spec.controlPlane.rootVolume e
spec.etcd.mainVolume.
Nome
Descrição
Tipo
Exemplo
Obrigatório
sizeGiB
Tamanho do volume raiz em gigabytes.
integer
10
yes
volumeType
O tipo de volume EBS da AWS do nó do plano de controle. 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).
Esse objeto especifica papéis com acesso de administrador de cluster com IAM da AWS.
Nome
Descrição
Tipo
Exemplo
Obrigatório
adminIdentityARNs
ARN de usuários ou papéis do IAM da AWS com acesso de administrador de cluster.
string
arn:aws:iam::123456789012:user/admin
Necessário apenas se você estiver usando a autenticação de IAM da AWS.
spec.authentication.oidc
É possível especificar mais de um objeto oidc. O objeto oidc é definido abaixo.
Para mais informações, consulte
Como autenticar com o OIDC.
Campo
Obrigatório
Descrição
Formato
certificateAuthorityData
Não
Um
certificado codificado em PEM codificado em base64 para o provedor OIDC. Para criar a string,
codifique o certificado, incluindo cabeçalhos, em base64. Inclua a string
resultante em certificateAuthorityData como uma única linha. Exemplo: certificateAuthorityData: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tC...k1JSUN2RENDQWFT==
String
clientID
Sim
ID do aplicativo cliente que faz solicitações de autenticação para o
provedor OpenID.
String
clientSecret
Não
Senha secreta compartilhada entre o aplicativo cliente do OIDC e o provedor OIDC.
String
parâmetros extras
Não
Parâmetros de chave-valor extras a serem enviados ao provedor OpenID. Se você estiver
autorizando um grupo, transmita resource=token-groups-claim.
Se o servidor de autorização solicitar consentimento, para autenticação com
o Microsoft Azure e o Okta, defina extraParams como
prompt=consent. Para o Google Cloud Identity, defina
extraParams como
prompt=consent,access_type=offline.
Lista delimitada por vírgulas
groupsClaim
Não
Declaração do JWT que o
provedor usa para retornar grupos de segurança.
String
groupPrefix
Não
Prefixo anexado a declarações de grupo para evitar conflitos com nomes existentes.
Por exemplo, considerando um grupo foobar e um prefixo gid-: gid-foobar.
String
issuerURI
Sim
URL ao qual são enviadas solicitações de autorização para seu OpenID, como
https://example.com/adfs. O servidor da API Kubernetes usa esse URL
a fim de descobrir chaves públicas para verificação de tokens. O URI precisa usar HTTPS.
String do URL
kubectlRedirectURI
Sim
O URL de redirecionamento "kubectl" usa para autorização.
String do URL
escopos
Sim
Outros escopos a serem enviados ao provedor OpenID. O Microsoft Azure e o Okta
exigem o escopo offline_access.
Lista delimitada por vírgulas
userClaim
Não
Declaração do JWT a ser usada como nome de usuário. O padrão é "sub", que precisa ser
um identificador exclusivo do usuário final. É possível escolher outras declarações, como
e-mail ou nome, dependendo do provedor OpenID. No entanto, as declarações diferentes de
e-mail são prefixadas com o URL do emissor para evitar conflitos de nomenclatura.
String
userPrefix
Não
Prefixo anexado a declarações de nome de usuário para evitar conflitos com nomes que já existem.
Se você não fornecer esse campo e o nome de usuário for um valor diferente de um
endereço de e-mail, o prefixo será issuerurl# por padrão. Quando você define
userPrefix como -, o prefixo é desativado.