Você está visualizando a documentação de uma versão anterior do GKE On-Prem. Veja a documentação mais recente.

Como criar uma estação de trabalho de administração usando DHCP

Nesta página, explicamos como criar uma estação de trabalho de administrador que usa o protocolo de configuração de host dinâmico (DHCP, na sigla em inglês) para receber o endereço IP.

Se você quiser criar uma estação de trabalho de administrador com um endereço IP estático, consulte Como criar uma estação de trabalho de administrador.

Visão geral

A estação de trabalho do 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, 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 versão 0.11 para criar a VM da estação de trabalho de administrador.

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

Se você ainda não tiver um arquivo de chave JSON para sua conta de serviço na lista de permissões, crie um agora:

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

em que [WHITELISTED_SERVICE_ACCOUNT_EMAIL] é o endereço de e-mail da 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 na lista de permissões:

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

em que [KEY_WHITELISTED_ACCOUNT] é o caminho do arquivo de chave JSON para sua conta de serviço na lista de permissões.

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.2.2-gke.2/gke-on-prem-admin-appliance-vsphere-1.2.2-gke.2.{ova,ova.1.sig} ./

Como verificar o OVA usando openssl

Verifique o arquivo OVA que você baixou na chave pública usando openssl:

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

A saída esperada desse comando é Verified OK.

Como usar o govc para importar o OVA para o vSphere e marcá-lo como um modelo de VM

Nas seções a seguir, você precisa:

  1. Criar algumas variáveis declarando elementos do seu servidor vCenter e do ambiente vSphere.
  2. Importar o OVA da estação de trabalho de administrador para o vSphere e marcá-lo 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 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

onde:

  • [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 seu ambiente vSphere.
  • [VSPHERE_DATACENTER] é o nome do data center configurado no seu ambiente vSphere.
  • [VSPHERE_CLUSTER] é o nome do cluster que você configurou no seu ambiente 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 criar variáveis para seu 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.2.2-gke.2.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.2.2-gke.2.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.

Como criar uma chave SSH

Crie uma chave SSH para você 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 vSphere.

Exemplo:

vcenter_user = "administrator@vsphere.local"

vcenter_password

Forneça a senha da conta de usuário do servidor vCenter como uma string. Exemplo:

vcenter_password = "#STyZ2T#Ko2o"

vcenter_server

Forneça o endereço do servidor vCenter (IP ou nome do host) como uma string. 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. Exemplo:

vm_name = "my-admin-workstation"

datastore

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

datastore = "MY-DATASTORE"

datacenter

Forneça o nome do seu data center do vSphere como uma string. 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. 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. 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.2.2-gke.2"

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

Execute o SSH na 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

Verifique 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

A saída é semelhante a esta:

                      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

Resolver problemas

AccessDeniedException durante o download do OVA

Sintomas

A tentativa de fazer o download da assinatura e do OVA 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 na lista de permissões. Se o problema persistir, entre em contato com o Google para receber ajuda.

openssl não pode validar 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.

Resolução

Tente fazer o download e implantar o OVA da estação de trabalho de administrador novamente, conforme instruído 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.