Arquivo de configuração do cluster de administrador

Nesta página, apresentamos os campos no arquivo de configuração do cluster do administrador.

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

Se você usou gkeadm para criar a estação de trabalho do administrador, gkeadm gerou um modelo do arquivo de configuração do cluster de administrador. Além disso, gkeadm preenche alguns campos.

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

Para gerar um modelo para o arquivo de configuração do cluster de administrador:

gkectl create-config admin --config=[OUTPUT_FILENAME]

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

Como preencher o arquivo de configuração

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

bundlePath

String. O caminho do arquivo de pacote no GKE On-Prem.

O arquivo de pacote completo do GKE On-Prem contém todos os componentes em uma versão específica dessa solução. Quando você cria uma estação de trabalho de administrador, ela vem com um pacote completo em:

/var/lib/gke/bundles/gke-onprem-vsphere-[VERSION]-full.tgz

Por exemplo:

bundlePath: "/var/lib/gke/bundles/gke-onprem-vsphere-1.4.3-gke.3-full.tgz"

vCenter

Esta seção contém informações sobre o ambiente do vSphere.

vCenter.address

String. O endereço IP ou o nome do host do servidor vCenter.

Antes de preencher o campo address, faça o download e inspecione o certificado de exibição do servidor vCenter. Digite o comando a seguir para fazer o download do certificado e salvá-lo em um arquivo chamado vcenter.pem.

true | openssl s_client -connect [VCENTER_IP]:443 -showcerts 2>/dev/null | sed -ne '/-BEGIN/,/-END/p' > vcenter.pem

[VCENTER_IP] é o endereço IP do servidor vCenter.

Abra o arquivo de certificado para ver o nome comum e o alternativo do assunto:

openssl x509 -in vcenter.pem -text -noout

A saída mostra o nome comum (CN, na sigla em inglês) Subject. Pode ser um endereço IP ou um nome do host. Por exemplo:

Subject: ... CN = 203.0.113.100
Subject: ... CN = my-vcenter-server.my-domain.example

A saída também pode incluir um ou mais nomes de DNS em Subject Alternative Name:

X509v3 Subject Alternative Name:
    DNS:vcenter.my-domain.example

Escolha o nome comum Subject ou um dos nomes de DNS em Subject Alternative Name para usar como o valor de vcenter.address no arquivo de configuração. Por exemplo:

vCenter:
  address: "203.0.113.100"
    ...
vCenter:
  address: "my-vcenter-server.my-domain.example"
    ...

vCenter.credentials.username

String. Uma conta de usuário do vCenter Server. A conta de usuário precisa ter o papel de administrador ou privilégios equivalentes. Consulte os requisitos do vSphere.

Por exemplo:

vCenter:
  credentials:
    username: "my-account@vsphere.local"

vCenter.credentials.password

String. A senha da conta de usuário do vCenter Server. Por exemplo:

vCenter:
  credentials:
    password: "#STyZ2T#Ko2o"

vCenter.datastore

String. O nome do armazenamento de dados do vCenter. Por exemplo:

vCenter:
  datastore: "MY-DATASTORE"

vCenter.resourcePool

String. O nome do pool de recursos do vCenter. Por exemplo:

Se você estiver usando um pool de recursos que não seja o padrão, forneça o nome do pool de recursos do vCenter. Por exemplo:

vCenter:
  resourcePool: "MY-POOL"

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

vCenter:
  resourcePool: "[VCENTER_CLUSTER]/Resources"

[VCENTER_CLUSTER] é o nome do cluster do vCenter.

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

vCenter.caCertPath

String. Quando um cliente, como o GKE On-Prem, envia uma solicitação ao servidor vCenter, o servidor precisa provar a própria identidade ao cliente, apresentando 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/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

[SERVER_ADDRESS] é o endereço do servidor vCenter.

Instale o comando unzip e descompacte o arquivo de certificado:

sudo apt-get install unzip
unzip downloads.zip

Se o comando para descompactar não funcionar na primeira vez, digite o comando novamente.

Encontre o arquivo de certificado em certs/lin.

vCenter.datacenter

String. O nome do data center do vCenter. Por exemplo:

vCenter:
  datacenter: "MY-DATACENTER"

vCenter.cluster

String. O nome do seu cluster do vCenter. Por exemplo:

vCenter:
  cluster: "MY-CLUSTER"

vCenter.dataDisk

String. O GKE On-Prem cria um disco de máquina virtual (VMDK, na sigla em inglês) para armazenar os dados do objeto do Kubernetes. O instalador cria o VMDK para você, mas é necessário fornecer um nome para o VMDK no campo vCenter.dataDisk. Por exemplo:

vCenter:
  dataDisk: "my-disk.vmdk"

network

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

network.ipMode.type

String. Se você quiser 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 isso como "static". Exemplo:

network:
  ipMode:
    type: "static"

network.serviceCIDR e network.podCiDR

Strings. O cluster de administrador precisa ter um intervalo de endereços IP para usar em serviços e um para usar em pods. Esses intervalos são especificados pelos campos network.serviceCIDR e network.podCIDR. Esses campos são preenchidos com valores padrão. Se preferir, altere os valores preenchidos para os 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 qualquer cluster.

Por exemplo:

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

network.vCenter.networkName

String. O nome da rede do vSphere para os nós do cluster.

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-CLUSTER-NETWORK"

network.ipBlockFilePath {:#network-ipblockfilepath-field}`

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

Se você definir ipMode.type como "dhcp", remova esse campo ou deixe-o comentado.

String. O caminho do arquivo de configuração do host para o cluster de administrador. Exemplo:

network:
  ipBlockFilePath: "/my-config-directory/admin-hostconfig.yaml"

loadBalancer

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

loadBalancer.vips.controlPlaneVIP

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

loadBalancer:
  vips:
    controlplaneVIP: "203.0.113.3"

loadBalancer.vips.addonsVIP

String. O endereço IP que você escolheu configurar no balanceador de carga para complementos. Por exemplo:

loadBalancer:
  vips:
    addonsVIP: "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.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:
    contolPLaneNodePort: 30968

loadBalancer.manualLB.addonsNodePort

Número inteiro. O servidor de complementos 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:
    addonsNodePort: 31405

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.credentials.username

String. O nome de usuário de uma conta que o GKE On-Prem pode usar para se conectar ao balanceador de carga F5 BIG-IP. Por exemplo:

loadBalancer:
  f5BigIP:
    credentials:
      username: "my-admin-f5-name"

loadBalancer.f5BigIP.credentials.password

String. A senha que o GKE On-Prem pode usar para se conectar ao balanceador de carga F5 BIG-IP. Por exemplo:

loadBalancer:
  f5BigIP:
    credentials:
      password: "rJDlm^%7aOzw"

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 como o caminho do arquivo hostconfig da VM do Seesaw. Por exemplo:

loadbalancer:
  seesaw:
    ipBlockFilePath: "admin-seesaw-hostconfig.yaml"

loadBalancer.seesaw.vird

Número inteiro. O identificador do roteador virtual da VM do Seesaw. 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. O VIP do par de VM ou VM Seesaw. Por exemplo:

loadBalancer:
  seesaw:
    masterIP: 172.16.20.21

loadBalancer.seesaw.cpus

Número inteiro. O número de CPUs da VM do Seesaw. Por exemplo:

loadBalancer:
  seesaw:
    cpus: 8

loadBalancer.seesaw.memoryMB

Número inteiro. O número de megabytes de memória da VM 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

proxy

Se a rede estiver protegida por um servidor proxy, preencha esta seção. Caso contrário, remova-a.

proxy.url

String. O endereço HTTP do servidor proxy. Inclua o número da porta mesmo que ele seja igual à porta padrão do esquema. Por exemplo:

proxy:
  url: "http://my-proxy.example.local:80"

O servidor proxy especificado aqui é usado pelos clusters do GKE On-Prem. Além disso, a estação de trabalho de administrador será configurada automaticamente para usar esse mesmo servidor proxy, a menos que você defina a variável de ambiente HTTPS_PROXY na estação de trabalho do administrador.

Se você especificar proxy.url, também precisará especificar proxy.noProxy.

proxy.noProxy

String. Uma lista separada por vírgulas de endereços IP, intervalos de endereços IP, nomes de host e nomes de domínio que não podem passar pelo servidor proxy. Quando o GKE On-Prem envia uma solicitação para um desses endereços, hosts ou domínios, a solicitação é enviada diretamente. Por exemplo:

proxy:
  noProxy: "10.151.222.0/24, my-host.example.local,10.151.2.1"

privateRegistry

Se você tiver um registro particular do Docker, preencha esta seção. Caso contrário, remova esta seção ou deixe-a comentada.

privateRegistry.address

String. O endereço IP da máquina que executa o registro particular do Docker. Por exemplo:

privateRegistry:
  address: "203.0.113.10"

privateRegistry.credentials.username

String. O nome de usuário de uma conta que o GKE On-prem pode usar para acessar seu registro particular do Docker. Por exemplo:

privateRegistry:
  credentials:
    username: "my-registry-account"

privateRegistry.credentials.password

String. A senha da conta que o GKE On-Prem pode usar para acessar o registro particular do Docker. Por exemplo:

privateRegistry:
  credentials:
    password: "H0!%fwH0rBnh"

privateRegistry.caCertPath

String. Quando o Docker extrai uma imagem do seu registro particular, o registro precisa comprovar a própria identidade apresentando um certificado. O certificado do registro é assinado por uma autoridade de certificação (CA). O Docker usa o certificado da CA para validar o certificado do registro.

Defina este campo como o caminho do certificado da CA. Por exemplo:

privateRegistry:
  caCertPath: "my-cert-folder/registry-ca.crt"

gcrKeyPath

String. O caminho do arquivo de chave JSON para a conta de serviço incluída na lista de permissões. Exemplo:

gcrKeyPath: "my-key-folder/whitelisted-key.json"

stackdriver

Esta seção contém informações sobre o projeto e 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 em que você quer ver os registros. Por exemplo:

stackdriver:
  projectID: "my-logs-project"

stackdriver.clusterLocation

String. A região do Google Cloud em que você quer armazenar os registros. É uma boa ideia escolher uma região próxima ao data center local. Por 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"

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 ver os registros de auditoria. Por exemplo:

cloudAuditLogging:
  projectid: "my-audit-project"

cloudAuditLogging.clusterlocation

String. A região do Google Cloud em que você quer armazenar registros de auditoria. É uma boa ideia 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"