Visão geral do 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, aplicação de políticas de acesso e a agregação de dados de telemetria, tudo sem exigir alterações no código de microsserviço.

O Istio oferece os seguintes benefícios:

  • Balanceamento de carga automático para tráfego HTTP, gRPC, WebSocket, MongoDB e TCP.
  • Controle refinado de comportamento de tráfego com regras de roteamento avançadas, novas tentativas, failovers e injeção de falhas.
  • uma camada de política e API configuráveis compatíveis com controles de acesso, limitações 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
  • Proteja a comunicação entre serviços 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 assim por diante usando uma API Kubernetes personalizada, seja por meio de kubectl ou da ferramenta de linha de comando istioctl do Istio, que fornece validação extra.

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

O que é o Anthos Service Mesh?

Recomendamos que os clientes do Google Cloud usem o Anthos Service Mesh, a distribuição totalmente compatível do Google com o Istio. 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

É possível instalar o Anthos Service Mesh no Google Kubernetes Engine (GKE) como um serviço independente, que não requer uma assinatura do Anthos. Para começar a explorar os recursos do Anthos Service Mesh, consulte o guia de início rápido do Anthos Service Mesh para GKE.

O que é o Istio no GKE?

O Istio no Google Kubernetes Engine é uma ferramenta que fornece instalação automatizada e upgrade do Istio no cluster do GKE. Quando você faz upgrade do GKE, o Istio no GKE é atualizado automaticamente para a versão mais recente compatível com o Istio. Isso permite que você gerencie facilmente a instalação e o 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 o Istio no GKE na produção. O Anthos Service Mesh é uma opção melhor para cargas de trabalho de produção.

Limitações do Istio no GKE:

  • A versão do Istio instalada está vinculada à versão do GKE, e não é possível atualizá-los 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 Istio no GKE em produção.

  • Embora esse instalador de complementos 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 é a melhor opção.

Se você precisar usar uma versão mais recente do Istio ou quiser um controle maior sobre a configuração do plano de controle do Istio (o que pode acontecer em alguns casos de uso de produção), recomendamos o uso de . Anthos Service Mesh

Se você não quiser mais usar nossa funcionalidade de instalação automática por algum motivo, desinstale o Istio no GKE. 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 ele se comunique com o plano de controle e participe da malha do Istio.

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

Suporte do Cloud Monitoring

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

Monitoramento

Se a API Cloud Monitoring estiver ativada no projeto do Google Cloud, a malha do Istio enviará automaticamente métricas relacionadas aos seus serviços, como o número de bytes recebidos por uma determinada ), em que eles aparecem 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 conseguir novos insights sobre o comportamento do serviço.

Para visualizar as métricas de um recurso monitorado usando o Metrics Explorer, siga estas instruções:

  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. Selecione a guia Configuração e insira ou selecione um Tipo de recurso e uma Métrica.

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 seu projeto do Google Cloud, a malha do Istio enviará registros automaticamente para o Logging, onde eles aparecem 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

É possível ativar o Cloud Trace para que a malha do Istio envie dados de trace automaticamente para o Trace, onde eles aparecem no visualizador de traces. Para aproveitar ao máximo o rastreamento distribuído e ajudar a encontrar os gargalos, você precisa alterar as cargas de trabalho para instrumentar os cabeçalhos de rastreamento. Saiba como fazer isso no guia 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, basta reiniciar os pods (com a injeção automática ativada) ou refazer manualmente. injeção da 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. Todas as alterações na configuração, exceto as especificadas a seguir, são revertidas 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 definir ao usar o Istio no GKE são as seguintes:

  • 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 do pod para implantações que você precisa permanecer 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 Istio no GKE.

A seguir