Suplemento do Service Mesh baseado em Istio para Azure Kubernetes Service
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 Kubernetes do Azure (AKS).
O que é uma Malha de Serviço?
Os aplicativos modernos são normalmente arquitetados como coleções distribuídas de microsserviços, com cada coleção de microsserviços executando alguma função de negócios discreta. Uma malha de serviço é uma camada de infraestrutura dedicada que você pode adicionar aos seus aplicativos. Ele permite que você adicione recursos de forma transparente, 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 a segurança ou domínio de rede que é criado quando você usa esse software.
À medida que a implantação de 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 deteção, 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árias, limitação de taxa, controle de acesso, criptografia e autenticação de ponta a ponta.
A comunicação serviço-a-serviço é o que torna possível uma aplicação distribuída. 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, ao mesmo tempo em que alivia a pressão sobre as equipes de desenvolvimento.
Qual é Istio?
O Istio é uma malha de serviço de código aberto que coloca camadas transparentes em aplicativos distribuídos existentes. Os recursos poderosos do Istio fornecem uma maneira uniforme e mais eficiente de proteger, conectar e monitorar serviços. O Istio permite balanceamento de carga, autenticação de serviço a serviço e monitoramento – com poucas ou nenhuma alteração no código de serviço. Seu poderoso plano de controle traz características vitais, incluindo:
- Proteja a comunicação serviço-a-serviço em um cluster com criptografia TLS (Transport Layer Security), autenticação forte baseada em identidade e autorização.
- Balanceamento automático de carga para tráfego HTTP, gRPC, WebSocket e TCP.
- Controle refinado do comportamento do tráfego com regras de roteamento avançadas, tentativas, failovers e injeção de falhas.
- Uma camada de política conectável e uma API de configuração que suportam controles de acesso, limites de taxa e cotas.
- Métricas, logs e rastreamentos automáticos para todo o tráfego dentro de um cluster, incluindo entrada e saída de cluster.
Qual é a diferença entre o add-on e o Istio de código aberto?
Este complemento de malha de serviço usa e constrói sobre o Istio de código aberto. O sabor add-on fornece os seguintes benefícios extras:
- As versões do Istio são testadas e verificadas para serem compatíveis com as versões suportadas do Serviço Kubernetes do Azure.
- Microsoft lida com dimensionamento e configuração do plano de controle Istio
- A Microsoft ajusta o dimensionamento de componentes AKS como
coredns
quando o Istio está ativado. - A Microsoft fornece ciclo de vida gerenciado (atualizações) para componentes do Istio quando acionados pelo usuário.
- Configuração de entrada externa e interna verificada.
- Verificado para trabalhar com o serviço gerenciado do Azure Monitor para Prometheus e Azure Managed Grafana.
- Suporte oficial do Azure fornecido para o complemento.
Limitações
O suplemento do Service Mesh baseado em Istio para AKS tem as seguintes limitações:
O suplemento não funciona em clusters do AKS que estão a utilizar o suplemento Open Service Mesh para AKS.
O complemento não funciona em clusters AKS com instalações autogerenciadas do Istio.
O complemento não suporta a adição de pods associados a nós virtuais a serem adicionados sob a malha.
O complemento ainda não suporta gateways de saída para controle de tráfego de saída.
O add-on ainda não suporta o modo Ambient sem sidecar. A Microsoft está atualmente contribuindo para o fluxo de trabalho do Ambiente sob o código aberto Istio. A integração de produtos para o modo Ambiente está no roteiro e está sendo continuamente avaliada à medida que o fluxo de trabalho Ambiente evolui.
O complemento ainda não oferece suporte a implantações de vários clusters.
O complemento ainda não oferece suporte a contêineres do Windows Server. Os contêineres do Windows Server ainda não são suportados no Istio de código aberto no momento. O acompanhamento de problemas deste recurso pode ser encontrado aqui.
A personalização da malha através dos seguintes recursos personalizados está atualmente bloqueada -
ProxyConfig, WorkloadEntry, WorkloadGroup, IstioOperator, WasmPlugin
.O complemento permite o uso dos seguintes
EnvoyFilter
tipos de filtro, 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
)
Nota
Embora esses
EnvoyFilter
s sejam permitidos, qualquer problema decorrente deles (por exemplo, do scipt Lua ou da biblioteca de compressã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 complementos e opções de configuração do Istio.- Lua (
A API de gateway para gateway de entrada do Istio ou o gerenciamento de tráfego de malha (GAMMA) ainda não são suportados com o complemento Istio. No entanto, a API do Gateway para o gerenciamento de tráfego de ingresso do Istio está atualmente em desenvolvimento ativo para o complemento. Embora o complemento ofereça suporte à personalização de anotação para os gateways de entrada do Istio para endereços IP e tags de serviço, a configuração de porta ou protocolo não é suportada no momento.
Feedback e solicitação de recursos
Feedback e solicitação de recursos para o complemento Istio podem ser fornecidos criando problemas com o rótulo 'service-mesh' no repositório AKS GitHub.
Próximos passos
Azure Kubernetes Service