Como criar um cluster de usuário (básico)

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

Nas etapas deste tópico, pressupomos que você usou gkeadm para criar sua estação de trabalho do administrador. Se você não usou gkeadm, mas seguiu as etapas em Como criar uma estação de trabalho de administrador com um endereço IP estático, será necessário fazer alguns ajustes ao longo deste tópico. As etapas individuais explicam os ajustes necessários.

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 feitas na 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 neste tópico para sua estação de trabalho de administrador.

Como configurar IPs estáticos no cluster de usuário

Para especificar os endereços IP estáticos que você quer usar no cluster de usuário, crie um arquivo de configuração de host chamado user-hostconfig.yaml. Para este exercício, você precisa especificar três endereços IP a serem usados pelo cluster de usuário.

Veja a seguir um exemplo de arquivo de configuração de host com três 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.15
      hostname: user-host1
    - ip: 172.16.20.16
      hostname: user-host2
    - ip: 172.16.20.17
      hostname: user-host3

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 usuário.

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 usuário 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

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 user-cluster.yaml. O arquivo de configuração, que está na estação de trabalho de administrador, é criar o cluster de usuário.

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

Estes são os campos que já estão preenchidos com os valores que você forneceu quando criou a estação de trabalho do administrador:

stackdriver:
  projectID:
  serviceAccountKeyPath:
gkeConnect:
  projectID:
  registerServiceAccountKeyPath:
  agentServiceAccountKeyPath:

Como preencher o restante do arquivo de configuração

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

name

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

name: "my-user-cluster"

gkeOnPremVersion

String. A versão do GKE On-Prem para o cluster de usuário. Por exemplo:

gkeOnPremVersion: "1.4.3-gke.3"

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 do usuário precisa ter um intervalo de endereços IP para usar em serviços e um intervalo de endereços IP 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"

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"

loadBalancer.vips

Strings. Defina o valor de loadBalancer.vips.controlPlaneVIP como o endereço IP que você escolheu configurar no balanceador de carga para o servidor da API Kubernetes do cluster de usuário. Defina o valor de loadBalancer.vips.ingressVIP como o endereço IP que você escolheu configurar no balanceador de carga para o serviço de entrada no cluster de usuário. Por exemplo:

loadBalancer:
  ...
  vips:
    controlplaneVIP: "203.0.113.5"
    ingressVIP: "203.0.113.6"

loadBalancer.kind

String. Defina como "Seesaw". Por exemplo:

loadBalancer:
  kind: "Seesaw"

loadBalancer.seesaw.ipBlockFilePath

String. Defina como o caminho do arquivo hostconfig da VM do Seesaw. Por exemplo:

loadbalancer:
  ...
  seesaw:
    ipBlockFilePath: "user-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: 126

loadBalancer.seesaw.masterIP

String. O endereço IP do plano de controle para a VM da Seesaw. Por exemplo:

loadBalancer:
  seesaw:
    masterIP: "203.0.113.7"

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

Booleano. Defina como false. Por exemplo:

loadBalancer:.
  seesaw:
    enableHA: false

nodePools.name

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

nodePools:
- name: "my-user-pool"

nodePools.replicas

Número inteiro. O número de VMs no pool de nós. Defina como 3.

nodePools:
- name: "my-user-pool"
  replicas: 3

stackdriver.clusterLocation

String. A região do Google Cloud em que você quer armazenar os registros. É recomendável escolher uma região próxima ao data center local.

stackdriver.enablevpc

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.

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. Por 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 manuallbspec 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 --kubeconfig [ADMIN_CLUSTER_KUBECONFIG] --config [CONFIG_FILE]

em que:

  • [ADMIN_CLUSTER_KUBECONFIG] é o caminho do arquivo kubeconfig para o cluster de administrador;

  • [CONFIG_FILE] é o caminho do arquivo de configuração do cluster de usuário.

Se o comando retornar mensagens FAILURE, 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 criar o balanceador de carga

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

gkectl create loadbalancer --kubeconfig [ADMIN_CLUSTER_KUBECONFIG] --config [CONFIG_FILE]

em que:

  • [ADMIN_CLUSTER_KUBECONFIG] é o caminho do arquivo kubeconfig para o cluster de administrador;

  • [CONFIG_FILE] é o caminho do arquivo de configuração do cluster de usuário.

Como criar o cluster de usuário

Crie o cluster de usuário:

gkectl create cluster --kubeconfig [ADMIN_CLUSTER_KUBECONFIG] --config [CONFIG_FILE]

em que:

  • [ADMIN_CLUSTER_KUBECONFIG] é o caminho do arquivo kubeconfig para o cluster de administrador;

  • [CONFIG_FILE] é o caminho do arquivo de configuração do cluster de usuário.