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 de administrador não estiver localizada no mesmo proxy, consulte "Opções de proxy manuais" nos tópicos avançados Como criar uma estação de trabalho de administrador:

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.

Sua conta de serviço de acesso a componentes será 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 usuário

Para especificar os endereços IP estáticos que você quer usar para seu cluster de usuário, crie um arquivo de bloco de IPs chamado user-cluster-ipblock.yaml. Para este exercício, você precisa especificar três endereços IP a serem usados pelo cluster de usuário.

Veja abaixo um exemplo de arquivo de bloco IP com três hosts:

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

name: "my-user-cluster"

gkeOnPremVersion

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

gkeOnPremVersion: "1.5.2-gke.3"

network.ipMode.type

String. Defina como "static".

network:
  ipMode:
    type: "static"

network.ipMode.ipBlockFilePath

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

network:
  ipMode:
    ipBlockFilePath: "/my-config-directory/user-cluster-ipblock-.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 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. Esse identificador precisa ser exclusivo em uma VLAN. O intervalo válido é de 1 a 255. Por 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

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

Um arquivo de configuração de cluster tem vários campos além dos que são mostrados neste tópico. Por exemplo, é possível usar o campo manuallbspec para configurar a execução do GKE On-Prem 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. Por exemplo, user-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 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.