Nesta página, explicamos como criar a versão mais recente da máquina virtual (VM) da estação de trabalho do administrador.
Para fazer upgrade de uma estação de trabalho de administrador atual, consulte Como fazer upgrade do GKE On-Prem.
Visão geral
A estação de trabalho de administrador é uma VM do vSphere que contém todas as ferramentas necessárias para criar e gerenciar clusters do GKE On-Prem. Para criar a estação de trabalho de administrador, execute as seguintes etapas descritas neste tópico:
- Faça o download do arquivo Open Virtual Appliance (OVA) da estação de trabalho de administrador, que é uma imagem compactada da VM da estação de trabalho de administrador.
- Use
govc
, a interface de linha de comando para o vSphere, para importar o OVA para o vSphere como um modelo de VM. - Copie e preencha arquivos de configuração do HashiCorp Terraform.
- Use o Terraform para criar a VM.
Antes de começar
- Leia a visão geral da estação de trabalho de administrador.
- Conclua as etapas em Como se preparar para a instalação.
- Verifique se você instalou
govc
. - Verifique se você instalou o Terraform versão 0.11.
Fazer o download do OVA da estação de trabalho de administrador
Faça o download da versão mais recente do OVA da estação de trabalho de administrador no tópico "Downloads". O arquivo OVA mais recente é:
gke-on-prem-admin-appliance-vsphere-1.1.2-gke.0.ova
1.1.2-gke.0
é a versão mais recente do
GKE On-Prem. O OVA inclui todos os componentes do cluster, ferramentas de linha de comando e
outras entidades necessárias para instalar e gerenciar clusters do GKE On-Prem.
O OVA mais recente inclui a versão mais recente dessas entidades.
Salve esse arquivo em algum lugar no computador que você está usando para criar a estação de trabalho do administrador.
Como usar o govc
a fim de importar o OVA para o vSphere e marcá-lo como um modelo de VM
Nas seções a seguir, faça as seguintes ações:
- Crie algumas variáveis que declaram elementos do servidor vCenter e do ambiente do vSphere.
- Importe o OVA da estação de trabalho de administrador para o vSphere e marque-o como um modelo de VM.
Como criar variáveis para govc
Antes de importar o OVA da estação de trabalho de administrador para o vSphere, é preciso fornecer ao govc
algumas variáveis que declaram elementos do seu servidor vCenter e do ambiente do vSphere:
export GOVC_URL=https://[VCENTER_SERVER_ADDRESS]/sdk export GOVC_USERNAME=[VCENTER_SERVER_USERNAME] export GOVC_PASSWORD=[VCENTER_SERVER_PASSWORD] export GOVC_DATASTORE=[VSPHERE_DATASTORE] export GOVC_DATACENTER=[VSPHERE_DATACENTER] export GOVC_INSECURE=true
Use o pool de recursos padrão do vSphere ou crie seu próprio pool de recursos:
# If you want to use a resource pool you've configured yourself, export this variable: export GOVC_RESOURCE_POOL=[VSPHERE_CLUSTER]/Resources/[VSPHERE_RESOURCE_POOL]
# If you want to use vSphere's default resource pool, export this variable instead: export GOVC_RESOURCE_POOL=[VSPHERE_CLUSTER]/Resources
em que:
- [VCENTER_SERVER_ADDRESS] é o endereço IP ou nome do host do servidor vCenter.
- [VCENTER_SERVER_USERNAME] é o nome de usuário de uma conta que tem o papel de Administrador ou privilégios equivalentes no servidor vCenter.
- [VCENTER_SERVER_PASSWORD] é a senha da conta do servidor vCenter.
- [VSPHERE_DATASTORE] é o nome do armazenamento de dados que você configurou no ambiente do vSphere.
- [VSPHERE_DATACENTER] é o nome do data center configurado no ambiente do vSphere.
- [VSPHERE_CLUSTER] é o nome do cluster que você configurou no ambiente do vSphere. Para usar um pool de recursos não padrão,
- [VSPHERE_RESOURCE_POOL] é o nome do pool de recursos que você configurou para seu ambiente vSphere.
Como importar o OVA para o vSphere: chave padrão
Se você estiver usando uma chave padrão do vSphere, importe o OVA para o vSphere usando este comando:
govc import.ova -options - ~/gke-on-prem-admin-appliance-vsphere-1.1.2-gke.0.ova <<EOF { "DiskProvisioning": "thin", "MarkAsTemplate": true } EOF
Como importar o OVA para o vSphere: chave distribuída
Se você estiver usando uma chave distribuída do vSphere, importe o OVA para o vSphere usando este comando, em que [YOUR_DISTRIBUTED_PORT_GROUP_NAME] é o nome do grupo de portas distribuído:
govc import.ova -options - ~/gke-on-prem-admin-appliance-vsphere-1.1.2-gke.0.ova <<EOF { "DiskProvisioning": "thin", "MarkAsTemplate": true, "NetworkMapping": [ { "Name": "VM Network", "Network": "[YOUR_DISTRIBUTED_PORT_GROUP_NAME]" } ] } EOF
Como copiar os arquivos de configuração do Terraform
Crie um diretório para seus arquivos do Terraform:
mkdir "[TERRAFORM_DIR]"
[TERRAFORM_DIR] é o caminho de um diretório em que você quer manter os arquivos do Terraform.
Copie uma das seguintes configurações do Terraform, se você quiser especificar um endereço IP estático para a estação de trabalho de administrador ou usar um servidor DHCP para receber um endereço IP.
Copie os arquivos TF e TFVARS. O arquivo TF é a configuração do HCL (em inglês) do Terraform que executa a criação da VM.
Salve as configurações em
[TERRAFORM_DIR]/terraform.tf
e[TERRAFORM_DIR]/terraform.tfvars
, respectivamente.
DHCP
IP estático
Como criar uma chave pública SSH
Crie uma chave pública SSH para que você possa usar o SSH na estação de trabalho de administrador no
seu laptop ou estação de trabalho local. Em sistemas operacionais baseados em Linux, é possível usar
ssh-keygen
:
ssh-keygen -t rsa -f ~/.ssh/vsphere_workstation -N ""
Como modificar o arquivo TFVARS
Abra terraform.tfvars
em um editor de texto e forneça valores para as variáveis
a seguir. É possível encontrar muitos desses valores fazendo login no
cliente do vCenter:
vcenter_user
Forneça uma conta de usuário do servidor vCenter como uma string. A conta de usuário precisa ter o papel de administrador ou privilégios equivalentes. Consulte Requisitos do sistema. Por exemplo:
vcenter_user = "administrator@vsphere.local"
vcenter_password
Forneça a senha da conta de usuário do servidor vCenter como uma string. Por exemplo:
vcenter_password = "#STyZ2T#Ko2o"
vcenter_server
Forneça o endereço do servidor vCenter (IP ou nome do host) como uma string. Por exemplo:
vcenter_server = "198.51.100.0"
ssh_public_key_path
Forneça o caminho para sua chave pública SSH. Você criou isso em uma etapa anterior:
ssh_public_key_path = "~/.ssh/vsphere_workstation.pub"
vm_name
Forneça um nome de sua escolha para a estação de trabalho de administrador.
vm_name = "admin-workstation"
datastore
Forneça o nome do armazenamento de dados do vSphere como uma string.
datastore = "MY-DATASTORE"
datacenter
Forneça o nome do seu data center do vSphere como uma string.
datacenter = "MY-DATACENTER"
cluster
Forneça o nome do cluster do vSphere como uma string.
cluster = "MY-CLUSTER"
resource_pool
Se estiver usando um pool de recursos não padrão, forneça o nome do pool de recursos do vSphere como uma string.
resource_pool = "MY-POOL"
Se você estiver usando o pool de recursos padrão, forneça o seguinte valor:
resource_pool = "MY-CLUSTER/Resources"
Consulte Como especificar o pool de recursos raiz para um host autônomo.
network
Forneça a rede do vSphere em que você quer criar a estação de trabalho de administrador, como uma string. Por exemplo:
network = "VM Network"
vm_template
Forneça o nome do modelo da VM como uma string. Você criou o OVA importado e o marcou como um modelo em uma etapa anterior.
vm_template = "gke-on-prem-admin-appliance-vsphere-[VERSION]"
Como usar um endereço IP estático para a estação de trabalho do administrador
Se você quiser usar um IP estático para a estação de trabalho do administrador, copie o arquivo IP estático TF e TFVARS. No arquivo TFVARs, insira valores para as seguintes variáveis:
ipv4_address
Forneça um endereço IP estático IPv4 para a estação de trabalho de administrador. Por exemplo:
ipv4_address = "203.0.113.0"
ipv4_netmask_prefix_length
Forneça o número de bits na máscara de sub-rede da rede em que você quer criar a estação de trabalho de administrador. Exemplo:
ipv4_netmask_prefix_length = "22"
ipv4_gateway
Forneça o gateway da sub-rede em que a estação de trabalho do administrador será criada. Consulte a documentação do vphere_virtual_machine (em inglês) da VMware.
Por exemplo:
ipv4_gateway = "198.51.100.0
dns_nameservers
Forneça servidores de nomes DNS a serem usados pela estação de trabalho de administrador, separados por vírgulas. Por exemplo:
dns_nameservers = "8.8.8.8,8.8.4.4"
Como criar a estação de trabalho de administrador
Depois de concluir as etapas anteriores, você estará pronto para criar a VM da estação de trabalho do administrador:
Altere para o diretório que contém seus arquivos de configuração do Terraform (TF e TFVARS):
cd [TERRAFORM_DIR]
Inicialize o Terraform no diretório e aplique a configuração. Isso pode levar alguns minutos:
terraform init && terraform apply -auto-approve -input=false
Conectar-se à sua estação de trabalho de administrador
Altere para o diretório que contém os arquivos de configuração do Terraform.
Recupere o endereço IP da estação de trabalho de administrador:
terraform output ip_address
Anote o endereço IP da estação de trabalho do administrador ou exporte-o como uma variável no shell.
Execute o SSH para a estação de trabalho de administrador usando a chave gerada e o endereço IP:
ssh -i ~/.ssh/vsphere_workstation ubuntu@$(terraform output ip_address)
ou, se quiser apenas usar o endereço:
ssh -i ~/.ssh/vsphere_workstation ubuntu@[IP_ADDRESS]
Como verificar se a estação de trabalho de administrador está configurada corretamente
Verifique se gkectl
e docker
estão instalados:
gkectl version docker version
Como configurar o proxy para a estação de trabalho de administrador
Se o ambiente estiver protegido por um proxy, siga as seções abaixo para configurar a Google Cloud CLI e o Docker para usar o proxy.
Como configurar a Google Cloud CLI para usar seu proxy
Conclua as etapas a seguir na VM da estação de trabalho de administrador.
Se você estiver usando um proxy para se conectar à Internet a partir do laptop ou da
estação de trabalho, configure a Google Cloud CLI para o proxy, o
que possibilita executar os comandos do gcloud
e do gsutil
. Para mais instruções, consulte
Como configurar a CLI gcloud para que seja usada com um proxy/firewall.
Como configurar um registro do Docker para extrair o proxy
Conclua as etapas a seguir na VM da estação de trabalho de administrador.
Caso queira usar um registro do Docker e sua rede for executada atrás de um proxy, será necessário configurar o daemon do Docker em execução na estação de trabalho do administrador para extrair imagens usando o proxy:
Reúna os endereços dos seus proxies HTTP e HTTPS.
Reúna os endereços IP e os nomes de host de cada host com os quais você precisa entrar em contato sem usar proxy, incluindo estes endereços:
- O endereço IP do servidor vCenter
- Os endereços IP de todos os hosts ESXi
- Outros endereços IP que você pretende configurar no balanceador de carga
- O intervalo 192.168.0.0/16
Na estação de trabalho de administrador, adicione esses endereços à variável
no_proxy
:printf -v no_proxy '%s,' [ADDRESSES];
É possível exportar o intervalo para uma variável de ambiente para referência futura. Lembre-se de que seus aplicativos e processos podem usar essa variável:
export no_proxy="${no_proxy%,}";
Abra o arquivo de configuração (em inglês) do Docker, armazenado em
/root/.docker/config.json
,/home/
[USER]/.docker/config.json
ou em outro lugar, dependendo da configuração.Em
config.json
, adicione as seguintes linhas:"proxies": { "default": { "httpProxy": "[HTTP_PROXY]", "httpsProxy": "[HTTPS_PROXY]", "noProxy": "[ADDRESSES]" } }
em que:
- [HTTP_PROXY] é o proxy HTTP, se você tiver um;
- [HTTPS_PROXY] é o proxy HTTPS, se você tiver um;
- [ADDRESSES] é uma lista delimitada por vírgulas de endereços e nomes de host com que você precisa entrar em contato sem usar proxy.
Reinicie o Docker para que as alterações entrem em vigor:
sudo systemctl restart docker
Solução de problemas
Para mais informações, consulte Solução de problemas.
Limite de sessão no provedor do vSphere do Terraform
O GKE On-Prem usa o provedor do vSphere do Terraform para abrir VMs no ambiente vSphere. O limite de sessões no provedor é de 1.000 sessões. A implementação atual não fecha as sessões ativas após o uso. Podem ocorrer erros 503 se você tiver muitas sessões em execução.
As sessões são fechadas automaticamente após 300 segundos.
- Sintomas
Se você tiver muitas sessões em execução, talvez você encontre o seguinte erro:
Error connecting to CIS REST endpoint: Login failed: body: {"type":"com.vmware.vapi.std.errors.service_unavailable","value": {"messages":[{"args":["1000","1000"],"default_message":"Sessions count is limited to 1000. Existing sessions are 1000.", "id":"com.vmware.vapi.endpoint.failedToLoginMaxSessionCountReached"}]}}, status: 503 Service Unavailable
- Causas possíveis
Há muitas sessões de provedor do Terraform em execução no seu ambiente.
- Resolução
No momento, isso está funcionando conforme o esperado. As sessões são fechadas automaticamente após 300 segundos. Para mais informações, consulte o problema nº 618 no GitHub.
Como usar um proxy para o Docker: oauth2: cannot fetch token
- Sintomas
Ao usar um proxy, você encontra o seguinte erro:
oauth2: cannot fetch token: Post https://oauth2.googleapis.com/token: proxyconnect tcp: tls: oversized record received with length 20527
- Causas possíveis
É possível que você tenha fornecido um proxy HTTPS em vez de HTTP.
- Resolução
Na configuração do Docker, altere o endereço do proxy para
http://
em vez dehttps://
.
Como verificar se as licenças são válidas
Lembre-se de verificar se as licenças são válidas, especialmente se você estiver usando licenças de teste. Pode haver falhas inesperadas se as licenças F5, host ESXi ou vCenter tiverem expirado.
openssl
não pode validar o OVA da estação de trabalho de administrador
- Sintomas
Executar
openssl dgst
no arquivo OVA da estação de trabalho de administrador não retornaVerified OK
- Causas possíveis
Há um problema no arquivo OVA que impede a validação bem-sucedida.
- Resolução
Tente fazer o download e implantar o OVA da estação de trabalho de administrador novamente, conforme descrito em Fazer o download do OVA da estação de trabalho de administrador . Se o problema persistir, entre em contato com o Google para receber ajuda.