Este tópico descreve as opções de configuração da Definição de Recurso Personalizado do AWSCluster.
Definindo um AWSCluster
AWSCluster
é um recurso personalizado do Kubernetes definido pelo GKE na AWS. Este recurso representa um plano de controle do GKE na AWS.
Para criar um cluster a partir deste modelo, copie o seguinte YAML e preencha os valores destacados definidos nas definições dos campos spec.networking
e spec.controlPlane
. Em seguida, aplique o manifesto de recursos ao seu serviço de gerenciamento.
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 sob spec
são descritos nas seções a seguir.
rede de especificações
Este objeto define a configuração de rede de todo o cluster.
Nome | Descrição | Tipo | Exemplo | Obrigatório |
---|---|---|---|---|
vpcID | O ID da VPC onde seu 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 usado pelos pods do cluster. Atualmente, apenas um intervalo é suportado. O intervalo não deve se sobrepor 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 usado pelos serviços do cluster. Atualmente, apenas um intervalo é suportado. O intervalo não deve se sobrepor 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-rede onde 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 a ALB requer mais de uma sub-rede especificada. | list(string) | [subnet-abcdefg, subnet-12345678] |
Plano de controle de especificações
Este objeto inclui parâmetros comuns para o plano de controle do cluster.
Nome | Descrição | Tipo | Exemplo | Obrigatório |
---|---|---|---|---|
versão | A versão do GKE do plano de controle. Consulte Controle de versão e atualizações e Atualização de um cluster de usuários para obter mais informações. | string | 1.25.5-gke.2100 | sim |
Tipo de instância | Um tipo de instância do AWS EC2 para cada réplica do plano de controle. Consulte Tipos de instância suportados . | string | m5.large | sim |
nomedachave | O par de chaves do AWS EC2 atribuído a cada réplica do plano de controle. | string | my-key-pair | sim |
IDs de sub-rede | Uma lista de sub-redes VPC para réplicas do plano de controle. | list(string) | [subnet-06a004869a1eae947] | sim |
IDs de grupo de segurança | O GKE na AWS cria automaticamente grupos de segurança com as regras mínimas necessárias para um cluster funcional. Se desejar adicionar outros grupos de segurança com acesso às réplicas do plano de controle, adicione os IDs deles a securityGroupIDs . | list(string) | [sg-0ec06559d997a796f] | não |
Perfil de Instância iam | O nome do perfil de instância do AWS EC2 atribuído às réplicas do plano de controle. | 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 criptografar segredos da camada de aplicativo em clusters. | corda | arn:aws:kms:us-west-1:123456789:key/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee | |
hub.nome de membro | O nome da associação do Connect usado para registrar seu cluster. | corda | projetos/ YOUR_PROJECT /locais/global/associações/ CLUSTER_NAME | |
operações em nuvem | A configuração do Cloud Logging e do Cloud Monitoring para nós do plano de controle. | object | {projectID: YOUR_PROJECT , localização: us-central1, enableLogging: true, enableMonitoring: true} | não |
etiquetas | Metadados de chave/valor atribuídos a cada recurso da AWS que oferece suporte ao AWSCluster. Para obter mais informações, consulte Práticas recomendadas de marcação. | map(string) | {Ambiente: Produção, Equipe: Análise} | não |
proxySecretName | Nome escolhido pelo usuário de um segredo usado para definir proxies de rede específicos do cluster | corda | proxy-secreto-0 | não |
identidade de carga de trabalho | Bucket do Cloud Storage para configuração de identidade de carga de trabalho . Contém um único campo: oidcDiscoveryGCSBucket . | object | {oidcDiscoveryGCSBucket: meu-balde} | não |
volume raiz | Parâmetros para volumes raiz de réplica do plano de controle. Contém um objeto definido na seção a seguir. | object | {sizeGiB: 10} | sim |
etcd | Parâmetros para volumes etcd. Contém um objeto definido na seção a seguir. | object | {sizeGiB: 10} | sim |
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 |
---|---|---|---|---|
tamanhoGiB | Tamanho do volume raiz em Gigabytes. | integer | 10 | sim |
Tipo de volume | O tipo de volume do AWS EBS do nó do plano de controle. 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.authentication.awsIAM
Este objeto especifica funções que recebem acesso de administrador de cluster com o AWS IAM.
Nome | Descrição | Tipo | Exemplo | Obrigatório |
---|---|---|---|---|
adminIdentityARNs | ARN de usuários ou funções do AWS IAM que receberam acesso de administrador de cluster. | corda | arn:aws:iam::123456789012:user/admin | Obrigatório somente se estiver usando a autenticação AWS IAM. |
spec.authentication.oidc
Você pode especificar mais de um objeto oidc
. O objeto oidc
é definido abaixo. Para mais informações, consulte Autenticação com OIDC .
Campo | Obrigatório | Descrição | Formatar |
---|---|---|---|
Dados de Autoridade de Certificado | Não | Um certificado PEM codificado em base64 para o provedor 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== | Corda |
ID do cliente | Sim | ID do aplicativo cliente que faz solicitações de autenticação ao provedor OpenID. | Corda |
clienteSecret | Não | Segredo compartilhado entre o aplicativo cliente OIDC e o provedor OIDC. | Corda |
parâmetros extras | Não | Parâmetros chave-valor adicionais para enviar ao provedor OpenID. Se você estiver autorizando um grupo, passe resource=token-groups-claim . Se o seu servidor de autorização solicitar consentimento, para autenticação com o Microsoft Azure e o Okta, defina | Lista delimitada por vírgulas |
gruposReivindicação | Não | Reivindicação JWT que o provedor usa para retornar seus grupos de segurança. | Corda |
prefixo de grupo | Não | Prefixo adicionado a declarações de grupo para evitar conflitos com nomes existentes. Por exemplo, dado um grupo foobar e um prefixo gid-, gid-foobar. | Corda |
emissorURI | Sim | URL para onde as solicitações de autorização são enviadas ao seu OpenID, como https://example.com/adfs . O servidor da API do Kubernetes usa essa URL para descobrir chaves públicas para verificar tokens. O URI deve usar HTTPS. | Cadeia de caracteres de URL |
kubectlRedirectURI | Sim | A URL de redirecionamento que `kubectl` usa para autorização. | Cadeia de caracteres de URL |
escopos | Sim | Escopos adicionais para enviar ao provedor OpenID. O Microsoft Azure e o Okta exigem o escopo offline_access . | Lista delimitada por vírgulas |
reivindicação do usuário | Não | Reivindicação JWT a ser usada como nome de usuário. O padrão é `sub`, que deve ser um identificador exclusivo do usuário final. Você pode escolher outras reivindicações, como e-mail ou nome, dependendo do provedor OpenID. No entanto, reivindicações diferentes de e-mail são prefixadas com a URL do emissor para evitar conflitos de nomenclatura. | Corda |
prefixo do usuário | Não | Prefixo adicionado às declarações de nome de usuário para evitar conflitos com nomes existentes. Se você não fornecer este campo e o nome de usuário for um valor diferente de um endereço de e-mail, o prefixo padrão será issuerurl# . Ao definir userPrefix como - , o prefixo será desabilitado. | Corda |