Compartilhar via


Complemento de malha de serviço baseado em Istio para o Serviço de Kubernetes do Azure

O Istio aborda os desafios que os desenvolvedores e operadores enfrentam com uma arquitetura distribuída ou de microsserviços. O complemento de malha de serviço baseado em Istio fornece uma integração oficialmente suportada e testada para o Serviço de Kubernetes do Azure (AKS).

O que é uma malha de serviço?

Normalmente, os aplicativos modernos são arquitetados como coleções distribuídas de microsserviços, com cada coleção de microsserviços executando alguma função de negócios distinta. Uma malha de serviço é uma camada de infraestrutura dedicada que você pode adicionar aos seus aplicativos. Ele permite que você adicione de forma transparente recursos como observabilidade, gerenciamento de tráfego e segurança, sem adicioná-los ao seu próprio código. O termo malha de serviço descreve o tipo de software que você usa para implementar esse padrão e o domínio de segurança ou de rede que é criado quando você usa esse software.

À medida que a implantação dos serviços distribuídos, como em um sistema baseado em Kubernetes, cresce em tamanho e complexidade, pode se tornar mais difícil de entender e gerenciar. Talvez seja necessário implementar recursos como descoberta, balanceamento de carga, recuperação de falhas, métricas e monitoramento. Uma malha de serviço também pode atender a requisitos operacionais mais complexos, como testes A/B, implantações canário, limitação de taxa, controle de acesso, criptografia e autenticação descentralizada.

A comunicação entre serviços é o que torna possível um aplicativo distribuído. O roteamento dessa comunicação, dentro e entre clusters de aplicativos, torna-se cada vez mais complexo à medida que o número de serviços cresce. O Istio ajuda a reduzir essa complexidade e, ao mesmo tempo, alivia a pressão sobre as equipes de desenvolvimento.

O que é o Istio?

O Istio é uma malha de serviço de código aberto que se sobrepõe de forma transparente aos aplicativos distribuídos existentes. Os avançados recursos do Istio fornecem uma maneira uniforme e mais eficiente de proteger, conectar e monitorar serviços. O Istio habilita o balanceamento de carga, autenticação entre serviços e o monitoramento, com poucas ou nenhuma alteração no código do serviço. Seu plano de controle avançado traz funcionalidades vitais, incluindo:

  • Proteja a comunicação entre serviços em um cluster com criptografia TLS (protocolo TLS), autenticação e autorização fortes baseadas em identidade.
  • Balanceamento de carga automático para tráfego HTTP, gRPC, WebSocket e TCP.
  • Controle refinado do comportamento de tráfego com regras de roteamento, repetições, failovers e injeção de falhas avançadas.
  • Uma camada de política plugável e uma API de configuração que dá suporte a controles de acesso, limites de taxa e cotas.
  • Métricas, logs e rastreamentos automáticos para todo o tráfego em um cluster, incluindo entrada e saída do cluster.

Como o complemento é diferente do Istio de código aberto?

Esse complemento de malha de serviço usa e se baseia no Istio de código aberto. O sabor do complemento oferece os seguintes benefícios extras:

  • As versões do Istio são testadas e verificadas como compatíveis com as versões suportadas do Serviço de Kubernetes do Azure.
  • A Microsoft gerencia a colocação em escala e a configuração do plano de controle do Istio
  • A Microsoft ajusta a escala dos componentes do AKS, como coredns, quando o Istio está ativado.
  • A Microsoft fornece um ciclo de vida gerenciado (atualizações) para os componentes do Istio quando acionado pelo usuário.
  • Configuração de entrada externa e interna verificada.
  • Verificado para funcionar com o serviço gerenciado para Prometheus do Azure Monitor e Espaço Gerenciado do Azure para Grafana.
  • O suporte oficial do Azure fornecido para o complemento.

Limitações

O complemento de malha de serviço baseado em Istio para AKS tem as seguintes limitações:

  • O complemento não funciona nos clusters do AKS que estão usando o complemento de Malha de Serviço Aberta para AKS.

  • O complemento não funciona em clusters do AKS com instalações autogerenciadas do Istio.

  • O complemento não dá suporte à adição de pods associados a nós virtuais a serem adicionados dentro da malha.

  • O complemento ainda não dá suporte a gateways de saída para o controle do tráfego de saída.

  • O complemento ainda não dá suporte ao modo Ambiente sem sidecar. Atualmente, a Microsoft está contribuindo para o fluxo de trabalho do Ambiente em código aberto do Istio. A integração de produtos para o modo Ambiente está no roteiro e está sendo avaliada continuamente à medida que o fluxo de trabalho do Ambiente evolui.

  • O complemento ainda não dá suporte a implantações com vários clusters.

  • O complemento ainda não dá suporte a contêineres do Windows Server. Os contêineres do Windows Server ainda não têm suporte no Istio de software livre no momento. O acompanhamento de questões dessa solicitação de recurso pode ser encontrado aqui.

  • A personalização da malha por meio dos seguintes recursos personalizados está bloqueada no momento — ProxyConfig, WorkloadEntry, WorkloadGroup, IstioOperator, WasmPlugin.

  • O complemento permite o uso dos seguintes tipos de filtro EnvoyFilter, com outros tipos de filtro bloqueados:

    • Lua (type.googleapis.com/envoy.extensions.filters.http.lua.v3.Lua).
    • Compressor (type.googleapis.com/envoy.extensions.filters.http.compressor.v3.Compressor)
    • Limite de taxa local (type.googleapis.com/envoy.extensions.filters.http.local_ratelimit.v3.LocalRateLimit)

    Observação

    Embora esses EnvoyFilter sejam permitidos, qualquer problema decorrente deles (por exemplo, do script Lua ou da biblioteca de compactação) está fora do escopo de suporte do complemento Istio. Consulte o documento de política de suporte para obter mais informações sobre as categorias de suporte para recursos de complemento do Istio e opções de configuração.

  • Atualmente, ainda não há suporte para uma API de Gateway para o gateway de entrada do Istio ou para gerenciar o tráfego da malha (GAMMA) com um complemento do Istio. No entanto, a API do Gateway para gerenciamento de tráfego de entrada do Istio está atualmente em desenvolvimento ativo para o complemento. Embora o complemento dê suporte à personalização de anotação para os gateways de entrada do Istio para endereços IP e rótulos de serviço, a configuração de porta ou protocolo atualmente não tem suporte.

Comentários e solicitações de recurso

Comentários e solicitações de recurso para o complemento do Istio podem ser fornecidos criando questões com o rótulo "malha de serviço" no repositório GitHub do AKS.

Próximas etapas