Como criar um cluster de administrador (básico)

Nesta página, você aprende a criar um cluster de administrador.

As etapas deste tópico pressupõem que você usou gkeadm para criar a estação de trabalho do administrador. Se você não usou gkeadm e seguiu o tópico avançado Como criar uma estação de trabalho de administrador com um endereço IP estático, talvez seja necessário fazer ajustes conforme explicado em cada etapa. Para uma estação de trabalho de administrador do DHCP, use o guia de instalação do DHCP correspondente.

Se você tiver um proxy, todos os comandos gkectl usarão automaticamente o mesmo proxy definido no arquivo de configuração para solicitações de Internet a partir da estação de trabalho do administrador. Se a estação de trabalho do administrador não estiver localizada no mesmo proxy, consulte as "Opções de proxy manuais" nos tópicos avançados Como criar uma estação de trabalho do administrador: IP estático | DHCP.

SSH na estação de trabalho de administrador

Para se conectar à estação de trabalho do administrador usando SSH, siga as instruções em Como conseguir uma conexão SSH para a estação de trabalho do administrador.

A conta de serviço da lista de permissões está ativada na estação de trabalho de administrador. Siga todas as etapas restantes deste tópico na sua estação de trabalho de administrador.

Como configurar IPs estáticos no cluster de administrador

Para especificar os endereços IP estáticos que você quer usar no cluster de administrador, crie um arquivo de configuração de host chamado admin-hostconfig.yaml. Para este exercício, é necessário especificar cinco endereços IP a serem usados pelo cluster de administrador.

Veja a seguir um exemplo de arquivo de configuração de host com cinco hosts:

hostconfig:
  dns: 172.16.255.1
  tod: 216.239.35.0
  otherdns:
  - 8.8.8.8
  - 8.8.4.4
  othertod:
  - ntp.ubuntu.com
  searchdomainsfordns:
  - "my.local.com"
blocks:
  - netmask: 255.255.252.0
    gateway: 172.16.23.254
    ips:
    - ip: 172.16.20.10
      hostname: admin-host1
    - ip: 172.16.20.11
      hostname: admin-host2
    - ip: 172.16.20.12
      hostname: admin-host3
    - ip: 172.16.20.13
      hostname: admin-host4
    - ip: 172.16.20.14
      hostname: admin-host5

O campo ips é uma matriz de endereços IP e nomes de host. Esses são os endereços IP e nomes de host que o GKE On-Prem atribuirá aos nós do cluster de administrador.

No arquivo de configuração do host, você também especifica os endereços dos servidores DNS, servidores de horário e gateway padrão que os nós do cluster de administrador usarão.

O campo searchdomainsfordns é uma matriz de domínios de pesquisa DNS a serem usados no cluster. Esses domínios são usados como parte de uma lista de pesquisa de domínio.

Campos preenchidos no arquivo de configuração do GKE On-Prem

Lembre-se de que, ao criar a estação de trabalho do administrador, você preencheu um arquivo de configuração chamado admin-ws-config.yaml. A ferramenta de linha de comando gkeadm usou seu arquivo admin-ws-config.yaml para criar a estação de trabalho do administrador.

Quando gkeadm criou a estação de trabalho de administrador, ele gerou outro arquivo de configuração chamado admin-cluster.yaml. O arquivo de configuração, que está na estação de trabalho de administrador, é para criar o cluster de administrador.

Os arquivos admin-ws-config.yaml e admin-cluster.yaml têm vários campos em comum. Os valores desses campos comuns já estão preenchidos no arquivo admin-cluster.yaml.

Esses são os campos que já estão preenchidos com os valores padrão e os valores que você inseriu quando criou a estação de trabalho de administrador:

bundlePath:
vCenter:
  credentials:
    address:
    username:
    password:
  datastore:
  resourcePool:
  caCertPath:
  datacenter:
  cluster:
loadbalancer
  seesaw:
    cpus:
    memoryMB:
    enableHA:
gcrKeyPath:
stackdriver:
  projectID:
  serviceAccountKeyPath:

Não altere os valores já preenchidos.

Como preencher o restante do arquivo de configuração do GKE On-Prem

Em seguida, é necessário preencher os demais campos no arquivo admin-cluster.yaml.

vCenter.dataDisk

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

vCenter:
  ...
  dataDisk: "my-disk.vmdk"
Armazenamento de dados vSAN: como criar uma pasta para o VMDK

Se você estiver usando um armazenamento de dados vSAN, será necessário colocar o VMDK em uma pasta. Você precisa criar a pasta manualmente com antecedência. Para fazer isso, use govc para criar uma pasta:

govc datastore.mkdir -namespace=true my-gke-on-prem-folder

Em seguida, defina vCenter.dataDisk como o caminho do VMDK, incluindo a pasta. Exemplo:

vDenter:
...
dataDisk: "my-gke-on-prem-folder/my-disk.vmdk"

network.ipMode.type

String. Defina como "static".

network:
  ipMode:
    type: "static"

network.ipBlockFilePath

String. Como você está usando endereços IP estáticos, é necessário ter um arquivo de configuração de host, conforme descrito em Como configurar IPs estáticos. Defina network.ipBlockFilePath como o caminho do arquivo de configuração do host. Exemplo:

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

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

Exemplo:

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

loadBalancer.vips

Strings. Defina o valor de loadBalancer.vips.controlPlaneVIP como o endereço IP que você configurou no balanceador de carga para o servidor da API Kubernetes do cluster de administrador. Defina o valor de loadBalancer.vips.addonsVIP como o endereço IP que você configurou no balanceador de carga para complementos. Exemplo:

loadBalancer:
  ...
  vips:
    controlplaneVIP: "203.0.113.3"
    addonsVIP: "203.0.113.4"

loadBalancer.kind

String. Defina como "Seesaw". Exemplo:

loadBalancer:
  kind: "Seesaw"

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. Exemplo:

loadBalancer:.
  seesaw:
    vrid: 125

loadBalancer.seesaw.cpus

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

loadBalancer:.
  seesaw:
    cpus: 8

loadBalancer.seesaw.memoryMB

Número inteiro. O número de megabytes de memória da VM do Seesaw. Exemplo:

loadBalancer:.
  seesaw:
    memoryMB: 8192

loadBalancer.seesaw.masterIP

String. Um endereço IP de sua escolha que será anunciado pela VM do Seesaw. Por exemplo:

loadBalancer:
  seesaw:
    masterIP: "172.16.20.21"

loadBalancer.seesaw.enableHA

Booleano. Defina como false. Exemplo:

loadBalancer:.
  seesaw:
    enableHA: false

proxy

Strings. Se sua rede estiver protegida por um servidor proxy, especifique o endereço de proxy e os endereços que não podem passar pelo servidor proxy.

Defina proxy.url para especificar o endereço HTTP do seu servidor proxy. É necessário incluir o número da porta, mesmo que seja igual ao da porta padrão do esquema. 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.

Configure proxy.noProxy para definir uma lista 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, ela é enviada diretamente. Exemplo:

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

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. Exemplo:

stackdriver:
  clusterLocation: "us-central1"

stackdriver.enableVPC

Booleano. Defina stackdriver.enableVPC como true se você tiver a rede do cluster controlada por uma VPC. Isso garante que toda a telemetria flua pelos endereços IP restritos do Google. Caso contrário, defina como false. Exemplo:

stackdriver:
  enableVPC: false

Campos extras no arquivo de configuração

O arquivo de configuração do GKE On-Prem tem vários campos além dos mostrados neste tópico. Por exemplo, é possível usar o campo manualLB para configurar o GKE On-Prem para ser executado no modo de balanceamento de carga manual.

Para uma descrição completa dos campos no arquivo de configuração, consulte Como instalar usando o DHCP e Como instalar usando endereços IP estáticos.

Como validar o arquivo de configuração

Depois de modificar o arquivo de configuração, execute gkectl check-config para verificar se o arquivo é válido e pode ser usado para instalação:

gkectl check-config --config admin-cluster.yaml

Se o comando retornar alguma mensagem FAILURE, primeiro corrija os problemas e valide o arquivo novamente.

Se quiser pular as validações mais demoradas, transmita a sinalização --fast. Para pular validações individuais, use as sinalizações --skip-validation-xxx. Para saber mais sobre o comando check-config, consulte Como executar verificações de simulação.

Como executar gkectl prepare

Execute gkectl prepare para inicializar o ambiente do vSphere:

gkectl prepare --config admin-cluster.yaml --skip-validation-all

Como criar o balanceador de carga

Crie e configure a VM para o balanceador de carga do Seesaw:

gkectl create loadbalancer --config [CONFIG_FILE]

em que [CONFIG_FILE] é o caminho do arquivo de configuração.

Como criar o cluster de administrador

Crie seu cluster de administrador:

gkectl create admin --config [CONFIG_FILE]

em que [CONFIG_FILE] é o caminho do arquivo de configuração.