Aprenda a criar um cluster de administrador e um cluster de usuário com uma configuração básica.
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 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 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.
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
.
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 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 o arquivo admin-ws-config.yaml
para criar a estação de trabalho do administrador.
Quando gkeadm
criou a estação de trabalho do administrador, ela gerou um segundo
arquivo de configuração chamado config.yaml
. Esse arquivo de configuração, que está na
estação de trabalho do administrador, tem como objetivo criar clusters do GKE On-Prem.
Os arquivos admin-ws-config.yaml
e config.yaml
têm vários campos em
comum. Os valores desses campos comuns já estão preenchidos no
arquivo config.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:
vcenter: credentials: address: username: password: datacenter: datastore: cluster: network: resourcepool: cacertpath: gkeconnect: projectid: registerserviceaccountkeypath: agentserviceaccountkeypath: stackdriver: projectid: serviceaccountkeypath: gcrkeypath:
Como preencher o restante do arquivo de configuração do GKE On-Prem
Em seguida, é necessário preencher os campos restantes no arquivo config.yaml
.
bundlepath
O arquivo de pacote do GKE On-Prem contém todos os componentes em uma
determinada versão do GKE On-Prem. Defina o valor de bundlepath
como
o caminho do arquivo de pacote da estação de trabalho do administrador.
bundlepath: /var/lib/gke/bundles/gke-onprem-vsphere-1.3.2-gke.1-full.tgz
vcenter.datadisk
O GKE On-Prem cria um disco de máquina virtual (VMDK, na sigla em inglês) a fim de
armazenar os dados do objeto 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:vcenter: ... datadisk: "my-gke-on-prem-folder/my-disk.vmdk"
Na versão 1.1.1, um problema conhecido exige que você forneça o identificador universal exclusivo (UUID, na sigla em inglês) da pasta em vez do caminho.
proxy
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, essa solicitação é 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"
admincluster.ipblockfilepath
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. Forneça o caminho para seu arquivo de
configuração de host no campo admincluster.ipblockfilepath
. Exemplo:
admincluster: ipblockfilepath: "/my-config-directory/admin-hostconfig.yaml"
admincluster.bigip.credentials
O GKE On-Prem precisa saber o endereço IP ou o nome do host, o nome de usuário
e a senha do balanceador de carga F5 BIG-IP. Defina os valores em
admincluster.bigip
para fornecer essas informações. Coloque uma
âncora,
&bigip-credentials
, depois de credentials
para que você não precise
repetir essas informações na seção usercluster
. Exemplo:
admincluster: ... bigip: credentials: &bigip-credentials address: "203.0.113.2" username: "my-admin-f5-name" password: "rJDlm^%7aOzw"
admincluster.bigip.partition
Antes, você
criava uma partição BIG-IP
para o cluster de administrador. Defina
admincluster.bigip.partition
como o nome da partição. Exemplo:
admincluster: ... bigip: partition: "my-admin-f5-partition"
admincluster.vips
Defina o valor de admincluster.vips.controlplanevip
como o
endereço IP que você escolheu configurar no balanceador de carga
para o servidor da API Kubernetes do cluster de administrador. Defina o valor de
ingressvip
como o endereço IP que você escolheu configurar no balanceador de carga
para o serviço de entrada do cluster de administrador. Exemplo:
admincluster: ... vips: controlplanevip: 203.0.113.3 ingressvip: 203.0.113.4
admincluster.serviceiprange
e admincluster.podiprange
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 admincluster.serviceiprange
e
admincluster.podiprange
. Esses campos são preenchidos quando você executa gkectl create-config
. 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:
admincluster: ... serviceiprange: 10.96.232.0/24 podiprange: 192.168.0.0/16
usercluster.ipblockfilepath
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. Forneça o caminho para
seu arquivo de configuração de host no campo usercluster.ipblockfilepath
. Por
exemplo:
usercluster: ipblockfilepath: "/my-config-directory/user-hostconfig.yaml"
usercluster.bigip.credentials
Coloque uma
referência,
*bigip-credentials
, depois de usercluster.bigip.credentials
para usar os mesmos
address
, username
e password
especificados em
admincluster.bigip.credentials
. Exemplo:
usercluster: ... bigip: credentials: *bigip-credentials
usercluster.bigip.partition
Antes, você
criava uma partição BIG-IP
para o cluster de usuário. Defina
usercluster.bigip.partition
como o nome da partição. Exemplo:
usercluster: ... bigip: partition: "my-user-f5-partition" ...
usercluster.vips
Defina o valor de usercluster.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
ingressvip
como o endereço IP que você escolheu configurar no balanceador de carga
para o serviço de entrada do cluster de usuário. Exemplo:
usercluster: ... vips: controlplanevip: 203.0.113.6 ingressvip: 203.0.113.7
usercluster.serviceiprange
e usercluster.podiprange
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 usercluster.serviceiprange
e
usercluster.podiprange
. Esses campos são preenchidos quando você executa gkectl create-config
. Se preferir,
é 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:
usercluster: ... serviceiprange: 10.96.233.0/24 podiprange: 172.16.0.0/12
Como desativar regras antiafinidade do VMware DRS
O GKE On-Prem cria automaticamente regras de antiafinidade do VMware Distributed Resource Scheduler (DRS) para os nós do cluster de usuário, fazendo com que eles sejam distribuídos em pelo menos três hosts físicos no data center.
Esse recurso exige que o ambiente vSphere atenda às seguintes condições:
- O VMware DRS está ativado. O VMware DRS requer a edição de licença do vSphere Enterprise Plus. Para saber como ativar o DRS, consulte Como ativar o VMware DRS em um cluster.
- A conta de usuário do vSphere fornecida no campo
vcenter
tem a permissãoHost.Inventory.EditCluster
. - Há pelo menos três hosts físicos disponíveis.
Lembre-se de que, se você tiver uma licença padrão do vSphere, não será possível ativar o VMware DRS.
Se você não tiver o DRS ativado ou se não tiver pelo menos três hosts para
os quais as VMs do vSphere podem ser programadas, adicione
usercluster.antiaffinitygroups.enabled: false
ao arquivo de configuração.
Exemplo:
usercluster: ... antiaffinitygroups: enabled: false
Para mais informações, consulte as Notas de lançamento 1.1.0-gke.6
lbmode
Defina lbmode
como "Integrated"
. Exemplo:
lbmode: "Integrated"
stackdriver.clusterlocation
Defina stackdriver.clusterlocation
como uma região do Google Cloud em que você quer
armazenar 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 passe pelos endereços IP restritos do Google.
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 --config config.yaml
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 executar gkectl prepare
Execute gkectl prepare
para inicializar o ambiente do vSphere:
gkectl prepare --config config.yaml --skip-validation-all
Como criar os clusters de administrador e de usuário
Crie o cluster de administrador e o cluster de usuário executando o comando
gkectl create cluster
.gkectl create cluster --config config.yaml --skip-validation-all
O comando
gkectl create cluster
cria arquivoskubeconfig
nomeados como[CLUSTER_NAME]-kubeconfig
no diretório atual em que [CLUSTER_NAME] é o nome definido por você paracluster
. Exemplo:MY-CLUSTER-kubeconfig
A documentação do GKE On-Prem usa os seguintes marcadores para se referir a esses arquivos
kubeconfig
:- Cluster de administrador: [ADMIN_CLUSTER_KUBECONFIG]
- Cluster de usuário: [USER_CLUSTER_KUBECONFIG]
Verifique se o cluster foi criado e está em execução:
Para verificar o cluster de administrador, execute o seguinte comando:
kubectl get nodes --kubeconfig [ADMIN_CLUSTER_KUBECONFIG]
A saída mostra os nós do cluster de administrador.
Para verificar o cluster de usuário, execute o seguinte comando:
kubectl get nodes --kubeconfig [USER_CLUSTER_KUBECONFIG]
A saída mostra os nós do cluster de usuário. Exemplo:
NAME STATUS ROLES AGE VERSION xxxxxx-1234-ipam-15008527 Ready <none> 12m v1.14.7-gke.24 xxxxxx-1234-ipam-1500852a Ready <none> 12m v1.14.7-gke.24 xxxxxx-1234-ipam-15008536 Ready <none> 12m v1.14.7-gke.24
Prossiga para a próxima seção para saber como implantar um aplicativo no cluster de usuário.