Arquivo de configuração do cluster de usuário

Nesta página, descrevemos os campos no arquivo de configuração do cluster de usuário dos clusters do Anthos no VMware (GKE On-Prem).

Como gerar um modelo para o arquivo de configuração

Se você usou o gkeadm para criar a estação de trabalho do administrador, o gkeadm gerou um modelo para o arquivo de configuração do cluster de usuário. E o gkeadm também preencheu alguns dos campos para você.

Se você não usou o gkeadm para criar a estação de trabalho do administrador, use o gkectl para gerar um modelo para o arquivo de configuração do cluster de usuário.

Para gerar um modelo para o arquivo de configuração do cluster de usuário:

gkectl create-config cluster --config=OUTPUT_FILENAME

Substitua OUTPUT_FILENAME por um caminho de sua escolha para o modelo gerado. Se você omitir essa sinalização, gkectl nomeará o arquivo user-cluster.yaml e o colocará no diretório atual.

Modelo

Como preencher o arquivo de configuração

No arquivo de configuração, insira os valores de campo conforme descrito nas seções a seguir.

name

String. Um nome de sua escolha para o cluster de usuário. Por exemplo:

name: "my-user-cluster"

gkeOnPremVersion

String. Os clusters do Anthos na versão VMware para seu cluster de usuário. Exemplo:

gkeOnPremVersion: 1.6.0-gke.7

vCenter

Se você quiser que todos os aspectos do ambiente do vCenter sejam os mesmos que o especificado no cluster de administrador, remova essa seção ou deixe-a com comentário.

Se você quiser que apenas alguns aspectos do ambiente do vCenter sejam diferentes do especificado no cluster de administrador, preencha os campos relevantes na seção. Todos os campos definidos na seção vCenter modificam os campos correspondentes no arquivo de configuração do cluster de administrador.

vCenter.resourcePool

String. O nome do pool de recursos do vCenter do cluster de usuários. Se você usa um pool de recursos que não é o padrão, forneça o nome do pool de recursos do vCenter. Por exemplo:

vCenter:
  resourcePool: "MY-USER-POOL"

Se você estiver usando o pool de recursos padrão, forneça o seguinte valor:

vCenter:
  resourcePool: "VCENTER_CLUSTER/Resources"

Substitua VCENTER_CLUSTER pelo nome do cluster do vCenter.

Consulte Como especificar o pool de recursos raiz para um host autônomo.

vCenter.datastore

String. O nome do armazenamento de dados do vCenter do cluster de usuário. Por exemplo:

vCenter:
  datastore: "MY-USER-DATASTORE"

vCenter.caCertPath

String. Quando um cliente, como o GKE On-Prem, envia uma solicitação ao servidor vCenter, o servidor precisa comprovar a própria identidade ao cliente com a apresentação de um certificado ou um pacote de certificados. Para verificar o certificado ou o pacote, o GKE On-Prem precisa ter o certificado raiz na cadeia de confiança.

Defina vCenter.caCertPath como o caminho do certificado raiz. Por exemplo:

vCenter:
  caCertPath: "/usr/local/google/home/me/certs/user-vcenter-ca-cert.pem"

A instalação do VMware tem uma autoridade de certificação (CA, na sigla em inglês) que emite um certificado para o servidor vCenter. O certificado raiz na cadeia de confiança é um certificado autoassinado criado pela VMware.

Se você não quiser usar a CA do VMWare, que é o padrão, configure o VMware para usar uma autoridade de certificação diferente.

Se o servidor vCenter usa um certificado emitido pela CA do VMware padrão, faça o download do certificado da seguinte maneira:

curl -k "https://SERVER_ADDRESS/certs/download.zip" > download.zip

Substitua SERVER_ADDRESS pelo endereço do servidor do vCenter.

Instale o comando unzip e descompacte o arquivo de certificado:

sudo apt-get install unzip
unzip downloads.zip

Se o comando unzip não funcionar na primeira vez, insira o comando novamente.

Encontre o arquivo de certificado em certs/lin.

vCenter.credentials.fileRef.path

String. O caminho de um arquivo de configuração de credenciais que contém o nome de usuário e a senha da sua conta de usuário do vCenter. A conta de usuário precisa ter o papel de administrador ou privilégios equivalentes. Consulte os requisitos do vSphere. Por exemplo:

vCenter:
  credentials:
    fileRef:
      path: "my-config-directory/user-creds.yaml"

vCenter.credentials.fileRef.entry

String. O nome do bloco de credenciais, no arquivo de configuração de credenciais, que contém o nome de usuário e a senha da conta de usuário do vCenter. Exemplo:

vCenter:
  credentials:
    fileRef:
      entry: "vcenter-creds"

enableDataplaneV2

Booleano. Se você quiser ativar o Dataplane V2 (Beta), defina como true. Caso contrário, defina como false. Exemplo:

enableDataplaneV2: true

network

Esta seção contém informações sobre a rede do cluster de usuário.

network.hostConfig

Nesta seção, você vê informações sobre servidores NTP, servidores DNS e domínios de pesquisa DNS usados pelo seu cluster.

Se você tiver informado um valor para um ou ambos os campos a seguir, preencha esta seção. Caso contrário, remova-a.

  • loadBalancer.seesaw.ipBlockFilePath
  • network.ipMode.ipBlockFilePath

network.hostConfig.dnsServers

Matriz de strings. Os endereços de servidores DNS a serem usados pelos hosts. Por exemplo:

network:
  hostConfig:
    dnsServers:
    - "172.16.255.1"
    - "172.16.255.2"

network.hostConfig.ntpServers

Matriz de strings. Os endereços dos servidores de horário a serem usados pelos hosts. Por exemplo:

network:
  hostConfig:
    ntpServers:
    - "216.239.35.0"

network.hostConfig.searchDomainsForDNS

Matriz de strings. Domínios de pesquisa DNS a serem usados pelos hosts. Esses domínios são usados como parte de uma lista de pesquisa de domínio. Por exemplo:

network:
  hostConfig:
    searchDomainsForDNS:
    - "my.local.com"

network.ipMode.type

String. Para que os nós do cluster recebam o endereço IP de um servidor DHCP, defina-o como "dhcp". Se quiser que os nós do cluster tenham endereços IP estáticos escolhidos em uma lista fornecida, defina-o como "static". Por exemplo:

network:
  ipMode:
    type: "static"

network.ipMode.ipBlockFilePath

Se você definir ipMode.type como "static", preencha este campo. Se você definir ipMode.type como "dhcp", remova esse campo.

String. O caminho do arquivo de bloco IP do cluster. Exemplo:

network:
  ipMode:
    ipBlockFilePath: "/my-config-folder/user-cluster-ipblock.yaml"

network.serviceCIDR e network.podCiDR

Strings. O cluster de usuário precisa ter um intervalo de endereços IP para usar nos serviços e outro para usar nos pods. Esses intervalos são especificados pelos campos network.serviceCIDR e network.podCIDR. Esses campos são preenchidos com valores padrão. Se quiser, é possível alterar os valores preenchidos para valores de sua escolha.

Os intervalos de serviços e pods não podem se sobrepor. Além disso, os intervalos de serviços e pods não podem se sobrepor a endereços IP usados para nós em nenhum cluster.

Exemplo:

network:
  serviceCIDR: "10.96.232.0/24"
  podCIDR: "192.168.0.0/16"

network.vCenter.networkName

String. O nome da rede do vSphere dos nós do cluster de usuário.

Se o nome tiver um caractere especial, use uma sequência de escape.

Caracteres especiais Sequência de escape
Barra (/) %2f
Barra invertida (\) %5c
Sinal de porcentagem (%) %25

Se o nome da rede não for exclusivo, será possível especificar um caminho para a rede, como /DATACENTER/network/NETWORK_NAME.

Por exemplo:

network:
  vCenter:
    networkName: "MY-USER-CLUSTER-NETWORK"

loadBalancer

Esta seção contém informações sobre o balanceador de carga do cluster de usuário.

loadBalancer.vips.controlPlaneVIP

O endereço IP que você escolheu configurar no balanceador de carga para o servidor da API Kubernetes do cluster de administrador. Exemplo:

loadBalancer:
  vips:
    controlplaneVIP: "203.0.113.3"

loadBalancer.vips.ingressVIP

O endereço IP que você escolheu configurar no balanceador de carga para o tráfego de entrada. Por exemplo:

loadBalancer:
  vips:
    ingressVIP: "203.0.113.4"

loadBalancer.kind

String. Defina como "Seesaw", "F5BigIP" ou "ManualLB". Por exemplo:

loadBalancer:
  kind: "Seesaw"

loadBalancer.manualLB

Se você definir loadbalancer.kind como "manualLB", preencha esta seção. Caso contrário, remova esta seção ou deixe-a comentada.

loadBalancer.manualLB.ingressHTTPNodePort

Integer. O serviço de entrada em um cluster de usuário é implementado como um serviços do Kubernetes do tipo LoadBalancer. O serviço tem um ServicePort (em inglês) para HTTP. É preciso escolher um valor de nodePort para os ServicePorts HTTP.

Defina esse campo como o valor nodePort. Por exemplo:

loadBalancer:
  manualLB:
    ingressHTTPNodePort: 32527

loadBalancer.manualLB.ingressHTTPSNodePort

Integer. O serviço de entrada em um cluster de usuário é implementado como um serviço do tipo LoadBalancer. O serviço tem um ServicePort para HTTPS. Escolha um valor nodePort para o ServicePort HTTPS.

Defina esse campo como o valor nodePort. Por exemplo:

loadBalancer:
  manualLB:
    ingressHTTPSNodePort: 30139

loadBalancer.manualLB.controlPlaneNodePort

Número inteiro. O servidor da API Kubernetes no cluster de administrador é implementado como um serviço do tipo NodePort. É preciso escolher um valor nodePort para o serviço.

Defina esse campo como o valor nodePort. Por exemplo:

loadBalancer:
  manualLB:
    controlPlaneNodePort: 30968

loadBalancer.manualLB.addonsNodePort

Remova esse campo. Ele não é usado em um cluster de usuário.

loadBalancer.f5BigIP

Se você definir loadbalancer.kind como "f5BigIP", preencha esta seção. Caso contrário, remova esta seção ou deixe-a comentada.

loadBalancer.f5BigIP.address

String. O endereço do balanceador de carga F5 BIG-IP. Por exemplo:

loadBalancer:
  f5BigIP:
      address: "203.0.113.2"

loadBalancer.f5BigIP.fileRef.path

String. O caminho de um arquivo de configuração de credenciais que contém o nome de usuário e a senha de uma conta que os clusters do Anthos no VMware podem usar para se conectar ao balanceador de carga F5 BIG-IP. Exemplo:

loadBalancer:
  f5BigIP:
    fileRef:
      path: ""my-config-folder/user-creds.yaml"

loadBalancer.f5BigIP.fileRef.entry

String. O nome do bloco de credenciais, no arquivo de configuração de credenciais, que contém o nome de usuário e a senha da conta F5 BIG-IP. Por exemplo:

loadBalancer:
  f5BigIP:
    fileRef:
      entry: "f5-creds"

loadBalancer.f5BigIP.partition

String. O nome de uma partição BIG-IP que você criou para o cluster de administrador. Por exemplo:

loadBalancer:
  f5BigIP:
    partition: "my-f5-admin-partition"

loadBalancer.f5BigIP.snatPoolName

String. Se você estiver usando SNAT, o nome do pool de SNAT. Se você não estiver usando SNAT, remova esse campo ou deixe-o comentado. Por exemplo:

loadBalancer:
  f5BigIP:
    snatPoolName: "my-snat-pool"

loadBalancer.seesaw

Se você definir loadbalancer.kind como "Seesaw", preencha esta seção. Caso contrário, remova esta seção ou deixe-a comentada.

loadBalancer.seesaw.ipBlockFilePath

String. Defina isso como o caminho do arquivo de bloco IP para sua VM do Seesaw. Exemplo:

loadbalancer:
  seesaw:
    ipBlockFilePath: "user-seesaw-ipblock.yaml"

loadBalancer.seesaw.vird

Número inteiro. O identificador do roteador virtual da VM do Seesaw ou do par de VMs. Esse identificador precisa ser exclusivo em uma VLAN. O intervalo válido é de 1 a 255. Por exemplo:

loadBalancer:
  seesaw:
    vrid: 125

loadBalancer.seesaw.masterIP

String. Um VIP de sua escolha para a VM do Seesaw do plano de controle divulgar. Por exemplo:

loadBalancer:
  seesaw:
    masterIP: 172.16.20.21

loadBalancer.seesaw.cpus

Número inteiro. O número de CPUs de cada uma das VMs do Seesaw. Por exemplo:

loadBalancer:.
  seesaw:
    cpus: 8

loadBalancer.seesaw.memoryMB

Número inteiro. O número de megabytes de memória de cada uma das VMs do Seesaw. Por exemplo:

loadBalancer:.
  seesaw:
    memoryMB: 8192

loadBalancer.seesaw.vCenter.networkName

String. O nome da rede que contém as VMs do Seesaw. Por exemplo:

loadBalancer:
  seesaw:
    vCenter:
      networkName: "my-seesaw-network"

loadBalancer.seesaw.enableHA

Booleano. Defina como true, se quiser criar um balanceador de carga Seesaw altamente disponível. Caso contrário, defina como false. Por exemplo:

loadBalancer:.
  seesaw:
    enableHA: true

masterNode

Nesta seção, apresentamos informações sobre os nós do cluster de administrador que servem como nós do plano de controle para o cluster de usuário.

masterNode.cpus

Número inteiro. O número de CPUs para cada nó de cluster de administrador que serve como plano de controle para este cluster de usuário. Por exemplo:

masterNode:
  cpus: 8

masterNode.memoryMB

Número inteiro. Os megabytes de memória para cada nó de cluster de administrador que serve como plano de controle para este cluster de usuário. Por exemplo:

masterNode:
  memoryMB: 8192

masterNode.replicas

Número inteiro. O número de nós do plano de controle para este cluster de usuário. Defina esse campo como 1 ou 3. Por exemplo:

masterNode:
  replicas: 3

nodePools

Matriz de objetos, cada um descrevendo um pool de nós.

nodePools[i].name

String. Um nome de sua escolha para o pool de nós. Por exemplo:

nodePools:
- name: "my-node-pool"

nodePools[i].cpus

Número inteiro. O número de CPUs de cada nó no pool. Por exemplo:

nodePools"
- name: "my-node-pool"
  cpus: 8

nodePools[i].memoryMB

Número inteiro. Os megabytes de memória de cada nó no pool. Por exemplo:

nodePools"
- name: "my-node-pool"
  memoryMB: 8192

nodePools[i].replicas

Número inteiro. O número de nós no pool. Por exemplo:

nodePools:
- name: "my-node-pool"
  replicas: 5

noodePools[i].labels

Mapeamento. Rótulos que serão aplicados a cada nó no pool. Por exemplo:

nodePools:
- name: "my-node-pool"
  labels:
    environment: "production"
    tier: "cache"

nodePools[i].taints

Matriz de objetos, cada um descreve um taint. Por exemplo:

nodePools:
- name: "my-node-pool"
  taints:
  - key: "staging"
    value: "true"
    effect: "NoSchedule"

nodePools[i].bootDiskSizeGB

Número inteiro. O tamanho do disco de inicialização em gigabytes para cada nó do pool. Essa configuração está disponível a partir dos clusters do Anthos na versão 1.5.0 do VMware. Exemplo:

nodePools"
- name: "my-node-pool"
  bootDiskSizeGB: 40

nodePools[i].vsphere.datastore

String. O nome do armazenamento de dados do vCenter em que cada nó do pool será criado. Por exemplo:

nodePools:
- name: "my-node-pool"
  vsphere:
    datastore: "my-datastore"

antiAffinityGroups.enabled

Booleano. Defina como true para ativar a criação de regras do DRS. Caso contrário, defina-o como false. Exemplo:

antiAffinityGroups:
  enabled true

Os clusters do Anthos no VMware criam automaticamente regras de antiafinidade Distributed Resource Scheduler (DRS) do VMware para os nós do cluster de usuário, fazendo com que eles sejam distribuídos em pelo menos três hosts físicos no data center.

Esse recurso exige que o ambiente vSphere atenda às seguintes condições

  • O VMware DRS está ativado. O VMware DRS requer a edição de licença do vSphere Enterprise Plus.

  • Sua conta de usuário do vSphere tem o privilégio Host.Inventory.Modify cluster.

  • Há pelo menos três hosts físicos disponíveis.

Lembre-se de que, se você tiver uma licença padrão do vSphere, não será possível ativar o VMware DRS.

Se a DRS não estiver ativada ou se você não tiver pelo menos três hosts em que as VMs do vSphere podem ser programadas, defina antiAffinityGroups.enabled como false.

authentication

Esta seção contém informações sobre como os usuários do cluster são autenticados e autorizados.

authentication.oidc

Não use esta seção. Em vez disso, após a criação do cluster, edite o recurso personalizado do ClientConfig, conforme descrito em Como configurar clusters para o Anthos Identity Service com o OIDC .

authentication.sni

Se você quiser fornecer um certificado de exibição extra para o servidor da API Kubernetes do cluster, preencha essa seção. Caso contrário, remova a seção ou deixe-a comentada.

authentication.sni.certPath

String. O caminho para um certificado de exibição do servidor da API Kubernetes. Por exemplo:

authentication:
  sni:
    certPath: "my-cert-folder/example.com.crt"

authentication.sni.keyPath

String. O caminho para o arquivo de chave privada do certificado. Por exemplo:

authentication:
  sni:
    keyPath: "my-cert-folder/example.com.key"

authentication.ldap

Para fornecer informações sobre seu provedor LDAP, preencha essa seção. Caso contrário, remova-a.

authentication.ldap.name

String. O nome do seu provedor LDAP. Por exemplo:

authentication:
  ldap:
    name: "my-ldap-provider"

authentication.ldap.host

String. O nome do host ou o endereço IP do seu provedor LDAP. Por exemplo:

authentication:
  ldap:
    host" "203.0.113.20"

authentication.ldap.connectionType

String. Defina como "insecure" para usar uma conexão não segura para o LDAP. Para usar uma conexão segura, remova esse campo.

O padrão é usar o LDAP em TLS. Defina connectionType como "insecure" para alterar isso e usar uma conexão não segura. Se você definir isso como "insecure", não será necessário fornecer um valor para ldap.caPath.

Exemplo:

authentication:
  ldap:
    connectionType: "insecure"

authentication.ldap.caPath

String. O caminho do certificado raiz do provedor LDAP. Por exemplo:

authentication:
  ldap:
    caPath: "my-cert-folder/ldap-cert.pem"

authentication.ldap.user.baseDN

String. O local das entradas de usuário no diretório LDAP. Por exemplo:

authentication:
  ldap:
    user:
      baseDN: "DC=example-domain,DC=com"

authentication.ldap.user.userAttribute

String: o nome do atributo que precede o nome do usuário em um DN. O padrão é "CN". Por exemplo:

authentication:
  ldap:
    user:
      userAttribute: "CN"

authentication.ldap.user.memberAttribute

String. O nome do atributo que registra a associação de um usuário no grupo. O padrão é "memberOf". Por exemplo:

authentication:
  ldap:
    user:
      memberAttribute: "memberOf"

stackdriver

Esta seção contém informações sobre o projeto do Google Cloud e sobre a conta de serviço que você quer usar para armazenar registros e métricas.

stackdriver.projectID

String. O ID do projeto do Google Cloud de que você quer ver os registros. Por exemplo:

stackdriver:
  projectID: "my-logs-project"

stackdriver.clusterLocation

String. A região do Google Cloud onde você quer armazenar os registros. Convém escolher uma região próxima ao data center local. Exemplo:

stackdriver:
  clusterLocation: "us-central1"

stackdriver.enableVPC

Booleano. Se a rede do cluster for controlada por uma VPC, defina esse campo como true. Isso garante que toda a telemetria flua pelos endereços IP restritos do Google. Caso contrário, defina esse campo como false. Por exemplo:

stackdriver:
  enableVPC: false

stackdriver.serviceAccountKeyPath

String. O caminho do arquivo de chave JSON da conta de serviço de monitoramento de registros. Por exemplo:

stackdriver:
  serviceAccountKeyPath: "my-key-folder/log-mon-key.json"

stackdriver.disableVsphereResourceMetrics

Booleano. Defina como true para desativar a coleta de métricas do vSphere. Caso contrário, defina como false. Por exemplo:

stackdriver:
  disableVsphereResourceMetrics: true

gkeConnect

Esta seção contém informações sobre o projeto do Google Cloud e as contas de serviço que você quer usar para conectar o cluster ao Google Cloud.

gkeConnect.projectID

String. O ID do projeto do Cloud que você quer usar para conectar o cluster ao Google Cloud. Por exemplo:

gkeConnect:
  projectID: "my-connect-project-123"

gkeConnect.registerServiceAccountKeyPath

String. O caminho do arquivo de chave JSON para a conta de serviço de registro de conexão. Por exemplo:

gkeConnect:
  registerServiceAccountKeyPath: "my-key-folder/connect-register-key.json"

gkeConnect.agentServiceAccountKeyPath

String. O caminho do arquivo de chave JSON para a conta de serviço do agente de conexão. Por exemplo:

gkeConnect:
  agentServiceAccountKeyPath: "my-key-folder/connect-agent-key.json"

cloudRun.enabled

Booleano. Defina como true se você quiser ativar o Cloud Run. Caso contrário, defina-o como false. Por exemplo:

cloudRun:
  enabled: true

usageMetering

Se você quiser ativar a medição de uso do cluster, preencha esta seção. Caso contrário, remova a seção ou deixe-a comentada.

usageMetering.bigQueryProjectID

String. O ID do projeto do Google Cloud em que você quer armazenar os dados de medição de uso. Por exemplo:

usageMetering:
  bigQueryProjectID: "my-bq-project"

usageMetering.bigQueryDatasetID

String. O ID do conjunto de dados do BigQuery em que você quer armazenar os dados de medição de uso. Por exemplo:

usageMetering:
  bigQueryDatasetID: "my-bq-dataset"

usageMetering.bigQueryServiceAccountKeyPath

String. O caminho do arquivo de chave JSON para a conta de serviço do BigQuery. Por exemplo:

usageMetering:
  bigQueryServiceAccountKeyPath: "my-key-folder/bq-key.json"

usageMetering.enableConsumptionMetering

Booleano. Defina como true se você quiser ativar a medição baseada em consumo. Caso contrário, defina-o como falso. Por exemplo:

usageMetering:
  enableConsumptionMetering: true

cloudAuditLogging

Se você quiser integrar os registros de auditoria do servidor da API Kubernetes do cluster com os registros de auditoria do Cloud, preencha essa seção. Caso contrário, remova esta seção ou deixe-a comentada.

cloudAuditLogging.projectID

String. O ID do projeto do Google Cloud em que você quer armazenar os registros de auditoria. Por exemplo:

cloudAuditLogging:
  projectID: "my-audit-project"

cloudAuditLogging.clusterLocation

String. A região do Google Cloud onde você quer armazenar os registros de auditoria. Convém escolher uma região próxima ao data center local. Por exemplo:

cloudAuditLogging:
  clusterLocation: "us-central1"

cloudAuditLogging.serviceAccountKeyPath

String. O caminho do arquivo de chave JSON da conta de serviço de geração de registros de auditoria. Por exemplo:

cloudAuditLogging:
  serviceAccountKeyPath: "my-key-folder/audit-log-key.json"

autoRepair.enabled

Booleano. Defina como true para ativar o reparo automático de nós. Caso contrário, defina como false. Por exemplo:

autoRepair:
  enabled: true