Como criar uma estação de trabalho de administrador

Este documento mostra como criar uma estação de trabalho de administrador, para clusters do Anthos no VMware (GKE On-Prem), que podem ser usados para criar clusters.

Nas etapas deste documento, usamos a ferramenta de linha de comando gkeadm, disponível para Linux de 64 bits, Windows 10, Windows Server 2019 e macOS 10.15 e superior.

As instruções aqui são completas. Para uma introdução mais rápida à criação de uma estação de trabalho de administrador, consulte Criar uma estação de trabalho de administrador (guia de início rápido).

Antes de começar

Saber o endereço do servidor vCenter.

Conheça seu programa de certificação da CA.

Instale a Google Cloud CLI.

Crie um ou mais projetos do Cloud, conforme descrito em Como usar vários projetos do Google Cloud.

Como planejar suas contas de serviço

Ao usar gkeadm para criar uma estação de trabalho de administrador, é possível deixar que gkeadm crie algumas das suas contas de serviço e chaves para você. Nesse caso, gkeadm também concede os papéis apropriados do gerenciamento de identidade e acesso às contas de serviço.

Como alternativa, crie as contas de serviço e as chaves manualmente. Nesse caso, você precisa conceder manualmente os papéis do IAM às suas contas de serviço.

Criar contas de serviço manualmente oferece mais flexibilidade do que gkeadm para criá-las:

  • Todas as contas de serviço criadas automaticamente têm o mesmo projeto pai do Google Cloud que a conta de serviço de acesso a componentes. Ao criar uma conta de serviço manualmente, escolha o projeto pai do Google Cloud.

  • Todas as contas de serviço criadas automaticamente recebem os papéis do IAM no projeto pai do Google Cloud referente à conta de serviço de acesso a componentes. Isso não é um problema se for o único projeto do Google Cloud associado aos clusters. Mas, se você quiser associar seus clusters a vários projetos do Google Cloud, você precisará de flexibilidade para conceder papéis a uma conta de serviço em um projeto do Google Cloud de sua escolha.

Se você decidir criar suas próprias contas de serviço, siga as instruções em Contas e chaves de serviço.

Se você tiver gkeadm como criar contas de serviço automaticamente, há uma conta de serviço que precisa ser criada manualmente: sua conta de serviço de acesso ao componente. Para saber como criar sua conta de serviço de acesso a componentes e conceder a ela os papéis apropriados do IAM, consulte Conta de serviço de acesso a componentes.

Como gerar modelos para seus arquivos de configuração

Faça o download de gkeadm no seu diretório atual.

Para gerar modelos:

./gkeadm create config

O comando acima criou esses arquivos no diretório atual:

  • credential.yaml
  • admin-ws-config.yaml

Preenchendo credential.yaml

Em credential.yaml, preencha o nome de usuário e senha do vCenter. Exemplo:

kind: CredentialFile
items:
- name: vCenter
  username: "my-account-name"
  password: "AadmpqGPqq!a"

Preenchendo admin-ws-config.yaml

Vários campos em admin-ws-config.yaml já estão preenchidos com valores padrão ou gerados. Mantenha os valores preenchidos ou faça alterações à medida que preferir.

Campos que você precisa preencher

Preencha os campos obrigatórios a seguir. Para informações sobre como preencher os campos, consulte Arquivo de configuração de estação de trabalho de administrador.

gcp:
   componentAccessServiceAccountKeyPath: "Fill in"
vCenter:
  credentials:
    address: "Fill in"
  datacenter: "Fill in"
  datastore: "Fill in"
  cluster: "Fill in"
  network: "Fill in"
  resourcePool: "Fill in"
  caCertPath: "Fill in"

Se a estação de trabalho de administrador estiver atrás de um servidor proxy, preencha o campo proxyURL:

adminWorkstation:
  proxyURL: "Fill in"

Se você quiser que sua estação de trabalho de administrador receba seu endereço IP de um servidor DHCP, defina ipAllocationMode como "dhcp" e remova a seção hostconfig:

adminWorkstation:
  network:
    ipAllocationMode: "dhcp"

Se você quiser especificar um endereço IP estático para sua estação de trabalho de administrador, defina ipAllocationMode como "static" e preencha a seção hostconfig:

adminWorkstation:
  network:
    ipAllocationMode: "static"
    hostconfig:
      ip: "Fill in"
      gateway: "Fill in"
      netmask: "Fill in"
      dns:
      - "Fill in"

Como fazer login

A Conta do Google definida como a propriedade do SDK account é chamada de conta do SDK. A ferramenta de linha de comando gkeadm usa a conta do SDK para fazer o download do OVA da estação de trabalho de administrador e ativar os serviços no projeto Google do Cloud.

Se você optar por fazer com que gkeadm crie contas de serviço automaticamente, gkeadm também usará a conta do SDK para criar contas de serviço e chaves, bem como conceder papéis a contas de serviço. Por isso, é importante definir a propriedade account do SDK antes de executar gkeadm para criar uma estação de trabalho do administrador.

Faça login com qualquer Conta do Google: Isso define a propriedade account do SDK:

gcloud auth login

Verifique se a propriedade account do SDK está configurada corretamente:

gcloud config list

A saída mostra os valores da propriedade account do SDK. Exemplo:

[core]
account = my-name@google.com
disable_usage_reporting = False
Your active configuration is: [default]

Conceder papéis à conta do SDK

Sua conta do SDK precisa ter o seguinte papel do IAM no projeto pai do Google Cloud da conta de serviço de acesso a componentes. Isso permite que gkeadm ative os serviços no projeto do Google Cloud.

  • serviceUsage.serviceUsageAdmin

Se você optar por fazer com que gkeadm crie automaticamente contas de serviço para você, a conta do SDK também precisará ter os seguintes papéis no projeto pai da conta de serviço de acesso a componentes. Isso permite que gkeadm crie contas de serviço e chaves.

  • resourcemanager.projectIamAdmin
  • iam.serviceAccountCreator
  • iam.serviceAccountKeyAdmin

Para conceder papéis em um projeto do Google Cloud, é preciso ter determinadas permissões nesse projeto. Para instruções detalhadas, veja Como conceder, alterar e revogar acesso a recursos.

Se tiver as permissões necessárias, você mesmo poderá conceder os papéis. Caso contrário, outra pessoa na sua organização precisará conceder esses papéis para você.

Conceder o papel necessário à conta do SDK:

Linux e macOS

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member="user:ACCOUNT" \
    --role="roles/serviceusage.serviceUsageAdmin"

Windows

gcloud projects add-iam-policy-binding PROJECT_ID ^
    --member="user:ACCOUNT" ^
    --role="roles/serviceusage.serviceUsageAdmin"

Substitua:

  • PROJECT_ID: o ID do projeto pai do Google Cloud da conta de serviço de acesso ao componente.

  • ACCOUNT: a conta do SDK

Atribuir papéis adicionais caso você queira que gkeadm crie automaticamente contas de serviço.

Linux e macOS

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member="user:ACCOUNT" \
    --role="roles/resourcemanager.projectIamAdmin"

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member="user:ACCOUNT" \
    --role="roles/iam.serviceAccountCreator"

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member="user:ACCOUNT" \
    --role="roles/iam.serviceAccountKeyAdmin"

Windows

gcloud projects add-iam-policy-binding PROJECT_ID ^
    --member="user:ACCOUNT" ^
    --role="roles/resourcemanager.projectIamAdmin"

gcloud projects add-iam-policy-binding PROJECT_ID ^
    --member="user:ACCOUNT" ^
    --role="roles/iam.serviceAccountCreator"

gcloud projects add-iam-policy-binding PROJECT_ID ^
    --member="user:ACCOUNT" ^
    --role="roles/iam.serviceAccountKeyAdmin"

Substitua:

  • PROJECT_ID: o ID do projeto pai da conta de serviço de acesso a componentes

  • ACCOUNT: a conta do SDK

Como criar sua estação de trabalho do administrador

Digite este comando para criar a estação de trabalho de administrador. Se quiser que gkeadm crie contas de serviço para você, inclua a sinalização --auto-create-service-accounts. Se você quiser criar manualmente suas próprias contas de serviço, omita a sinalização.

./gkeadm create admin-workstation [--auto-create-service-accounts]

A saída fornece informações detalhadas sobre a criação da estação de trabalho do administrador:

...
Getting ... service account...
...
********************************************************************
Admin workstation is ready to use.

Admin workstation information saved to /usr/local/google/home/me/my-admin-workstation
This file is required for future upgrades
SSH into the admin workstation with the following command:
ssh -i /usr/local/google/home/me/.ssh/gke-admin-workstation ubuntu@172.16.5.1
********************************************************************

Como conseguir uma conexão SSH com a estação de trabalho do administrador

Próximo ao final da saída anterior, há um comando que pode ser usado para conseguir uma conexão SSH com a estação de trabalho de administrador. Digite esse comando agora. Exemplo:

ssh -i /usr/local/google/home/me/.ssh/gke-admin-workstation ubuntu@172.16.5.1

Liste os arquivos na estação de trabalho do administrador:

ls -1

Na saída, é possível ver dois arquivos de configuração do cluster, o arquivo do certificado de CA e o arquivo de chave JSON para a conta de serviço do acesso a componentes. Se gkeadm criou contas de serviço para você, também será possível ver os arquivos de chave JSON dessas contas de serviço. Exemplo:

admin-cluster.yaml
user-cluster.yaml
vcenter-ca-cert.pem
component-access-key.json

Verifique se gkeadm ativou a conta de serviço de acesso a componentes na estação de trabalho de administrador:

gcloud config get-value account

Como copiar o arquivo de chave JSON para a estação de trabalho de administrador

Antes de criar um cluster, os arquivos de chave JSON das contas de serviço precisam estar na estação de trabalho de administrador no diretório inicial.

A chave da sua conta de serviço de acesso a componentes já está na estação de trabalho do administrador.

Se você incluiu a sinalização --auto-create-service-accounts ao executar gkeadm create admin-workstation, as chaves para as contas de serviço a seguir já estarão na estação de trabalho do administrador no diretório inicial. Caso contrário, copie as chaves manualmente para o diretório inicial da estação de trabalho de administrador:

  • Conta de serviço connect-register
  • Conta de serviço logging-monitoring

Se você criou uma das contas de serviço a seguir, precisará copiar manualmente as chaves dessas contas de serviço para o diretório inicial da sua estação de trabalho de administrador:

  • Conta de serviço de medição de uso
  • Conta de serviço do Audit Logging
  • Conta de serviço de autorização binária

Como restaurar a estação de trabalho de administrador de um arquivo de backup

Quando você faz upgrade em uma estação de trabalho de administrador, o comando de upgrade gkeadm também salva um arquivo de backup por padrão. Se você não tiver mais uma estação de trabalho de administrador ou tiver perdido alguns dos arquivos que estavam na estação de administrador atualizada, poderá usar esse arquivo de backup para criar uma estação de trabalho de administrador restaurada para o que existia imediatamente depois do upgrade.

Para criar uma estação de trabalho de administrador usando um arquivo de backup, execute este comando:

gkeadm create admin-workstation --restore-from-backup ADMIN_WORKSTATION_NAME-backup.tar.gz

Substitua ADMIN_WORKSTATION_NAME pelo nome da estação de trabalho de administrador.

A seguir

Como criar um cluster de administrador