Neste guia, explicamos como instalar ou migrar para o Anthos Service Mesh usando o Istio de código aberto para uma malha que contém vários clusters do GKE no que estão em diferentes projetos do Google Cloud. Para instalações, migrações ou upgrades de um ou mais clusters do GKE no mesmo projeto do Google Cloud, consulte Instalação, migração e upgrade para GKE.
Use o guia para estes casos de uso:
Novas instalações do Anthos Service Mesh 1.7.8.
Migração do Istio 1.6 ou 1.7 de código aberto para o Anthos Service Mesh 1.7.8. Se você tiver uma versão anterior do Istio, será preciso fazer o upgrade antes de migrar para o Anthos Service Mesh.
A configuração de clusters em diferentes projetos do Google Cloud requer o perfil
asm-gcp-multiproject
(Beta). Com
esse perfil:
No momento, os painéis do Anthos Service Mesh no Console do Google Cloud não estão disponíveis. No entanto, ainda é possível ver registros no Cloud Logging e métricas no Cloud Monitoring de cada projeto.
Os outros recursos Padrão compatíveis listados na página Recursos compatíveis do perfil de configuração
asm-gcp-multiproject
estão ativados.
Antes de começar
Veja o que é necessário para seguir este guia:
- Um projeto do Google Cloud.
- Uma conta de faturamento do Cloud.
- Um cluster do GKE que atenda aos requisitos.
Se você estiver migrando do Istio, leia o artigo Como se preparar para migrar do Istio.
Diferenças entre o Anthos e o Anthos Service Mesh
Os assinantes do GKE Enterprise precisam ativar a API GKE Enterprise.
Mesmo que você não seja um assinante do GKE Enterprise, ainda é possível instalar o Anthos Service Mesh, mas alguns elementos e recursos da IU no console do Google Cloud estão disponíveis apenas para assinantes do GKE Enterprise. Para informações sobre o que está disponível para assinantes e não assinantes, consulte Diferenças na interface do GKE Enterprise e Anthos Service Mesh. Para informações sobre os preços do Anthos Service Mesh para não assinantes, consulte Preços.
Requisitos
Como os clusters estão em projetos diferentes, eles precisam estar em uma nuvem privada virtual (VPC) compartilhada. Para ver informações sobre como configurar os clusters, consulte Como configurar clusters com a VPC compartilhada.
Seu cluster do GKE precisa atender aos seguintes requisitos:
Um tipo de máquina que tem pelo menos quatro vCPUs, como
e2-standard-4
. Se o tipo de máquina do cluster não tiver pelo menos quatro 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 oito vCPUs. Se o tipo de máquina tiver quatro vCPUs, o cluster precisará ter pelo menos dois nós. Se o tipo de máquina tiver oito vCPUs, o cluster precisará apenas de um nó. Se for preciso adicionar nós, veja Como redimensionar um cluster.
Para preparar seu cluster antes de instalar o Anthos Service Mesh, ative a Identidade da carga de trabalho. 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.
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.7.8 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 .
Restrições
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.
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, não haverá inatividade porque o tráfego mTLS não será interrompido durante a migração. Se você escolher Mes 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
Suporte a vários clusters
Embora não seja obrigatório no momento, recomendamos que você registre o cluster na frota (anteriormente conhecida como ambiente) do projeto. Uma frota permite organizar clusters para facilitar o gerenciamento de vários deles. Ao registrar os clusters em uma frota, é possível agrupar serviços e outras infraestruturas conforme necessário para aplicar políticas consistentes. Se você tiver clusters em projetos diferentes, será necessário registrar os clusters com o projeto host da frota e não com o projeto em que o cluster foi criado. Para mais informações, consulte Como registrar clusters na frota.
O conceito de um projeto host de frota é importante ao configurar o cluster para ativar as opções exigidas pelo Anthos Service Mesh. A malha de serviço do cluster é identificada com um valor baseado em um número de projeto. Ao configurar clusters em diferentes projetos, você precisa usar o número do projeto host da frota.