Nesta página, mostramos como configurar um cluster híbrido do Google Distributed Cloud no modo de alta disponibilidade (HA) usando máquinas virtuais (VMs) em execução no Compute Engine.
Você pode testar o Google Distributed Cloud rapidamente e sem precisar preparar hardwares. Ao concluir as etapas desta página, você terá um ambiente de teste da Google Distributed Cloud em execução no Compute Engine.
Para testar o Google Distributed Cloud em VMs do Compute Engine, conclua as etapas a seguir:
- Crie seis VMs no Compute Engine
- Crie uma rede
vxlan
entre todas as VMs com conectividade L2 - Instalar pré-requisitos para o Google Distributed Cloud
Antes de começar
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
- Anote o ID do projeto porque você precisa definir uma variável de ambiente usada nos scripts e comandos desta página. Se você selecionou um projeto atual, verifique se é proprietário ou editor de um projeto.
-
Na estação de trabalho do Linux, verifique se você instalou a versão mais recente da
Google Cloud CLI, a ferramenta de linha de comando para
interagir com o Google Cloud. Se você já instalou a CLI gcloud, atualize seus componentes executando o seguinte comando:
gcloud components update
Dependendo de como a CLI gcloud foi instalada, você poderá ver a seguinte mensagem: "Não é possível realizar esta ação porque o gerenciador de componentes da CLI do Google Cloud está desativado para esta instalação. Execute o comando a seguir para atingir o mesmo resultado para esta instalação:" Siga as instruções para copiar e colar o comando e atualizar os componentes.
As etapas deste guia foram extraídas do script de instalação no repositório anthos-samples
. A seção Perguntas frequentes tem mais informações sobre como personalizar esse script para funcionar com algumas variações conhecidas.
Crie seis VMs no Compute Engine
Conclua estas etapas para criar as VMs a seguir:
- Uma VM para a estação de trabalho do administrador. Uma estação de trabalho do 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. A estação de trabalho do administrador terá acesso a todos os outros nós no cluster via SSH.
- Três VMs para os três nós do plano de controle necessários para executar o plano de controle do Google Distributed Cloud.
- Duas VMs para os dois nós de trabalho necessários para executar cargas de trabalho no cluster do Google Distributed Cloud.
Configurar as variáveis de ambiente:
export PROJECT_ID=PROJECT_ID export ZONE=ZONE export CLUSTER_NAME=CLUSTER_NAME export BMCTL_VERSION=1.30.100-gke.96
Para o
ZONE
, é possível usarus-central1-a
ou qualquer uma das outras zonas do Compute Engine.Execute os seguintes comandos para fazer login com sua Conta do Google e definir o projeto como padrão:
gcloud auth login gcloud config set project $PROJECT_ID gcloud config set compute/zone $ZONE
Crie a conta de serviço e a chave
baremetal-gcr
:Ative os serviços e as APIs do Google Cloud:
Conceda à conta de serviço
baremetal-gcr
permissões adicionais para evitar a necessidade de várias contas de serviço para diferentes APIs e serviços:Crie as variáveis e matrizes necessárias para todos os comandos nesta página:
Use a seguinte repetição para criar seis VMs:
Este comando cria instâncias de VM com os seguintes nomes:
- abm-ws: a VM para a estação de trabalho do administrador.
- abm-cp1, abm-cp2, abm-cp3: as VMs dos nós do plano de controle.
- abm-w1, abm-w2: as VMs dos nós que executam cargas de trabalho.
Use a seguinte repetição para verificar se o SSH está pronto em todas as VMs:
Crie uma rede vxlan
com conectividade L2 entre VMs
Use a funcionalidade vxlan
padrão do Linux para criar uma rede que
conecte todas as VMs com conectividade L2.
O comando a seguir contém duas repetições que realizam as seguintes ações:
- SSH em cada VM.
- Atualiza e instala os pacotes necessários.
Execute os comandos necessários para configurar a rede com
vxlan
.
Agora você tem conectividade L2 na rede 10.200.0.0/24. As VMs têm os seguintes endereços IP:
- VM da estação de trabalho de administração: 10.200.0.2
- VMs que executam os nós do plano de controle:
- 10.200.0.3
- 10.200.0.4
- 10.200.0.5
- VMs que executam os nós de trabalho:
- 10.200.0.6
- 10.200.0.7
Instalar pré-requisitos para o Google Distributed Cloud
Você precisa instalar as seguintes ferramentas na estação de trabalho de administrador antes de instalar o Google Distributed Cloud:
bmctl
kubectl
- Docker
Para instalar as ferramentas e se preparar para a instalação do Google Distributed Cloud:
Execute os comandos a seguir para fazer o download da chave da conta de serviço para a estação de trabalho do administrador e instalar as ferramentas necessárias:
Execute os seguintes comandos para garantir que
root@10.200.0.x
funcione. Os comandos executam estas tarefas:- Geram uma nova chave SSH na estação de trabalho de administração.
- Adicionam a chave pública a todas as outras VMs na implantação.
Implantar um cluster híbrido do Google Distributed Cloud
O bloco de código a seguir contém todos os comandos e configurações necessários para concluir as seguintes tarefas:
- Criar o arquivo de configuração para o cluster híbrido necessário.
- Executar as verificações de simulação.
- Implantar o cluster.
Verifique o cluster
É possível encontrar o arquivo kubeconfig
do cluster na estação de trabalho de administrador no
diretório bmctl-workspace
da conta raiz. Para verificar a implantação, conclua as etapas a seguir.
Execute SSH na estação de trabalho do administrador como raiz:
gcloud compute ssh root@abm-ws --zone ${ZONE}
Você pode Ignorar todas as mensagens sobre atualização da VM e concluir este tutorial. Se você planeja manter as VMs como um ambiente de teste, talvez queira atualizar o SO ou fazer upgrade para a próxima versão, conforme descrito na documentação do Ubuntu.
Defina a variável de ambiente
KUBECONFIG
com o caminho para o arquivo de configuração do cluster para executar comandoskubectl
no cluster.export clusterid=CLUSTER_NAME export KUBECONFIG=$HOME/bmctl-workspace/$clusterid/$clusterid-kubeconfig kubectl get nodes
Defina o contexto atual em uma variável de ambiente:
export CONTEXT="$(kubectl config current-context)"
Execute o seguinte comando
gcloud
. Esse comando:- Concede à conta de usuário o papel
clusterrole/cluster-admin
do Kubernetes no cluster. - Configura o cluster para que você possa executar os comandos
kubectl
no computador local sem precisar executar o SSH na estação de trabalho do administrador.
Substitua
GOOGLE_ACCOUNT_EMAIL
pelo endereço de e-mail associado à sua conta do Google Cloud. Por exemplo,--users=alex@example.com
.gcloud container fleet memberships generate-gateway-rbac \ --membership=CLUSTER_NAME \ --role=clusterrole/cluster-admin \ --users=GOOGLE_ACCOUNT_EMAIL \ --project=PROJECT_ID \ --kubeconfig=$KUBECONFIG \ --context=$CONTEXT\ --apply
A saída desse comando é semelhante à seguinte, truncada para facilitar a leitura:
Validating input arguments. Specified Cluster Role is: clusterrole/cluster-admin Generated RBAC policy is: -------------------------------------------- ... Applying the generate RBAC policy to cluster with kubeconfig: /root/bmctl-workspace/CLUSTER_NAME/CLUSTER_NAME-kubeconfig, context: CLUSTER_NAME-admin@CLUSTER_NAME Writing RBAC policy for user: GOOGLE_ACCOUNT_EMAIL to cluster. Successfully applied the RBAC policy to cluster.
- Concede à conta de usuário o papel
Quando terminar, insira exit para sair da estação de trabalho do administrador.
Receba a entrada
kubeconfig
que pode acessar o cluster pelo gateway de conexão.gcloud container fleet memberships get-credentials CLUSTER_NAME
O resultado será assim:
Starting to build Gateway kubeconfig... Current project_id: PROJECT_ID A new kubeconfig entry "connectgateway_PROJECT_ID_global_CLUSTER_NAME" has been generated and set as the current context.
Agora é possível executar comandos
kubectl
pelo gateway do Connect:kubectl get nodes kubectl get namespaces
Fazer login no cluster pelo console do Google Cloud
Para observar as cargas de trabalho na Google Distributed Cloud no console do Google Cloud, é necessário fazer login no cluster. Antes de fazer login no console pela primeira vez, você precisa configurar um método de autenticação. O método de autenticação mais fácil de configurar é a identidade do Google. Esse método de autenticação permite fazer login usando o endereço de e-mail associado à sua conta do Google Cloud.
O comando gcloud container fleet memberships generate-gateway-rbac
que você executou na seção anterior configura o cluster para que você possa fazer login com sua identidade do Google.
No console do Google Cloud, acesse a página Clusters do GKE.
Clique em
Ações ao lado do cluster registrado e em Fazer login.Selecione Usar a identidade do Google para fazer login.
Clique em Login.
Limpar
Conecte-se à estação de trabalho de administração para redefinir as VMs do cluster para o estado antes da instalação e cancelar o registro do cluster do projeto do Google Cloud:
gcloud compute ssh root@abm-ws --zone ${ZONE} << EOF set -x export clusterid=CLUSTER_NAME bmctl reset -c \$clusterid EOF
Liste todas as VMs que têm
abm
no nome:gcloud compute instances list | grep 'abm'
Verifique se não há problemas em excluir todas as VMs que contêm
abm
no nome.Depois de verificar, você pode excluir as VMS
abm
executando o comando a seguir:gcloud compute instances list --format="value(name)" | grep 'abm' | xargs gcloud \ --quiet compute instances delete