Neste documento, mostramos como criar uma estação de trabalho de administrador para o GKE no VMware. A estação de trabalho de administrador hospeda ferramentas de interface de linha de comando (CLI) e arquivos de configuração para provisionar clusters durante a instalação, além de ferramentas de CLI para interagir com clusters provisionados após a instalação.
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).
Há duas maneiras de criar uma estação de trabalho de administrador:
- Use
gkeadm
para criar uma VM de estação de trabalho do administrador no seu ambiente vSphere. Crie uma estação de trabalho de administrador gerenciada pelo usuário em qualquer computador.
gkeadm
A ferramenta de linha de comando gkeadm
está disponível para Linux de 64 bits, Windows 10,
Windows Server 2019 e macOS 10.15 e versões mais recentes.
Antes de começar
Saber o endereço do servidor vCenter.
Conheça seu programa de certificação da CA.
Crie um ou mais projetos do Google 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 você quiser criar a estação de trabalho de administrador dentro de uma pasta da VM do vSphere, preencha o campo vCenter.folder
:
vCenter: folder: "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
- 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 Conta do Google definida como a propriedade do
account
SDK é chamada de conta do SDK. A ferramenta de linha de comandogkeadm
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 do Google 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.
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 componentesACCOUNT
: 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 de uma estação de trabalho de administrador, o comando gkeadm upgrade
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.
Gerenciado pelo usuário
Escolha um computador para servir como a estação de trabalho do administrador. É possível usar o Ubuntu ou o Red Hat Enterprise Linux (AOSP). 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
AOSP 8.6, 8.7 ou 8.8
- 4 núcleos de CPU
- 12 GB de RAM
- 256 GiB de armazenamento
Acesso ao Google Cloud
A estação de trabalho do administrador precisa ter acesso ao Google Cloud para fazer o download e instalar ferramentas, processar solicitações de autorização, criar contas de serviço e muito mais.
Para informações sobre as diferentes maneiras de se conectar ao Google Cloud, consulte Conectar-se ao Google.
O acesso ao Google Cloud pode ser direto ou por um servidor proxy. Para saber mais sobre regras de firewall e configurar um servidor proxy, consulte Regras de proxy e firewall.
Acesso ao servidor vCenter
Para criar e gerenciar clusters na estação de trabalho do administrador, você precisa acessar sua instância do servidor vCenter. Confira mais informações em:
- Requisitos do vSphere
- Determinar o endereço do servidor vCenter
- Como conseguir o certificado raiz da CA do vCenter
Configurar um servidor NTP
Quando o cluster estiver configurado para usar um servidor NTP, você vai precisar configurar um
serviço de sincronização de horário na estação de trabalho do administrador para garantir que timedatectl
informe o horário sincronizado com o cluster. Isso é necessário para evitar grandes
problemas de deslocamento do relógio, o que pode causar falhas na verificação de certificados devido
a datas de validade sem correspondência.
Ubuntu
Recomendamos que você use o servidor de horário chrony
.
Para instalar chrony
:
sudo apt-get update sudo apt install chrony
Isso fornece dois binários:
chronyd
: o daemon para sincronizar e disponibilizar pelo Network Time Protocolchronyc
: a interface de linha de comando do daemonchrony
Para configurar chronyd
:
Edite /etc/chrony/chrony.conf
para adicionar ou remover linhas de servidor. Em seguida, reinicie
chrony
:
sudo systemctl restart chrony.service
RHEL
Recomendamos que você use o servidor de horário chrony
.
Para instruções de instalação, consulte Como configurar o chrony.
sudo sem senha
Se a política de segurança permitir, ative o sudo sem senha para o
usuário atual. Isso permite que gkectl
prepare um registro particular, se houver
um, configure o proxy para o Docker se a rede estiver protegida por um servidor proxy e
force a exclusão do cluster de inicialização usado para operações de ciclo de vida do cluster de
administrador em caso de falha na exclusão.
Se você optar por não ativar o sudo sem senha e pretende usar um registro particular para o cluster de administrador, faça a seguinte configuração manual antes de criar o cluster de administrador:
Coloque o certificado raiz da CA do registro particular neste diretório:
/etc/docker/certs.d/REGISTRY_ADDRESS/
Substitua REGISTRY_ADDRESS pelo endereço da máquina que executa o registro particular.
Para mais informações, consulte Verificar o cliente do repositório com certificados.
Se sua rede estiver protegida por um servidor proxy, especifique o servidor proxy no arquivo de configuração do cluster de administrador e configure o Docker para usar o servidor proxy.
Se você optar por não ativar o sudo sem senha, talvez seja necessário excluir manualmente
o cluster kind
depois de criar um cluster de administrador. Para mais
informações, consulte
O cluster de tipo não é excluído
na documentação de solução de problemas.
Instalar o software
Ubuntu
Instale os seguintes softwares:
Docker versão 19.03 ou mais recente: instale o Docker Engine no Ubuntu. Verifique se o usuário não raiz é membro do grupo do Docker. Consulte Gerenciar o Docker como um usuário não raiz.
Versão mais recente da Google Cloud CLI: consulte Instalar a CLI gcloud.
kubectl: execute
gcloud components install kubectl
ou useapt-get
:
sudo apt-get update sudo apt-get -y install kubectl
RHEL
Instale os seguintes softwares:
Docker 19.03 ou mais recente
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+:
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 você está usando a versão 19.03+:
sudo docker version
Compare o resultado com o exemplo a seguir para garantir que as versões do cliente e do servidor sejam 19.03+ :
Client: Docker Engine - Community Version: 19.03.13 ... Server: Docker Engine - Community Engine: Version: 19.03.13
Verifique se o Docker executa:
docker run hello-world
Você verá algo como:
Hello from Docker!
This message shows that your installation appears to be working correctly.
Versão mais recente da Google Cloud CLI:
Consulte Instalar a CLI gcloud.
kubectl
Execute gcloud components install kubectl
.
Fazer login
A Conta do Google definida como a propriedade
do account
SDK
é chamada de conta do SDK. A ferramenta de linha de comando gkectl
usa sua conta do SDK
para fazer o download de OVAs de nós do cluster, extrair imagens de contêiner e muito mais. Por isso,
é importante definir a propriedade da conta do SDK antes de executar
comandos gkectl
.
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]
Fazer o download do gkectl e do pacote
Navegue até um diretório em que você quer instalar o gkectl
.
Faça o download de gkectl
:
gsutil cp gs://gke-on-prem-release/gkectl/VERSION/gkectl ./ chmod +x gkectl
Substitua VERSION pela versão do GKE no VMware. Por
exemplo: 1.16.0-gke.1
.
Fazer o download do pacote do GKE no VMware. Verifique se a versão corresponde à
que você usou para fazer o download de gkectl
:
gsutil cp gs://gke-on-prem-release/gke-onprem-bundle/VERSION/gke-onprem-vsphere-VERSION.tgz ./
A seguir
Criar um cluster de administrador