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 comandosgkectl
. - 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 gkeadm
criar 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
- 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
- A Conta Google definida como propriedade do SDK
account
é denominada conta do SDK. A ferramenta de linha de comandosgkeadm
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 componentesACCOUNT
: 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 componentesACCOUNT
: 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:
- Requisitos do vSphere
- Determine o endereço do servidor vCenter
- Obter o certificado de raiz da AC do vCenter
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 Protocolchronyc
: a interface de linhas de comando para o daemonchrony
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:
Coloque o certificado de raiz da AC para o registo privado neste diretório:
/etc/docker/certs.d/REGISTRY_ADDRESS/
Substitua REGISTRY_ADDRESS pelo endereço da máquina que executa o registo privado.
Para mais informações, consulte o artigo Valide o cliente do repositório com certificados.
Se a sua rede estiver protegida por um servidor proxy, especifique o servidor proxy no ficheiro de configuração do cluster de administrador e configure o Docker para usar o servidor proxy.
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:
Docker versão 19.03 ou posterior: consulte o artigo Instale o Docker Engine no Ubuntu. Certifique-se de que o utilizador sem acesso de administrador é membro do grupo docker. Consulte o artigo Faça a gestão do Docker como um utilizador não root.
Versão mais recente da CLI do Google Cloud: consulte o artigo Instale a CLI gcloud.
kubectl: execute
gcloud components install kubectl
ou useapt-get
:
sudo apt-get update sudo apt-get -y install kubectl
RHEL
Instale o seguinte software:
Docker 19.03 ou posterior
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
Remova podman-manpages:
sudo dnf remove podman-manpages
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
Verifique se está a executar a versão 19.03 ou superior:
sudo docker version
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
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:
Para gerar um novo conjunto de chaves SSH, siga as instruções em Criar chaves SSH na documentação do Compute Engine.
Verifique se a VM temporária e a estação de trabalho do administrador estão no estado
Powered Off
.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
.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 adev/sdc1
.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
Encerre a VM temporária.
Ligue a estação de trabalho de administração.
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