Versão 1.9

Instalação, migração e upgrade para o GKE

Neste guia, explicamos como instalar, migrar ou fazer upgrade para a versão 1.9.3 do Anthos Service Mesh para uma malha contendo um ou mais clusters do GKE que estão no mesmo projeto. Você usa um script fornecido pelo Google, que configura o projeto e o cluster e, em seguida, instala o Anthos Service Mesh usando istioctl install.

Use este guia e o script para os seguintes casos de uso integrados:

Pré-requisitos

Este guia pressupõe que você já tem:

Diferenças entre o Anthos e o Anthos Service Mesh

O Anthos Service Mesh está disponível no Anthos ou como um serviço independente. As APIs do Google são usadas para determinar como você é cobrado. Para usar o Anthos Service Mesh como um serviço independente, não ative a API Anthos no seu projeto. O script ativa para você todas as outras APIs do Google necessárias . Para mais informações sobre preços do Anthos Service Mesh, consulte Preços.

  • Assinantes do Anthos. certifiquem-se de ativar a API Anthos.

    Ativar a API

  • Se você não for um assinante do Anthos, ainda poderá instalar o Anthos Service Mesh, mas determinados elementos e recursos da IU no Console do Google Cloud estão disponíveis apenas para assinantes do Anthos. Para informações sobre o que está disponível para assinantes e não assinantes, consulte Diferenças na IU do Anthos Service Mesh.

  • Se você ativou a API Anthos, mas quer usar o Anthos Service Mesh como um serviço independente, desative a API Anthos.

Requisitos

  • Seu cluster do GKE precisa atender aos seguintes requisitos:

    • O cluster do GKE precisa ser Padrão, porque os clusters do Autopilot têm limitações de Webhooks que não permitem a MutatingWebhookConfiguration para o istio-sidecar-injector.

    • Um tipo de máquina que tem pelo menos 4 vCPUs, como e2-standard-4. Se o tipo de máquina do cluster não tiver pelo menos 4 vCPUs, altere o tipo de máquina conforme descrito em Como migrar cargas de trabalho para diferentes tipos de máquina.

    • O número mínimo de nós depende do seu tipo de máquina. O Anthos Service Mesh requer pelo menos 8 vCPUs. Se o tipo de máquina tiver 4 vCPUs, o cluster precisará ter pelo menos 2 nós. Se o tipo de máquina tiver 8 vCPUs, o cluster precisará apenas de 1 nó. Se for preciso adicionar nós, veja Como redimensionar um cluster.

    • Por padrão, o script ativa a Identidade da carga de trabalho no cluster. A identidade da carga de trabalho é o método recomendado para chamar APIs do Google. A ativação da Identidade da carga de trabalho altera a forma como as chamadas das cargas de trabalho para as APIs do Google são protegidas, conforme descrito em Limitações da Identidade da carga de trabalho.

      Se você estiver fazendo uma nova instalação e planejar usar a autoridade de certificação do Anthos Service Mesh (Mesh CA), use o pool de identidade da carga de trabalho do ambiente como uma alternativa à identidade da carga de trabalho do GKE. Para usar a CA da malha com o ambiente (Pré-visualização), siga as etapas de Como registrar um cluster antes de executar o script ou inclua a sinalização --enable-registration ao executar o script. Isso permitirá que ele registre o cluster no projeto em que ele está. Veja um exemplo de execução do script para usar o pool de identidade de carga de trabalho do ambiente em Ativar CA da malha com o ambiente.

    • Como opção recomendada, inscreva o cluster em um canal de lançamento. Recomendamos que você se inscreva no canal de lançamento regular porque outros canais podem estar baseados em uma versão do GKE que não é compatível com o 1.9.3 do Anthos Service Mesh. Saiba mais em Ambientes compatíveis. Siga as instruções em Como registrar um cluster existente em um canal de lançamento se você tiver uma versão estática do GKE.

  • Para serem incluídos na malha de serviço, as portas precisam ser nomeadas, e o nome precisa incluir o protocolo da porta na seguinte sintaxe: name: protocol[-suffix], em que os colchetes indicam um sufixo opcional que precisa começar com um traço. Saiba mais em Como nomear portas de serviço.

  • Se você estiver instalando o Anthos Service Mesh em um cluster particular, abra a porta 15017 no firewall para que o webhook usado com a injeção automática de sidecar funcione corretamente. Para mais informações, consulte Como abrir uma porta em um cluster particular.

  • Se você tiver criado um perímetro de serviço na sua organização, talvez seja necessário adicionar o serviço Mesh CA ao perímetro. Saiba mais em Como adicionar o Mesh CA a um perímetro de serviço.

  • Para migrações, istiod precisa ser instalado no namespace istio-system, o que normalmente acontece.

  • Um projeto do Google Cloud só pode ter uma malha associada a ele.

Como escolher uma autoridade de certificação

Para novas instalações e migrações, é possível usar a autoridade de certificação do Anthos Service Mesh (Mesh CA) ou o Citadel (agora incorporado em istiod) como a autoridade de certificação (CA) para emitir certificados TLS mútuos (mTLS) (em inglês).

Recomendamos que você use a Mesh CA pelos seguintes motivos:

  • A Mesh CA é um serviço altamente confiável e escalonável, otimizado para cargas de trabalho escalonadas dinamicamente no Google Cloud.
  • Com ela, o Google gerencia a segurança e a disponibilidade do back-end da CA.
  • Esta autoridade de certificação possibilita confiar em uma única raiz de confiança entre os clusters.
Por padrão, o script ativa o Mesh CA para novas instalações do Anthos Service Mesh.

No entanto, há casos em que é recomendável usar o Citadel, como os seguintes:

  • Se você tiver uma CA personalizada.
  • Se você estiver migrando do Istio.

    Caso você escolha o Citadel, o tempo de inatividade será breve porque o tráfego mTLS não será interrompido durante a migração. Se você escolher Mesh CA, será necessário agendar o tempo de inatividade para a migração, porque a raiz da confiança é alterada de Citadel para Mesh CA. Para concluir a migração para a raiz de confiança da Mesh CA, é necessário reiniciar todos os pods em todos os namespaces. Durante esse processo, os pods antigos não podem estabelecer conexões mTLS com os novos pods.

Os certificados do Mesh CA incluem os seguintes dados sobre os serviços do aplicativo:

  • O ID do projeto do Google Cloud
  • O namespace do GKE
  • O nome da conta de serviço do GKE

Como registrar o cluster

Você precisa registrar seu cluster com o ambiente para ter acesso à interface de usuário unificada no Console do Cloud. Um ambiente fornece uma maneira unificada de visualizar e gerenciar os clusters e as respectivas cargas de trabalho, incluindo clusters fora do Google Cloud.

Siga as etapas em Como registrar um cluster ou inclua a sinalização --enable-registration ao executar o script para permitir que ele registre o cluster no projeto que está.

Como instalar 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 Cloud.
  2. Selecione seu projeto do Cloud.
  3. Clique no botão Ativar o Cloud Shell na parte superior da janela do Console do Cloud.

    Console do Google Cloud Platform

    Uma sessão do Cloud Shell é aberta dentro de um novo frame na parte inferior do Console do Cloud, e exibe um prompt de linha de comando.

    Sessão do Cloud Shell

  4. Atualize os componentes:

    gcloud components update
    

    O comando responde com uma saída semelhante a esta:

    ERROR: (gcloud.components.update)
    You cannot perform this action because the Cloud SDK component manager
    is disabled for this installation. You can run the following command
    to achieve the same result for this installation:
    
    sudo apt-get update && sudo apt-get --only-upgrade install ...
  5. Copie o comando longo e cole-o para atualizar os componentes.

Computador Linux local

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

    • o SDK do Cloud (a ferramenta de linha de comando gcloud)
    • As ferramentas de linha de comando padrão: awk, curl, grep, sed, sha256sum e tr
    • git
    • kpt
    • kubectl
    • jq
  2. Faça a autenticação com o SDK do Cloud:

    gcloud auth login
    
  3. Atualize os componentes:

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

Como fazer o download do script

Nesta seção, descreveremos como fazer o download do script, definir os parâmetros obrigatórios e opcionais e como executar o script. Para uma explicação detalhada sobre o que o script faz, consulte Noções básicas sobre o script.

  1. Faça o download da versão do script que instala o Anthos Service Mesh 1.9.3 no diretório de trabalho atual:

    curl https://storage.googleapis.com/csm-artifacts/asm/install_asm_1.9 > install_asm
    
  2. Faça o download do SHA-256 do arquivo para o diretório de trabalho atual:

    curl https://storage.googleapis.com/csm-artifacts/asm/install_asm_1.9.sha256 > install_asm.sha256
    
  3. Com os dois arquivos no mesmo diretório, verifique o download:

    sha256sum -c install_asm.sha256
    

    Quando a verificação acabar, o comando gerará: install_asm: OK

  4. Torne o script executável:

    chmod +x install_asm
    

A seguir