AWSCluster

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 extraParams como prompt=consent . Para o Google Cloud Identity, defina extraParams como prompt=consent,access_type=offline .

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