Como criar uma estação de trabalho de administrador com um endereço IP estático

Nesta página, você verá como criar uma estação de trabalho de administrador que pode ser usada para instalar o GKE On-Prem.

Neste tópico, você criará uma estação de trabalho de administrador com um endereço IP estático.

Se você quiser criar uma estação de trabalho de administrador que use o protocolo de configuração de host dinâmico (DHCP, na sigla em inglês) para receber o endereço IP, consulte Como criar uma estação de trabalho de administrador usando o DHCP.

Se você executa os comandos no Linux, há uma alternativa às etapas deste tópico. Ela consiste em usar a ferramenta gkeadm, que automatiza a criação da estação de trabalho de administrador.

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 (em inglês).
  • Use o Terraform versão 0.11 para criar a VM da estação de trabalho de administrador.

Como criar uma chave para sua conta de serviço permitida

Se você ainda não tiver um arquivo de chave JSON para sua conta de serviço permitida, crie um agora:

  1. gcloud auth login
  2. gcloud iam service-accounts keys create whitelisted-key.json \
    --iam-account [ALLOWLISTED_SERVICE_ACCOUNT_EMAIL]
    

[ALLOWLISTED_SERVICE_ACCOUNT_EMAIL] é o endereço de e-mail da sua conta de serviço permitida.

Como fazer o download do OVA da estação de trabalho de administrador

O OVA da estação de trabalho de administrador inclui todos os componentes do cluster, as ferramentas de linha de comando e outras entidades necessárias para instalar e gerenciar clusters do GKE On-Prem.

Ative sua conta de serviço permitida:

gcloud auth activate-service-account --key-file [KEY_ALLOWLISTED_ACCOUNT]

[KEY_ALLOWLISTED_ACCOUNT] é o caminho do arquivo de chave JSON para sua conta de serviço permitida.

Faça o download da versão mais recente do OVA da estação de trabalho de administrador e do arquivo de assinatura:

gsutil cp gs://gke-on-prem-release/admin-appliance/1.4.3-gke.3/gke-on-prem-admin-appliance-vsphere-1.4.3-gke.3.{ova,ova.1.sig} ./

Como verificar o OVA usando openssl

Verifique o arquivo OVA que baixado na chave pública usando openssl:

openssl dgst -verify - -signature gke-on-prem-admin-appliance-vsphere-1.4.3-gke.3.ova.1.sig gke-on-prem-admin-appliance-vsphere-1.4.3-gke.3.ova <<'EOF'
-----BEGIN PUBLIC KEY-----
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ
wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw==
-----END PUBLIC KEY-----
EOF

A saída esperada desse comando é Verified OK.

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:

  1. Crie algumas variáveis que declaram elementos do servidor vCenter e do ambiente do vSphere.
  2. 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 o ambiente do vSphere.

Como criar variáveis para o proxy

Se você estiver usando um proxy, exporte variáveis para o endereço HTTP e HTTPS, em que [PROXY_ADDRESS] é o endereço IP ou o nome do host do proxy:

export HTTP_PROXY=http://[PROXY_ADDRESS]
export HTTPS_PROXY=https://[PROXY_ADDRESS]

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.4.3-gke.3.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.4.3-gke.3.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]

em que [TERRAFORM_DIR] é o caminho de um diretório em que você quer manter os arquivos do Terraform.

Copie os seguintes arquivos TF e TFVARS e salve-os em [TERRAFORM_DIR]/terraform.tf e [TERRAFORM_DIR]/terraform.tfvars, respectivamente.

O arquivo TF é a configuração do HCL do Terraform que executa a criação da VM.

Os arquivos do Terraform fornecidos aqui se aplicam a uma estação de trabalho de administrador que tem um endereço IP estático. Se você quiser criar uma estação de trabalho de administrador que use o DHCP para receber o endereço IP, use os arquivos do Terraform fornecidos em Como criar uma estação de trabalho de administrador usando o DHCP.

Como criar uma chave SSH

Crie uma chave SSH para 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 os requisitos do vSphere.

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.2"

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

vm_name = "my-admin-workstation"

datastore

Forneça o nome do armazenamento de dados do vSphere como uma string. Por exemplo:

datastore = "MY-DATASTORE"

datacenter

Forneça o nome do seu data center do vSphere como uma string. Por exemplo:

datacenter = "MY-DATACENTER"

cluster

Forneça o nome do cluster do vSphere como uma string. Por exemplo.

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

resource_pool = "MY-POOL"

Se você estiver usando o pool de recursos padrão, forneça o seguinte valor:

resource_pool = "[MY_CLUSTER]/Resources"

em que [MY_CLUSTER] é o nome do cluster do vSphere.

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 = "MY-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. Observe que o nome do modelo não tem a extensão .ova.

vm_template = "gke-on-prem-admin-appliance-vsphere-1.4.3-gke.3"

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.1"

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

ipv4_netmask_prefix_length = "22"

ipv4_gateway

Forneça o endereço IP do gateway padrão da sub-rede em que a estação de trabalho de administrador será criada. Por exemplo:

ipv4_gateway = "198.51.100.1

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

Agora você está pronto para criar a VM da estação de trabalho de administrador. Use a versão 0.11 do Terraform para as etapas desta seção.

  1. Acesse o diretório que contém os arquivos de configuração do Terraform (TF e TFVARS):

  2. Inicialize o Terraform no diretório e aplique a configuração. Isso pode levar alguns minutos:

    terraform init && terraform apply -auto-approve -input=false

Conecte-se à sua estação de trabalho de administrador

  1. Acesse o diretório que contém os arquivos de configuração do Terraform.

  2. 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 de administrador.

  3. Conecte-se por SSH à estação de trabalho de administrador usando sua chave SSH e o endereço IP:

    ssh -i ~/.ssh/vsphere_workstation ubuntu@[ADMIN_WORKSTATION_IP_ADDRESS]
    

Como verificar se a estação de trabalho de administrador está configurada corretamente

Confirme se gkectl e docker estão instalados na estação de trabalho de administrador:

gkectl version
docker version

Como configurar o servidor NTP na estação de trabalho de administrador

Por padrão, a estação de trabalho de administrador usa o ntp.ubuntu.com como servidor NTP (Network Time Protocol). Se sua organização usa um servidor de tempo diferente, configure a estação de trabalho de administrador para usar o mesmo servidor NTP que o restante da organização.

Digite os seguintes comandos para configurar o servidor NTP na estação de trabalho de administrador:

sudo mkdir -p /etc/systemd/timesyncd.conf.d/

sudo bash -c "cat >> /etc/systemd/timesyncd.conf.d/cloud-init.conf" << EOF
[Time]
NTP=[NTP_SERVER]
EOF

sudo systemctl restart systemd-timesyncd
timedatectl status

em que [NTP_SERVER] é o nome do host ou o endereço IP do seu servidor NTP.

Para verificar se o servidor NTP está funcionando, digite o seguinte comando:

timedatectl

O resultado é semelhante a este:

                      Local time: Tue 2019-12-17 00:21:50 UTC
                  Universal time: Tue 2019-12-17 00:21:50 UTC
                        RTC time: Tue 2019-12-17 00:21:50
                       Time zone: Etc/UTC (UTC, +0000)
       System clock synchronized: yes
systemd-timesyncd.service active: yes
                 RTC in local TZ: no

Solução de problemas

AccessDeniedException durante o download do OVA

Sintomas

A tentativa de fazer o download do OVA e da assinatura da estação de trabalho de administrador retorna o seguinte erro:

AccessDeniedException: 403 whitelisted-service-account@project.iam.gserviceaccount.com does not have storage.objects.list access to gke-on-prem-release
Causas possíveis

Sua conta de serviço permitida não está ativada.

Resolução

Verifique se você ativou sua conta de serviço permitida. Se o problema persistir, entre em contato com o Google para receber ajuda.

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 retorna Verified 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.

Para mais informações, consulte Solução de problemas.