Istio no GKE

O que é o Istio?

O Istio é uma malha de serviço aberta que oferece um jeito uniforme de conectar, gerenciar e proteger microsserviços. Ele é compatível com o gerenciamento de fluxos de tráfego entre serviços, aplicando políticas de acesso e agregando dados de telemetria, tudo sem exigir alterações no código de microsserviço.

O Istio oferece o seguinte:

  • Balanceamento de carga automático para tráfego HTTP, gRPC, WebSocket, MongoDB e TCP.
  • Controle detalhado do comportamento do tráfego com regras de roteamento avançadas, novas tentativas, failovers e injeção de falhas.
  • Uma camada de política configurável e uma API compatíveis com controles de acesso, limites de taxa e cotas.
  • Métricas, registros e rastreamentos automáticos para todo o tráfego dentro de um cluster, incluindo entrada e saída do cluster.
  • Comunicação segura de serviço a serviço em um cluster com autenticação e autorização fortes baseadas em identidade.

Configure o controle de acesso do Istio, as regras de roteamento e muito mais usando uma API Kubernetes personalizada por meio do kubectl ou da ferramenta de linha de comando do Istio istioctl, que fornece validação extra.

Saiba mais sobre o Istio na documentação de código aberto em istio.io (em inglês).

O que é o Anthos Service Mesh?

O Anthos Service Mesh é a distribuição totalmente compatível do Istio do Google. Como o Anthos Service Mesh é compatível com as APIs do Istio, ele oferece todos os benefícios da malha de serviço do Istio e muito mais:

Anthos Service Mesh

Para começar a explorar os recursos do Anthos Service Mesh, consulte o Guia de início rápido do Anthos Service Mesh para o GKE.

O que é o Istio no GKE?

O Istio no GKE é uma ferramenta que fornece instalação automatizada e upgrade do Istio no cluster do GKE. Quando você faz upgrade do GKE, o complemento é atualizado automaticamente para a versão mais recente compatível com o GKE. Isso facilita o gerenciamento da instalação e do upgrade do Istio como parte do ciclo de vida do cluster do GKE.

Observe que, ao usar o Istio no GKE, ele é executado dentro do cluster. Não há contrato de nível de serviço (SLA) nos componentes do Istio em execução no cluster.

Devo usar o Istio no GKE?

Embora o Istio no GKE gerencie a instalação e os upgrades, ele usa opções de instalação padrão no plano de controle que limitam as opções de configuração. Devido a essas limitações e ao status Beta do produto, os clientes não devem usar este complemento em produção. O Anthos Service Mesh é uma opção melhor para cargas de trabalho de produção.

As limitações do complemento incluem:

  • A versão do Istio instalada está vinculada à versão do GKE, e não será possível atualizá-la de maneira independente.

  • limitações fortes na configuração do plano de controle. Devido a essas limitações, recomendamos que você não use o complemento do Istio no GKE em produção.

  • Embora esse instalador de complemento faça parte do GKE, a instalação resultante do Istio não é um produto compatível com o Google. Para quem quer um produto compatível, o Anthos Service Mesh é uma opção melhor.

Se você precisar usar uma versão mais recente do Istio ou quiser maior controle sobre a configuração do plano de controle do Istio (o que pode acontecer em alguns casos de uso de produção), recomendamos usar o {101 }.Malha de serviço Anthos para começar.

Se você não quiser mais usar nossa funcionalidade de instalação automática por qualquer motivo, desinstale o complemento. Veja como fazer isso em Como desinstalar o Istio no GKE.

O que está instalado?

Quando você cria ou atualiza um cluster com o Istio no GKE, os seguintes componentes principais do Istio são instalados:

A instalação também permite adicionar o proxy sidecar do Istio às cargas de trabalho do serviço, permitindo que eles se comuniquem com o plano de controle e participem da malha do Istio.

Saiba mais sobre como instalar e desinstalar o complemento e as opções de instalação dele em Como instalar o Istio no GKE.

Suporte do Cloud Monitoring

Para clusters com o Google Kubernetes Engine Monitoring ativado, o adaptador do Stackdriver no Istio é instalado com os componentes principais descritos acima. O adaptador pode enviar métricas, fazer registros e rastrear dados da sua malha para o Cloud Logging, Cloud Monitoring ou Cloud Trace, oferecendo observabilidade sobre o comportamento dos serviços no Console do Google Cloud. Depois de ativar um determinado recurso do Cloud Logging, do Cloud Monitoring ou do Cloud Trace para seu projeto e cluster, esses dados serão enviados da sua malha por padrão. O complemento do Istio no GKE define automaticamente os escopos de acesso no pool de nós do cluster para o Cloud Monitoring, Logging e Trace.

Monitorar

Se a API Cloud Monitoring estiver ativada no projeto do Google Cloud, a malha do Istio enviará automaticamente métricas relacionadas aos serviços (como o número de bytes recebidos por um serviço específico) para o Monitoring, onde eles serão exibidos no Metrics Explorer. É possível usar essas métricas para criar painéis e alertas personalizados, permitindo que você monitore seus serviços ao longo do tempo e receba alertas quando, por exemplo, um serviço estiver próximo de um número especificado de solicitações. Também é possível combinar essas métricas usando filtros e agregações com as métricas integradas do Monitoring para ter novos insights sobre o comportamento do serviço.

Para visualizar as métricas de um recurso monitorado usando o Metrics Explorer, faça o seguinte:

  1. No Console do Google Cloud, acesse Monitoring ou use o botão
    Acessar Monitoring
  2. No painel de navegação do Monitoring, clique em Metrics Explorer.
  3. Digite o nome do recurso monitorado na caixa de texto Find resource type and metric.

Para uma lista completa das métricas do Istio, consulte a documentação do Cloud Monitoring.

Logging

Se a API Cloud Logging estiver ativada no projeto do Google Cloud, a malha do Istio enviará automaticamente os registros para o Logging, onde eles aparecerão no Visualizador de registros. Consulte a documentação do Cloud Logging para saber mais sobre o que é possível fazer com os dados de registro, como exportar registros para o BigQuery.

Rastreamento

Ative o Cloud Trace para que a malha do Istio envie automaticamente os dados de rastreamento para o Cloud Trace, onde ele aparece no visualizador de traces. Para aproveitar ao máximo o rastreamento distribuído a fim de ajudar a encontrar os gargalos de desempenho, é necessário alterar suas cargas de trabalho para os cabeçalhos de rastreamento de instrumentos. É possível descobrir como fazer isso no guia do Rastreamento distribuído do Istio.

Como funciona o processo de upgrade?

O ciclo de vida do Istio é gerenciado como parte do processo de upgrade do GKE. No GKE, existem dois processos de upgrade:

  • Upgrade mestre: o processo de upgrade mestre é automático e atualiza os componentes do plano de controle do Kubernetes (servidor da API, programador, gerenciador do controlador e outros) no nó mestre e nos complementos. O upgrade dos componentes do plano de controle do Istio é gerenciado como parte desse processo.
  • Atualização de nós: o processo de upgrade do nó pode ser automático (opcional, o que é recomendado) ou manual, o que atualiza os componentes do Kubernetes nos nós do worker para serem sincronizados com a mesma versão do nó mestre. O upgrade do arquivo secundário do Istio é gerenciado como parte desse processo.

O Istio no GKE atualiza automaticamente o plano de controle para uma versão estável recente (não necessariamente mais recente). A versão é selecionada com base na estabilidade e no desempenho observado em implantações de código aberto ao longo de um período. Os upgrades de versão são anunciados com antecedência no grupo istio-gke-announce. Em geral, os upgrades de versão são lançados gradualmente para todas as versões do GKE em um período de duas ou mais semanas, começando com a versão mais recente.

As versões do plano de controle são testadas para compatibilidade com versões anteriores com as duas últimas versões do plano de dados (proxy sidecar) anteriores. Depois de fazer upgrade do cluster do GKE, recomendamos que você atualize os arquivos secundários para a versão atual do plano de controle o mais rápido possível. Para isso, reinicie os pods (com a injeção automática ativada) ou reinjete a versão apropriada manualmente.

O Istio no GKE não permite que o usuário controle a versão do plano de controle.

Como modificar as configurações do plano de controle

Como o Istio no GKE controla como o plano de controle é instalado e atualizado, não é possível editar a maioria das configurações do plano de controle fornecidas em nossa instalação. É possível ver as opções de instalação padrão nos manifestos da versão do Istio na versão do GKE, que é aplicada dependendo do modo mTLS escolhido e das configurações do Cloud Logging, Cloud Monitoring ou Cloud Trace. Por exemplo, é possível encontrar as opções de instalação para a versão 1.0.3-gke.3 no console em storage/browser/gke-release/istio/release/1.0.3-gke.3/manifests/. Qualquer edição nestas opções, exceto as especificadas abaixo, será revertida pelo gerenciador de complementos do Kubernetes. As opções não editáveis são revertidas a cada minuto.

As configurações que você pode (e, para instalações de produção, deve) definir enquanto usa o complemento:

  • Escalonamento horizontal para componentes do plano de controle, usando o escalonamento automático ou definindo manualmente o número de réplicas.
  • Solicitações de recursos para contêineres do plano de controle.
  • Orçamentos de interrupção de pod para implantações que você precisa manter disponíveis durante os upgrades, como o gateway de entrada do Istio fornecido.

Saiba como definir essas configurações em Como configurar o plano de controle.

Em cada caso, as configurações especificadas são mantidas quando a instalação é atualizada pelo complemento.

A seguir