Neste tutorial, instale o Anthos Service Mesh 1.10.6-asm.2 usando um
script fornecido pelo Google, install_asm
, em um novo cluster do Google Kubernetes Engine (GKE). Neste tutorial, orientamos você sobre como:
- configurar um projeto do Google Cloud;
- criar um cluster do GKE com o número mínimo de vCPUs exigido pelo Anthos Service Mesh;
- Instalar o Anthos Service Mesh com um plano de controle no cluster
- implantar um aplicativo de amostra para visualizar dados de telemetria nos painéis do Anthos Service Mesh no Console do Google Cloud.
Custos
Neste documento, você usará os seguintes componentes faturáveis do Google Cloud:
Para gerar uma estimativa de custo baseada na projeção de uso deste tutorial, use a calculadora de preços.
Ao concluir este guia de início rápido, exclua o cluster para evitar o faturamento contínuo. Para mais informações, consulte Limpeza.
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.
-
Enable the Kubernetes Engine API.
-
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.
-
Enable the Kubernetes Engine API.
- Anote o ID do projeto.
O Anthos Service Mesh exige outras APIs que são ativadas pelo
script install_asm
. Para manter os custos de faturamento baixos, o script install_asm
não ativa a API GKE Enterprise. Há algumas pequenas diferenças no console do Google Cloud quando a API GKE Enterprise está ativada. Para saber mais sobre essas diferenças, consulte Diferenças na interface do GKE Enterprise e Anthos Service Mesh.
Instale as ferramentas necessárias
É possível executar o script no Cloud Shell ou na máquina local executando o Linux. Todas as ferramentas necessárias são pré-instaladas no Cloud Shell. Observe que o macOS não é compatível porque ele vem com uma versão antiga do bash.
Cloud Shell
O Cloud Shell provisiona uma máquina virtual (VM) g1-small do Compute Engine que executa um sistema operacional Linux baseado em Debian. Veja abaixo as vantagens de usar o Cloud Shell:
O Cloud Shell inclui
gcloud
,kubectl
,kpt
e as outras ferramentas de linha de comando que você precisa.O diretório $HOME do Cloud Shell tem 5 GB de espaço de armazenamento permanente.
É possível escolher os editores de texto:
Editor de código, que você acessa clicando em edit na parte superior da janela do Cloud Shell.
Emacs, Vim ou Nano, que você acessa na linha de comando do Cloud Shell.
Para usar o Cloud Shell:
- Acesse o Console do Google Cloud.
- Selecione seu projeto do Google Cloud.
Clique no botão Ativar Cloud Shell na parte superior da janela do console do Google Cloud.
Uma sessão do Cloud Shell é aberta dentro de um novo frame na parte inferior do console do Google Cloud, e exibe um prompt de linha de comando.
Computador Linux local
Verifique se você tem as seguintes ferramentas instaladas:
- A Google Cloud CLI
- As ferramentas de linha de comando padrão:
awk
,curl
,grep
,sed
etr
. - git
- kpt
- kubectl
- jq
Faça a autenticação com a gcloud CLI:
gcloud auth login
Atualize os componentes:
gcloud components update
Verifique se
git
está no seu caminho para quekpt
possa encontrá-lo.
Crie um cluster do GKE
Execute o comando a seguir para criar o cluster com o número mínimo de vCPUs exigido pelo Anthos Service Mesh. No comando, substitua os marcadores pelas seguintes informações:
- CLUSTER_NAME: o nome do cluster. O nome pode
conter apenas caracteres alfanuméricos em letras minúsculas e
-
. Precisa começar com uma letra e terminar com um caractere alfanumérico e não pode ter mais de 40 caracteres. - PROJECT_ID: o ID do projeto em que o cluster será criado.
- CLUSTER_LOCATION a
zona do cluster, como
us-central1-a
gcloud container clusters create CLUSTER_NAME \ --project=PROJECT_ID \ --zone=CLUSTER_LOCATION \ --machine-type=e2-standard-4 \ --num-nodes=2 \ --workload-pool=PROJECT_ID.svc.id.goog
- CLUSTER_NAME: o nome do cluster. O nome pode
conter apenas caracteres alfanuméricos em letras minúsculas e
Consiga as credenciais de autenticação para interagir com o cluster: Esse comando também define o contexto atual para
kubectl
no cluster.gcloud container clusters get-credentials CLUSTER_NAME \ --project=PROJECT_ID \ --zone=CLUSTER_LOCATION
Faça o download do script de instalação do ASM
Faça o download da versão do script que instala o Anthos Service Mesh 1.10.6 no diretório de trabalho atual:
curl https://storage.googleapis.com/csm-artifacts/asm/install_asm_1.10 > install_asm
Torne o script executável:
chmod +x install_asm
Instale o Anthos Service Mesh
Execute o script install_asm
com as opções a seguir para instalar o Anthos Service Mesh
no cluster que você criou anteriormente. Se você não tiver fechado a página
desde que criou o cluster, os marcadores terão os valores que foram inseridos
para o comando gcloud container clusters create
.
./install_asm \
--project_id PROJECT_ID \
--cluster_name CLUSTER_NAME \
--cluster_location CLUSTER_LOCATION \
--mode install \
--output_dir ./asm-downloads \
--enable_all
O script install_asm
pode levar alguns minutos para ser concluído. O
script gera mensagens informativas para que você possa acompanhar o andamento.
O comando executa install_asm
com as seguintes opções:
--mode install
: executa o script para uma nova instalação e ativa a autoridade de certificação do Anthos Service Mesh (Mesh CA), que é a autoridade de certificação (CA, na sigla em inglês) padrão para instalações.--output_dir ./asm-downloads
: o diretório em que o script faz o download dos arquivos do repositórioanthos-service-mesh
e onde faz o download e extrai o arquivo de instalação do Anthos Service Mesh, que contémistioctl
, amostras e manifestos.--enable-registration
: permite que o script registre o cluster para o projeto em que ele está.--enable_all
: permite que o script ative as APIs do Google necessárias, defina as permissões do Identity and Access Management e faça as atualizações necessárias no cluster, que incluem a ativação da Identidade da carga de trabalho do GKE.
Implante a amostra do Online Boutique
Faça o download da amostra usando
kpt
:kpt pkg get \ https://github.com/GoogleCloudPlatform/microservices-demo.git/release \ online-boutique
Crie um namespace para o aplicativo:
kubectl create namespace demo
Ative a injeção automática de arquivo secundário (injeção automática). Use o comando a seguir para localizar o rótulo no serviço
istiod
, que contém o valor do rótulo de revisão a ser usado em etapas posteriores.kubectl -n istio-system get pods -l app=istiod --show-labels
A saída será assim:
NAME READY STATUS RESTARTS AGE LABELS istiod-asm-1106-2-5788d57586-bljj4 1/1 Running 0 23h app=istiod,istio.io/rev=asm-1106-2,istio=istiod,pod-template-hash=5788d57586 istiod-asm-1106-2-5788d57586-vsklm 1/1 Running 1 23h app=istiod,istio.io/rev=asm-1106-2,istio=istiod,pod-template-hash=5788d57586
Na saída, na coluna
LABELS
, observe o valor do rótulo de revisãoistiod
, que segue o prefixoistio.io/rev=
. Neste exemplo, o valor éasm-1106-2
.Aplique o rótulo de revisão ao namespace. No comando a seguir, REVISION é o valor do rótulo de revisão
istiod
que você anotou na etapa anterior.kubectl label namespace demo istio-injection- istio.io/rev=REVISION --overwrite
Você pode ignorar a mensagem
"istio-injection not found"
na saída. Isso significa que o namespace não tinha o rótuloistio-injection
anteriormente, que é esperado em novas instalações do Anthos Service Mesh ou em novas implantações. Como a injeção automática falha se um namespace tiver oistio-injection
e o rótulo de revisão, todos os comandoskubectl label
na documentação do Anthos Service Mesh incluem a remoção do rótuloistio-injection
Implante a amostra no cluster:
kubectl apply -n demo -f online-boutique
Consiga o endereço IP externo do gateway de entrada.
kubectl get service istio-ingressgateway -n istio-system
A saída é semelhante a:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE istio-ingressgateway LoadBalancer 10.19.247.233 35.239.7.64 80:31380/TCP,443:31390/TCP,31400:31400/TCP 27m
Nesse exemplo, o endereço IP do serviço do gateway de entrada é
35.239.7.64
.Acesse o aplicativo no navegador para confirmar a instalação:
http://EXTERNAL_IP/
Visualize os painéis do Service Mesh
Depois de implantar as cargas de trabalho no seu cluster com os proxies sidecar injetados, acesse as páginas do Anthos Service Mesh no Console do Google Cloud para ver todos os recursos de observabilidade que o Anthos Service Mesh oferece. Observe que leva cerca de um ou dois minutos para que os dados de telemetria sejam exibidos no console do Google Cloud após a implantação das cargas de trabalho.
O acesso ao Anthos Service Mesh no console do Google Cloud é controlado pelo Gerenciamento de identidade e acesso (IAM). Para acessar as páginas do Anthos Service Mesh, um proprietário do projeto precisa conceder aos usuários o papel de Editor ou Visualizador de projeto ou os papéis mais restritivos descritos em Como controlar o acesso ao Anthos Service Mesh no console do Google Cloud.
No console do Google Cloud, acesse Anthos Service Mesh.
Selecione o projeto do Google Cloud na lista suspensa na barra de menus.
Se você tiver mais de uma malha de serviço, selecione a malha na lista suspensa Service Mesh.
Para saber mais, consulte Como explorar o Anthos Service Mesh no Console do Google Cloud.
Limpar
Antes de efetuar a limpeza, se você estiver interessado em saber mais sobre o TLS mútuo, consulte Anthos Service Mesh, por exemplo: mTLS.
Se quiser evitar cobranças adicionais, exclua o cluster:
gcloud container clusters delete CLUSTER_NAME \ --project=PROJECT_ID \ --zone=CLUSTER_LOCATION
Se quiser manter o cluster e remover o aplicativo de amostra do Online Boutique:
kubectl delete namespaces demo
A seguir
Saiba mais sobre estas situações:
- Requisitos de cluster
- As opções e sinalizações do script
install_asm
. - Como implantar serviços
- Os comandos
gcloud
usados neste tutorial