Como criar um cluster de administrador (básico)

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

SSH na estação de trabalho de administrador

No tópico anterior, você usou gkeadm para criar uma estação de trabalho de administrador. Lembre-se de que gkeadm ativou a conta de serviço de acesso a componentes 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.

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 para seu cluster de administrador, crie um arquivo de bloco de IPs chamado admin-cluster-ipblock.yaml. Para este exercício, é necessário especificar cinco endereços IP a serem usados pelo cluster de administrador.

Veja abaixo um exemplo de arquivo de bloco IP com cinco hosts:

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 bloco de IP, você também especifica uma máscara de sub-rede e um gateway padrão para os nós do cluster de administrador.

Como criar um arquivo de configuração de credenciais

Crie um arquivo de configuração de credenciais chamado admin-creds.yaml que contenha 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 Administrador ou privilégios equivalentes.

Veja um exemplo de um arquivo de configuração de credenciais:

apiVersion: v1
kind: "CredentialFile"
items:
- name: "vcenter-creds"
  username: "my-vcenter-account"
  password: "U$icUKEW#INE"

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

O arquivo admin-cluster.yaml tem vários campos que são iguais ou fortemente relacionados a determinados campos no arquivo admin-ws-config.yaml. Os valores desses campos comuns já estão preenchidos no arquivo admin-cluster.yaml.

Estes são os campos em admin-cluster.yaml que já estão preenchidos de acordo com valores inseridos em seu arquivo admin-ws-config.yaml:

vCenter:
  address:
  datacenter:
  cluster:
  network:
    vCenter:
      networkName:
  resourcePool:
  datastore:
  caCertPath:
proxy:
  url:
gcrKeyPath:

Vários outros campos em admin-cluster.yaml são preenchidos com valores padrão ou gerados. Exemplo:

bundlePath:
loadbalancer
  seesaw:
    cpus:
    memoryMB:
    enableHA:
stackdriver:
  projectID:
  serviceAccountKeyPath:

No arquivo admin-cluster.yaml, não altere todos os valores preenchidos.

Como preencher o restante do arquivo de configuração de cluster de administrador

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

vCenter.credentials.fileRef.path

String. O caminho do arquivo de configuração de credenciais. Exemplo:

vCenter:
  credentials:
    fileRef:
      path: "admin-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"

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. Por 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. Por 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 bloco de IP. Exemplo:

network:
  ipBlockFilePath: "/my-config-directory/admin-cluster-ipblock.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 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"

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". Por exemplo:

loadBalancer:
  kind: "Seesaw"

loadBalancer.seesaw.ipBlockFilePath

String. Defina isso como o caminho do arquivo de bloco de IP da VM de Seesaw.

Exemplo:

loadbalancer:
  seesaw:
    ipBlockFilePath: "admin-seesaw-ipblock.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.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. Por exemplo:

loadBalancer:.
  seesaw:
    enableHA: false

proxy.url

String. Se você inseriu um valor para proxyURL no arquivo de configuração da estação de trabalho do administrador, esse campo já está preenchido com esse mesmo valor.

Se você pretende que os clusters de usuários e administradores estejam por trás de um proxy diferente da estação de trabalho de administrador, defina esse endereço como HTTP como o servidor proxy a ser usado pelos clusters. É necessário incluir o número da porta, mesmo que seja igual ao da porta padrão do esquema. Exemplo:

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

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, ela é enviada diretamente. Exemplo:

proxy:
  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. Por 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 adicionais no arquivo de configuração do cluster de administrador

O arquivo de configuração do cluster de administrador tem vários campos, além daqueles mostrados neste tópico. Para uma descrição completa dos campos no arquivo de configuração, consulte Arquivo de configuração de cluster do administrador.

Como validar o arquivo de configuração do cluster de administrador

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

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

Como criar o balanceador de carga

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

gkectl create loadbalancer --config admin-cluster.yaml

Como criar o cluster de administrador

Crie seu cluster de administrador:

gkectl create admin --config admin-cluster.yaml