Crie uma estação de trabalho de administrador

Este documento mostra como criar uma estação de trabalho de administrador para o Google Distributed Cloud. A estação de trabalho do administrador aloja ferramentas de interface de linhas de comando (CLI) e ficheiros de configuração para aprovisionar clusters durante a instalação, e ferramentas de CLI para interagir com clusters aprovisionados após a instalação.

Esta página destina-se a administradores, arquitetos e operadores que configuram, monitorizam e gerem a infraestrutura técnica. Para saber mais sobre as funções comuns e exemplos de tarefas que referimos no conteúdo, consulte o artigo Funções e tarefas comuns do utilizador do GKE. Google Cloud

As instruções aqui apresentadas estão completas. Para uma introdução mais curta à criação de uma estação de trabalho de administrador, consulte o artigo Crie uma estação de trabalho de administrador no guia Crie clusters básicos.

Escolha como criar a estação de trabalho de administração

Existem duas formas de criar uma estação de trabalho de administrador:

  • Use gkeadm para criar uma VM de estação de trabalho de administrador no seu ambiente vSphere.
  • Crie uma estação de trabalho de administrador gerida pelo utilizador em qualquer computador à sua escolha.

Ambas as abordagens têm vantagens e desvantagens.

Quando usa o gkeadm para criar a sua estação de trabalho de administrador, o gkeadm faz o seguinte, o que simplifica a configuração:

  • Cria a VM da estação de trabalho de administração.
  • O modelo de VM que o gkeadm usa para criar a estação de trabalho de administração tem todo o software de que precisa para criar e gerir clusters através da ferramenta de linha de comandos gkectl.
  • Cria uma conta de utilizador que você ou outros administradores usam para iniciar sessão na estação de trabalho de administração.
  • Fornece o comando SSH para iniciar sessão na estação de trabalho do administrador com a conta de utilizador fornecida.

Uma estação de trabalho de administrador criada pelo gkeadm só pode gerir um cluster de administrador. Se planear criar vários clusters de administrador, tem de criar uma estação de trabalho de administrador para cada cluster de administrador.

A estação de trabalho de administrador criada pelo gkeadm está associada ao ciclo de vida do cluster. Quando atualiza um cluster de administrador ou qualquer um dos clusters de utilizador geridos pelo cluster de administrador, tem primeiro de atualizar a estação de trabalho de administrador.

Quando configura a sua própria estação de trabalho de administrador, tem de instalar um dos sistemas operativos necessários e todo o software necessário. Isto torna a configuração inicial mais demorada, porque a criação de uma VM a partir de um modelo é mais rápida do que a instalação do software necessário num computador. No entanto, depois de configurar a estação de trabalho, esta tem as seguintes vantagens em relação a uma estação de trabalho de administrador criada pelo gkeadm:

  • Pode configurar a estação de trabalho gerida pelo utilizador para criar e gerir mais do que um cluster de administrador.
  • Não precisa de atualizar uma estação de trabalho de administrador gerida pelo utilizador quando atualiza um cluster.
  • Pode usar ferramentas de CI/CD padrão para automatizar a gestão do ciclo de vida do cluster.
  • Pode usar métodos de autenticação padrão, como o Active Directory, para controlar o acesso à estação de trabalho de administração.
  • Pode usar sistemas de autorização padrão para controlar o que os utilizadores podem aceder na estação de trabalho do administrador e para auditar as respetivas ações.
  • Pode escolher o software que quer usar para criar instantâneos ou cópias de segurança da estação de trabalho de administração.

Crie a estação de trabalho de administração

gkeadm

Antes de começar

Conheça o endereço do servidor vCenter.

Conheça o caminho do certificado da AC.

Instale a CLI do Google Cloud.

Crie um ou mais Google Cloud projetos, conforme descrito em Usar vários Google Cloud projetos.

Planear as suas contas de serviço

Quando usa o gkeadm para criar uma estação de trabalho de administrador, tem a opção de permitir que o gkeadm crie algumas das suas contas de serviço e chaves por si. Nesse caso, gkeadm também concede as funções de gestão de identidade e de acesso adequadas às contas de serviço.

Em alternativa, pode criar as contas de serviço e as chaves manualmente. Nesse caso, tem de conceder manualmente funções de IAM às suas contas de serviço.

A criação manual de contas de serviço oferece-lhe mais flexibilidade do que a criação automática por parte da gkeadm:

  • Todas as contas de serviço criadas automaticamente têm o mesmo projeto principal que a sua conta de serviço de acesso aos componentes.Google Cloud Quando cria uma conta de serviço manualmente, pode escolher o projeto Google Cloud principal.

  • Todas as contas de serviço criadas automaticamente recebem funções de IAM no projeto principal da sua conta de serviço de acesso a componentes. Google Cloud Não há problema se este for o único Google Cloud projeto associado aos seus clusters. No entanto, se quiser associar os seus clusters a vários Google Cloud projetos, precisa da flexibilidade para conceder funções a uma conta de serviço numGoogle Cloud projeto à sua escolha.

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

Independentemente de o Google Cloud Platform gkeadmcriar contas de serviço automaticamente, existe uma conta de serviço que tem de criar manualmente: a conta de serviço de acesso aos componentes. Para obter instruções sobre como criar a conta de serviço de acesso aos componentes e conceder-lhe as funções de IAM adequadas, consulte o artigo Conta de serviço de acesso aos componentes.

Existe outra conta de serviço que pode ter de criar manualmente: a sua conta de serviço de registo de auditoria. Se quiser usar um cliente da API GKE On-Prem para gerir os seus clusters de utilizadores, tem de ativar o registo de auditoria no seu cluster de administrador.

Gerar modelos para os seus ficheiros de configuração

Transfira gkeadm para o seu diretório atual.

Gerar modelos:

./gkeadm create config

O comando anterior criou estes ficheiros no seu diretório atual:

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

Preencher credential.yaml

No credential.yaml, preencha o nome de utilizador e a palavra-passe do vCenter. Por exemplo:

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

Preencher admin-ws-config.yaml

Vários campos em admin-ws-config.yaml já estão preenchidos com valores predefinidos ou gerados. Pode manter os valores preenchidos ou fazer alterações conforme preferir.

Campos que tem de preencher

Preencha os seguintes campos obrigatórios. Para obter informações sobre como preencher os campos, consulte o ficheiro de configuração da estação de trabalho de administração.

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 quiser criar a estação de trabalho de administrador numa pasta de VM do vSphere, preencha o campo vCenter.folder:

vCenter:
folder: "Fill in"

Se a estação de trabalho do administrador estiver protegida por um servidor proxy, preencha o campo proxyURL:

adminWorkstation:
proxyURL: "Fill in"

Se quiser que a estação de trabalho do administrador obtenha o respetivo endereço IP a partir de um servidor DHCP, defina ipAllocationMode como "dhcp" e remova a secção hostconfig:

adminWorkstation:
network:
  ipAllocationMode: "dhcp"

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

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

A iniciar sessão

  1. Inicie sessão com qualquer Conta Google. Isto define a propriedade account do seu SDK:
gcloud auth login
  1. Verifique se a propriedade account do SDK está definida corretamente:
gcloud config list
  1. A Conta Google definida como propriedade do SDK account é denominada conta do SDK. A ferramenta de linha de comandos gkeadm usa a sua conta do SDK para transferir o OVA da estação de trabalho de administração e ativar os serviços no seu projetoGoogle Cloud .

Se optar por que o gkeadm crie automaticamente contas de serviço para si, o gkeadm também usa a sua conta do SDK para criar contas de serviço e chaves, e para conceder funções a contas de serviço. Por isso, é importante que defina a propriedade account do SDK antes de executar gkeadm para criar uma estação de trabalho de administrador.

O resultado mostra os valores da propriedade account do SDK. Por exemplo:

[core]
account = [email protected]
disable_usage_reporting = False
Your active configuration is: [default]

Atribua funções à sua conta do SDK

A sua conta do SDK tem de ter a seguinte função de IAM no projeto Google Cloud principal da sua conta de serviço de acesso a componentes. Isto permite que o gkeadm ative serviços no projeto Google Cloud .

  • serviceUsage.serviceUsageAdmin

Se optar por que as contas de serviço sejam criadas automaticamente para si, a sua conta do SDK também tem de ter as seguintes funções no projeto principal da sua conta de serviço de acesso a componentes.gkeadm Isto permite que o gkeadm crie contas de serviço e chaves.

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

Para conceder funções num Google Cloud projeto, tem de ter determinadas autorizações no Google Cloud projeto. Para ver detalhes, consulte o artigo Conceder, alterar e revogar o acesso a recursos.

Se tiver as autorizações necessárias, pode conceder as funções. Caso contrário, outra pessoa da sua organização tem de lhe conceder as funções.

Para conceder a função necessária à sua 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 o seguinte:

  • PROJECT_ID: o ID do projeto principal Google Cloud da sua conta de serviço de acesso aos componentes

  • ACCOUNT: a sua conta do SDK

Para conceder funções adicionais caso queira que o 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 o seguinte:

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

  • ACCOUNT: a sua conta do SDK

Criar a sua estação de trabalho de administrador

Introduza este comando para criar a sua estação de trabalho de administrador. Se quiser que gkeadm crie as contas de serviço de connect-register e logging-monitoring por si, inclua a flag --auto-create-service-accounts. Se quiser criar essas contas de serviço manualmente, omita a flag.

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

O resultado fornece informações detalhadas sobre a criação da estação de trabalho de administração:

...
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 [email protected]
********************************************************************

Obter uma ligação SSH à sua estação de trabalho de administrador

Perto do final da saída anterior, existe um comando que pode usar para obter uma ligação SSH à sua estação de trabalho de administrador. Introduza esse comando agora. Por exemplo:

ssh -i /usr/local/google/home/me/.ssh/gke-admin-workstation [email protected]

Liste os ficheiros na sua estação de trabalho de administrador:

ls -1

Na saída, pode ver dois ficheiros de configuração do cluster, o ficheiro de certificado da AC e o ficheiro de chave JSON para a conta de serviço de acesso aos componentes. Se o gkeadm criou contas de serviço para si, também pode ver os ficheiros de chaves JSON dessas contas de serviço. Por 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 aos componentes na sua estação de trabalho de administrador:

gcloud config get-value account

Copiar ficheiros de chaves JSON para a sua estação de trabalho de administração

Antes de criar um cluster, os ficheiros de chaves JSON das suas contas de serviço têm de estar na estação de trabalho de administração no diretório base.

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

Se incluiu a flag --auto-create-service-accounts quando executou o comando gkeadm create admin-workstation, as chaves das seguintes contas de serviço já estão na sua estação de trabalho de administrador no diretório inicial. Caso contrário, tem de copiar manualmente as chaves para o diretório base da sua estação de trabalho de administrador:

  • Associe e registe uma conta de serviço
  • Conta de serviço de registo e monitorização

Se criou alguma das seguintes contas de serviço, tem de copiar manualmente as chaves dessas contas de serviço para o diretório principal da sua estação de trabalho de administrador:

  • Conta de serviço de registo de auditoria
  • Conta de serviço da Autorização binária

Restaurar a estação de trabalho de administração a partir de um ficheiro de cópia de segurança

Quando atualiza uma estação de trabalho de administrador, o comando gkeadm upgrade guarda um ficheiro de cópia de segurança. Posteriormente, se já não tiver uma estação de trabalho de administrador ou se tiver perdido alguns dos ficheiros que estavam na estação de trabalho de administrador atualizada, pode usar este ficheiro de cópia de segurança para criar uma estação de trabalho de administrador que é restaurada para o que estava em vigor imediatamente após a atualização.

Para criar uma estação de trabalho de administrador a partir de um ficheiro de cópia de segurança, 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 do administrador.

Gerido pelo utilizador

Escolha um computador para servir como estação de trabalho de administrador. Pode usar o Ubuntu ou o Red Hat Enterprise Linux (RHEL). Estes são os requisitos:

  • Ubuntu 20.04 LTS ou 22.04 LTS

    • 4 núcleos de CPU
    • 8 GiB de RAM
    • 100 GiB de armazenamento
  • RHEL 8.6, 8.7 ou 8.8

    • 4 núcleos de CPU
    • 12 GB de RAM
    • 256 GiB de armazenamento

Acesso a Google Cloud

A sua estação de trabalho de administrador tem de ter acesso à Internet para transferir e instalar ferramentas, processar pedidos de autorização, criar contas de serviço e muito mais. Google Cloud

Para ver informações sobre diferentes formas de estabelecer ligação ao Google Cloud, consulte o artigo Estabelecer ligação ao Google.

O acesso ao Google Cloud pode ser direto ou através de um servidor proxy. Para obter informações sobre as regras de firewall e a configuração de um servidor proxy, consulte o artigo Regras de proxy e firewall.

Acesso ao vCenter Server

Para criar e gerir clusters a partir da sua estação de trabalho de administração, precisa de acesso à sua instância do vCenter Server. Para mais informações, consulte:

Configure um servidor NTP

Quando o cluster está configurado para usar um servidor NTP, tem de configurar um serviço de sincronização de tempo na estação de trabalho de administração para garantir que o timedatectl comunica a hora sincronizada com o cluster. Isto é necessário para evitar grandes problemas de desvio de tempo, que podem causar falhas na validação de certificados devido a datas de validade não correspondentes.

Ubuntu

Recomendamos que use o chrony servidor de tempo.

Para instalar o chrony:

sudo apt-get update
sudo apt install chrony

Isto fornece dois ficheiros binários:

  • chronyd: o daemon para sincronizar e publicar através do Network Time Protocol
  • chronyc: a interface de linhas de comando para o daemon chrony

Para configurar o chronyd:

Edite /etc/chrony/chrony.conf para adicionar ou remover linhas de servidores. Em seguida, reinicie o dispositivo chrony:

sudo systemctl restart chrony.service

RHEL

Recomendamos que use o chrony servidor de tempo.

Para ver instruções de instalação, consulte o artigo Como configurar o chrony.

Sudo sem palavra-passe

Se a sua política de segurança o permitir, ative o sudo sem palavra-passe para o utilizador atual. Isto permite que o gkectl prepare um registo privado, se for fornecido, configure o proxy para o Docker se a sua rede estiver atrás de um servidor proxy e force a eliminação do cluster de arranque usado para operações do ciclo de vida do cluster de administrador, caso a eliminação falhe.

Se optar por não ativar o sudo sem palavra-passe e pretender usar um registo privado para o cluster de administrador, faça a seguinte configuração manual antes de criar o cluster de administrador:

Se optar por não ativar o sudo sem palavra-passe, pode ter de eliminar manualmente o cluster kind depois de criar um cluster de administrador. Para mais informações, consulte O cluster do Kind não é eliminado na documentação de resolução de problemas.

Instale software

Ubuntu

Instale o seguinte software:

sudo apt-get update
sudo apt-get -y install kubectl

RHEL

Instale o seguinte software:

Docker 19.03 ou posterior

  1. Remova qualquer versão anterior do Docker:

    sudo dnf remove docker \
      docker-client \
      docker-client-latest \
      docker-common \
      docker-latest \
      docker-latest-logrotate \
      docker-logrotate \
      docker-engine
    
  2. Remova podman-manpages:

    sudo dnf remove podman-manpages
    
  3. Instale o Docker 19.03 ou superior:

    sudo dnf install -y yum-utils
    
    sudo yum-config-manager \
      --add-repo \
      https://download.docker.com/linux/centos/docker-ce.repo
    
    sudo dnf install -y --allowerasing docker-ce docker-ce-cli containerd.io
    
    sudo systemctl start docker
    
  4. Verifique se está a executar a versão 19.03 ou superior:

    sudo docker version
    
  5. Compare a sua saída com o exemplo seguinte para garantir que as versões do cliente e do servidor são 19.03 ou superiores:

    Client: Docker Engine - Community
    Version:           19.03.13
    ...
    Server: Docker Engine - Community
    Engine:
    Version:          19.03.13
    
  6. Valide as execuções do Docker:

    docker run hello-world
    

    Deve ver algo semelhante ao seguinte:

    Hello from Docker!
    

    Esta mensagem mostra que a instalação parece estar a funcionar corretamente.

Versão mais recente da CLI do Google Cloud:

Consulte o artigo Instale a CLI gcloud.

kubectl

Corrida gcloud components install kubectl.

Iniciar sessão

A Conta Google definida como propriedade do SDK account é denominada conta do SDK. A ferramenta de linhas de comando gkectl usa a sua conta do SDK para transferir OVAs de nós de cluster, extrair imagens de contentores e muito mais. Por isso, é importante que defina a propriedade da conta do SDK antes de executar comandos gkectl

Inicie sessão com qualquer Conta Google. Isto define a propriedade account do seu SDK:

gcloud auth login

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

gcloud config list

O resultado mostra os valores da propriedade account do SDK. Por exemplo:

[core]
account = [email protected]
disable_usage_reporting = False
Your active configuration is: [default]

Transfira o gkectl e o pacote

Navegue para um diretório onde quer instalar o gkectl.

Transferir gkectl:

gcloud storage cp gs://gke-on-prem-release/gkectl/VERSION/gkectl ./
chmod +x gkectl

Substitua VERSION pela versão do Google Distributed Cloud. Por exemplo: 1.16.0-gke.1.

Transfira o pacote do Google Distributed Cloud. Certifique-se de que a versão corresponde à que usou para transferir o gkectl:

gcloud storage cp gs://gke-on-prem-release/gke-onprem-bundle/VERSION/gke-onprem-vsphere-VERSION.tgz ./

Contas de serviço e chaves

Certifique-se de que criou as seguintes contas de serviço e ficheiros de chaves JSON obrigatórios:

Certifique-se também de que criou todas as contas de serviço opcionais e os ficheiros de chave JSON de que precisa:

Coloque todos os ficheiros de chaves JSON no diretório base da sua estação de trabalho de administrador.

Resolução de problemas

A secção seguinte reativa o acesso SSH à estação de trabalho de administração no caso de a chave SSH ser perdida ou ficar danificada.

Recuperação de chaves SSH

Use uma VM temporária para realizar os seguintes passos:

  1. Para gerar um novo conjunto de chaves SSH, siga as instruções em Criar chaves SSH na documentação do Compute Engine.

  2. Verifique se a VM temporária e a estação de trabalho do administrador estão no estado Powered Off.

  3. No vSphere, anexe o disco de arranque da estação de trabalho de administração à VM temporária.

    O disco de arranque tem a etiqueta Hard disk 1.

  4. Monte o disco de arranque na VM executando os seguintes comandos:

    sudo mkdir -p /mnt/boot-disk
    sudo mount DISK_ID /mnt/boot-disk
    

    Substitua DISK_ID pelo identificador do disco de arranque, que deve ter um formato semelhante a dev/sdc1.

  5. Edite o ficheiro authorized_keys no disco de arranque para acrescentar o conteúdo do ficheiro de chave pública gerado no primeiro passo:

    vi /mnt/boot-disk/.ssh/authorized_keys
    
  6. Encerre a VM temporária.

  7. Ligue a estação de trabalho de administração.

  8. Use a chave privada gerada recentemente para aceder à estação de trabalho do administrador.

    ssh -i ~/.ssh/new-admin-ws.key ubuntu@"${ADMIN_WS_IP}"
    

Use a chave privada gerada recentemente para continuar a aceder à sua estação de trabalho de administração.

O que se segue?

Crie um cluster de administrador