Este tópico descreve as opções de configuração da definição de recurso personalizado AWSCluster.
Definir um AWSCluster
AWSCluster
é um recurso personalizado do Kubernetes definido pelo GKE no AWS. Este recurso representa um plano de controlo do GKE on AWS.
Para criar um cluster a partir deste modelo, copie o YAML seguinte e preencha os valores realçados definidos nas definições dos campos spec.networking
e spec.controlPlane
. Em seguida, aplique
o manifesto de recursos ao seu serviço de gestão.
apiVersion: multicloud.cluster.gke.io/v1
kind: AWSCluster
metadata:
name: CLUSTER_NAME
spec:
region: AWS_REGION
networking:
vpcID: VPC_ID
podAddressCIDRBlocks: POD_ADDRESS_CIDR_BLOCKS
serviceAddressCIDRBlocks: SERVICE_ADDRESS_CIDR_BLOCKS
serviceLoadBalancerSubnetIDs: SERVICE_LOAD_BALANCER_SUBNETS
controlPlane:
version: GKE_VERSION # Latest version is 1.25.5-gke.2100
instanceType: AWS_INSTANCE_TYPE
keyName: SSH_KEY_NAME
subnetIDs:
- CONTROL_PLANE_SUBNET_IDS
securityGroupIDs:
- CONTROL_PLANE_SECURITY_GROUPS
iamInstanceProfile: CONTROL_PLANE_IAM_ROLE
databaseEncryption:
kmsKeyARN: ARN_OF_KMS_KEY
hub:
membershipName: ANTHOS_CONNECT_NAME
cloudOperations: # Optional
projectID: YOUR_PROJECT
location: GCP_LOCATION
enableLogging: ENABLE_LOGGING
enableMonitoring: ENABLE_MONITORING
tags:
TAG_KEY: TAG_VALUE
proxySecretName: PROXY_SECRET_NAME
workloadIdentity:
oidcDiscoveryGCSBucket: WORKLOAD_IDENTITY_BUCKET
rootVolume: # Optional
sizeGiB: ROOT_VOLUME_SIZE
volumeType: ROOT_VOLUME_TYPE
iops: ROOT_VOLUME_IOPS
kmsKeyARN: ROOT_VOLUME_KEY
etcd: # Optional
mainVolume:
sizeGiB: ETCD_VOLUME_SIZE
volumeType: ETCD_VOLUME_TYPE
iops: ETCD_VOLUME_IOPS
kmsKeyARN: ETCD_VOLUME_KEY
authentication:
awsIAM:
adminIdentityARNs: ADMIN_IAM_ARN
oidc: # Optional
- certificateAuthorityData: CERTIFICATE_STRING
clientID: CLIENT_ID
clientSecret: CLIENT_SECRET
extraParams: EXTRA_PARAMS
groupsClaim: GROUPS_CLAIM
groupPrefix: GROUP_PREFIX
issuerURI: ISSUER_URL
kubectlRedirectURI: KUBECTL_REDIRECT_URL
scopes: SCOPES
userClaim: USER_CLAIM
userPrefix: USER_PREFIX
Os subcampos em spec
são descritos nas secções seguintes.
spec.networking
Este objeto define a configuração de rede ao nível do cluster.
Nome | Descrição | Tipo | Exemplo | Obrigatória |
---|---|---|---|---|
vpcID | O ID da VPC onde o cluster é executado. O painel de controlo e os conjuntos de nós de um cluster de utilizadores são executados numa única VPC. | string |
vpc-0814934042d983118 |
sim |
podAddressCIDRBlocks | Intervalo de endereços IPv4 usados pelos pods do cluster. Atualmente, só é suportado um único intervalo. O intervalo não pode sobrepor-se a nenhuma sub-rede acessível a partir da sua rede. É seguro usar o mesmo intervalo em vários objetos AWSCluster diferentes. | list(string) |
[10.1.0.0/16] |
sim |
serviceAddressCIDRBlocks | Intervalo de endereços IPv4 usados pelos serviços do cluster. Atualmente, só é suportado um único intervalo. O intervalo não pode sobrepor-se a nenhuma sub-rede acessível a partir da sua rede. É seguro usar o mesmo intervalo em vários objetos AWSCluster diferentes. | list(string) |
[10.2.0.0/16] |
sim |
serviceLoadBalancerSubnetIDs | IDs de sub-redes onde o GKE on AWS pode criar balanceadores de carga públicos ou privados. O GKE na AWS aplica etiquetas a cada uma destas sub-redes para suportar o equilíbrio de carga. O suporte de ALB requer mais do que uma sub-rede especificada. | list(string) |
[subnet-abcdefg, subnet-12345678] |
spec.controlPlane
Este objeto inclui parâmetros comuns para o plano de controlo do cluster.
Nome | Descrição | Tipo | Exemplo | Obrigatória |
---|---|---|---|---|
versão | A versão do GKE do plano de controlo. Consulte os artigos Controlo de versões e atualizações e Atualizar um cluster de utilizadores para mais informações. | string |
1.25.5-gke.2100 |
sim |
instanceType | Um tipo de instância do AWS EC2 para cada réplica do plano de controlo. Consulte os tipos de instâncias suportados. | string |
m5.large |
sim |
keyName | O par de chaves do AWS EC2 atribuído a cada réplica do plano de controlo. | string |
my-key-pair |
sim |
subnetIDs | Uma lista de sub-redes da VPC para réplicas do plano de controlo. | list(string) |
[subnet-06a004869a1eae947] |
sim |
securityGroupIDs | O GKE na AWS cria automaticamente grupos de segurança com as regras mínimas necessárias para um cluster funcional. Se quiser adicionar grupos de segurança adicionais com acesso a réplicas do plano de controlo, adicione os respetivos IDs a securityGroupIDs . |
list(string) |
[sg-0ec06559d997a796f] |
não |
iamInstanceProfile | O nome do perfil de instância do EC2 da AWS atribuído a réplicas do plano de controlo. | string |
my-control-plane-profile |
sim |
databaseEncryption.kmsKeyARN | O nome do recurso da Amazon (ARN) da chave do AWS KMS que o GKE na AWS usa para encriptar segredos da camada de aplicação em clusters. | de string | arn:aws:kms:us-west-1:123456789:key/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee |
|
hub.membershipName | O nome de subscrição do Connect usado para registar o seu cluster. | de string | projects/YOUR_PROJECT/locations/global/memberships/CLUSTER_NAME | |
cloudOperations | A configuração do Cloud Logging e Cloud Monitoring para nós do plano de controlo. | object |
{projectID: YOUR_PROJECT, location: us-central1, enableLogging: true, enableMonitoring: true} | não |
etiquetas | Metadados de chave/valor atribuídos a cada recurso da AWS que suporta o AWSCluster. Para mais informações, consulte o artigo Práticas recomendadas de etiquetagem | map(string) |
{Environment: Production, Team: Analytics} | não |
proxySecretName | Nome escolhido pelo utilizador de um segredo usado para definir proxies de rede específicos do cluster | de string | proxy-secret-0 | não |
workloadIdentity | Contentor do Cloud Storage para a configuração da identidade da carga de trabalho. Contém um único campo: oidcDiscoveryGCSBucket . |
object |
{oidcDiscoveryGCSBucket: my-bucket} | não |
rootVolume | Parâmetros para volumes raiz de réplicas do plano de controlo. Contém um objeto definido na secção seguinte. | object |
{sizeGiB: 10} |
sim |
etcd | Parâmetros para volumes etcd. Contém um objeto definido na secção seguinte. | object |
{sizeGiB: 10} |
sim |
spec.controlPlane.rootVolume e spec.etcd.rootVolume
Estes campos aplicam-se a spec.controlPlane.rootVolume
e spec.etcd.mainVolume
.
Nome | Descrição | Tipo | Exemplo | Obrigatória |
---|---|---|---|---|
sizeGiB | Tamanho do volume de raiz em gigabytes. | integer |
10 |
sim |
volumeType | O tipo de volume do EBS da AWS do nó do plano de controlo. 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.authentication.awsIAM
Este objeto especifica as funções que têm acesso de administrador do cluster com o AWS IAM.
Nome | Descrição | Tipo | Exemplo | Obrigatória |
---|---|---|---|---|
adminIdentityARNs | ARN de utilizadores ou funções do AWS IAM aos quais foi concedido acesso de administrador do cluster. | de string | arn:aws:iam::123456789012:user/admin |
Só é obrigatório se usar a autenticação do AWS IAM. |
spec.authentication.oidc
Pode especificar mais do que um objeto oidc
. O objeto oidc
está definido abaixo.
Para mais informações, consulte o artigo Autenticação com OIDC.
Campo | Obrigatória | Descrição | Formato |
---|---|---|---|
certificateAuthorityData | Não | Um
certificado codificado em PEM codificado em base64 para o fornecedor OIDC. Para criar a string,
codifique o certificado, incluindo os cabeçalhos, em base64. Inclua a string resultante em certificateAuthorityData como uma única linha. Exemplo:
certificateAuthorityData: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tC...k1JSUN2RENDQWFT== |
String |
clientID | Sim | ID da aplicação cliente que faz pedidos de autenticação ao fornecedor OpenID. | String |
clientSecret | Não | Segredo partilhado entre a aplicação cliente OIDC e o fornecedor OIDC. | String |
extraParams | Não |
Parâmetros de chave-valor adicionais a enviar para o fornecedor do OpenID. Se estiver a
autorizar um grupo, transmita resource=token-groups-claim .
Se o seu servidor de autorização pedir consentimento para autenticação com o Microsoft Azure e o Okta, defina |
Lista delimitada por vírgulas |
groupsClaim | Não | Afirmação JWT que o fornecedor usa para devolver os seus grupos de segurança. | String |
groupPrefix | Não | Prefixo adicionado às reivindicações de grupos para evitar conflitos com nomes existentes. Por exemplo, dado um grupo foobar e um prefixo gid-, gid-foobar. | String |
issuerURI | Sim | URL para onde são enviados pedidos de autorização para o seu OpenID, como
https://example.com/adfs . O servidor da API Kubernetes usa este URL para descobrir chaves públicas para validar tokens. O URI tem de usar HTTPS. |
String de URL |
kubectlRedirectURI | Sim | O URL de redirecionamento que o `kubectl` usa para autorização. | String de URL |
âmbitos | Sim | Âmbitos adicionais a enviar para o fornecedor OpenID. O Microsoft Azure e o Okta
requerem o âmbito offline_access . |
Lista delimitada por vírgulas |
userClaim | Não | Reivindicação JWT a usar como nome de utilizador. O valor predefinido é `sub`, que se espera que seja um identificador único do utilizador final. Pode escolher outras reivindicações, como o email ou o nome, consoante o fornecedor OpenID. No entanto, as reivindicações que não sejam o email têm o prefixo do URL do emissor para evitar conflitos de nomes. | String |
userPrefix | Não | Prefixo adicionado às reivindicações de nomes de utilizador para evitar conflitos com nomes existentes.
Se não fornecer este campo e o nome de utilizador for um valor que não seja um endereço de email, o prefixo é predefinido como issuerurl# . Quando define userPrefix como - , a adição de prefixos é desativada.
| String |