Istio no GKE

O Istio on GKE é um complemento para GKE que cria rapidamente um cluster com todos os componentes necessários para produzir e executar uma malha de serviço Istio em uma única etapa. Após a instalação, os componentes do plano de controle do Istio são atualizados automaticamente, sem que seja necessário fazer upgrade para as versões mais recentes. Também é possível usar o complemento para instalar o Istio em um cluster.

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 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 visão geral e leia a documentação completa de código aberto em istio.io.

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.

É importante observar que, ao usar o Istio no GKE, ele será executado dentro do seu 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 o upgrade, ele usa opções de instalação padrão para o plano de controle adequado para a maioria das necessidades. No entanto, você precisa estar ciente destas limitações:

  • 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. Você precisa analisar essas limitações antes de usar o complemento Istio on GKE na produção.

Se você precisar usar uma versão de código aberto mais recente do Istio ou quiser ter mais 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 a versão de código aberto do Istio em vez do complemento do Istio no GKE.

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:

  • O Pilot é responsável pela descoberta de serviços e pela configuração dos proxies sidecar do Envoy para gerenciar o tráfego da malha de serviço.
  • Os componentes do Mixer, Istio-Policy e Istio-Telemetry, aplicam as políticas de uso e reúnem dados de telemetria na malha de serviço.
  • O gateway de entrada do Istio, que fornece um ponto de entrada para o tráfego de fora do cluster.
  • (Apenas versões do Istio 1.0): o gateway de saída do Istio, que permite que os recursos do Istio, como regras de monitoramento e roteamento, sejam aplicados ao tráfego que sai da malha. O gateway de saída do Istio não é instalado por padrão na versão 1.1 e versões posteriores.
  • O Citadel automatiza o gerenciamento de chaves e certificados para o Istio.
  • Galley, que fornece serviços de gerenciamento de configuração para o Istio.

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 a mais recente). A versão é selecionada com base na estabilidade e no desempenho observados 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, reiniciando os pods (com a injeção automática ativada) ou reinjetando manualmente a versão apropriada.

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 do Istio na versão do GKE. O manifeste aplicado depende do modo mTLS escolhido e 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 seu plano de controle.

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

A seguir