Visão geral do Istio no GKE

Mantenha tudo organizado com as coleções Salve e categorize o conteúdo com base nas suas preferências.

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 os seguintes benefícios:

  • 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 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
  • 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 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 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 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 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 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 eles se comuniquem com o plano de controle e participem 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 no Istio é instalado com os componentes principais descritos acima. O adaptador pode enviar métricas, registros e dados de rastreamento da malha para o Cloud Monitoring, Cloud Logging ou Cloud Trace, fornecendo observabilidade para o comportamento dos serviços no Console do Google Cloud. 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 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 o Monitoring
  2. No painel de navegação do Monitoring, clique em Metrics Explorer.
  3. Na barra de ferramentas, selecione a guia Explorer.
  4. Selecione a guia Configuração.
  5. Expanda o menu Selecionar uma métrica e use os submenus para selecionar um tipo de recurso e uma métrica. Por exemplo, para gerar um gráfico do uso da CPU de uma máquina virtual, faça o seguinte:
    1. Opcional: para reduzir as opções do menu, insira parte do nome da métrica na Barra de filtros. Neste exemplo, digite utilization.
    2. No menu Recursos ativos, selecione Instância de VM.
    3. No menu Categorias de métrica ativas, selecione Instância.
    4. No menu Métricas ativas, selecione Utilização da CPU.

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

Geração de registros

Se a API Cloud Logging estiver ativada no projeto do Google Cloud, a malha do Istio enviará registros automaticamente para o Logging, onde eles aparecerão no Explorador 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 Trace, onde ele aparece 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. É 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. 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 é possível 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 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 Istio no GKE.

A seguir