Guia de início rápido do Anthos Service Mesh para o GKE

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:

  1. configurar um projeto do Google Cloud;
  2. criar um cluster do GKE com o número mínimo de vCPUs exigido pelo Anthos Service Mesh;
  3. Instalar o Anthos Service Mesh com um plano de controle no cluster
  4. 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. Novos usuários do Google Cloud podem estar qualificados para uma avaliação gratuita.

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

  1. 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.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Verifique se a cobrança está ativada para o seu projeto do Google Cloud.

  4. Enable the Kubernetes Engine API.

    Enable the API

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  6. Verifique se a cobrança está ativada para o seu projeto do Google Cloud.

  7. Enable the Kubernetes Engine API.

    Enable the API

  8. 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 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:

  1. Acesse o Console do Google Cloud.
  2. Selecione seu projeto do Google Cloud.
  3. Clique no botão Ativar Cloud Shell na parte superior da janela do console do Google Cloud.

    Console do Google Cloud Platform

    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.

    Sessão do Cloud Shell

Computador Linux local

  1. Verifique se você tem as seguintes ferramentas instaladas:

  2. Faça a autenticação com a gcloud CLI:

    gcloud auth login
    
  3. Atualize os componentes:

    gcloud components update
    
  4. Verifique se git está no seu caminho para que kpt possa encontrá-lo.

Crie um cluster do GKE

  1. 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
    
  2. 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

  1. 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
    
  2. 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ório anthos-service-mesh e onde faz o download e extrai o arquivo de instalação do Anthos Service Mesh, que contém istioctl, 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

  1. Faça o download da amostra usando kpt:

    kpt pkg get \
    https://github.com/GoogleCloudPlatform/microservices-demo.git/release \
    online-boutique
    
  2. Crie um namespace para o aplicativo:

    kubectl create namespace demo
    
  3. 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ão istiod, que segue o prefixo istio.io/rev=. Neste exemplo, o valor é asm-1106-2.

  4. 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ótulo istio-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 o istio-injection e o rótulo de revisão, todos os comandos kubectl label na documentação do Anthos Service Mesh incluem a remoção do rótulo istio-injection

  5. Implante a amostra no cluster:

    kubectl apply -n demo -f online-boutique
    
  6. 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.

  7. 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.

  1. No console do Google Cloud, acesse Anthos Service Mesh.

    Acesse o Anthos Service Mesh

  2. Selecione o projeto do Google Cloud na lista suspensa na barra de menus.

  3. 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: