Os gateways do Alibaba Cloud Service Mesh (ASM) são proxies Envoy independentes que operam na borda da sua service mesh, separados dos proxies sidecar que acompanham suas cargas de trabalho. Eles atuam como pontos de entrada e saída dedicados, onde você aplica regras de roteamento, políticas de segurança e configuração de observabilidade — tudo gerenciado por meio de um único plano de controle.
Ao contrário de um controlador de Ingress padrão do Kubernetes, os gateways do ASM expõem todos os recursos de gerenciamento de tráfego da service mesh: balanceamento de carga das camadas 4 a 7, mTLS, autorização refinada e roteamento baseado em protocolos. Defina o comportamento do gateway por meio de recursos de gateway do Istio ou da Gateway API do Kubernetes e, em seguida, vincule virtual services para o roteamento na camada 7.
O ASM fornece três tipos de gateway:
|
Tipo de gateway |
Função |
Quando usar |
|
ingress gateway |
Roteia o tráfego de entrada para serviços dentro da service mesh. Opera na camada 7 e distribui requisições HTTP para diferentes serviços do Kubernetes com base em caminhos, cabeçalhos de host ou outros atributos da requisição. |
Exponha serviços para a internet ou para uma rede interna por meio de um único ponto de entrada com balanceamento de carga na camada 7, terminação TLS e controle de acesso. |
|
egress gateway |
Roteia o tráfego de saída dos serviços da service mesh para endpoints externos por meio de um ponto de saída centralizado. |
Aplique políticas de segurança no tráfego de saída e gerencie centralizadamente o roteamento do tráfego de serviços externos. |
|
Istio gateway |
Recurso de configuração que define como um balanceador de carga na borda da service mesh lida com conexões HTTP e TCP de entrada e saída. Vincule um virtual service a ele para roteamento na camada 7. |
Defina as configurações de porta, protocolo e TLS para um balanceador de carga e, em seguida, anexe regras de roteamento por meio de virtual services. |
ingress gateway
Um ingress gateway fornece um ponto de entrada unificado para o tráfego de entrada na camada 7. Ele roteia requisições HTTP da mesma porta TCP para diferentes serviços do Kubernetes com base em caminhos de URL, cabeçalhos de host e outros atributos da requisição.
Implante e gerencie ingress gateways
|
Recurso |
Descrição |
Referência |
|
Crie um ingress gateway |
Implante um ingress gateway em um cluster Kubernetes como um único ponto de entrada para acesso à internet ou à rede interna. Gerencie o gateway pelo console do ASM. |
|
|
Gateways serverless |
Implante gateways em modo serverless, gerenciados inteiramente pelo ASM. Os gateways serverless lidam com picos de tráfego com dimensionamento automático, sem depender de clusters do Container Service for Kubernetes (ACK). Em comparação com os gateways padrão do ASM em execução em clusters ACK, os gateways serverless oferecem maior estabilidade, melhor elasticidade e menor custo. |
|
|
Suporte a Network Load Balancer (NLB) |
Associe uma instância de NLB a um ingress gateway para balanceamento de carga na camada 4 com dimensionamento automático. Por padrão, definir |
Protocolos suportados
|
Recurso |
Descrição |
Referência |
|
Roteamento de tráfego (GUI) |
Crie regras de destino e virtual services por meio de uma interface gráfica sem escrever YAML. |
|
|
Migração de tráfego TCP |
Migre o tráfego TCP de forma suave para manter a continuidade dos negócios ao otimizar a topologia de rede, dimensionar horizontalmente os servidores de aplicação ou limitar o tráfego. |
|
|
gRPC |
Acesse serviços gRPC na sua service mesh por meio de um ingress gateway com controle de acesso e governança de serviços. |
|
|
Transcodificação gRPC-JSON |
Use o ASMGrpcJsonTranscoder para transcodificar requisições HTTP com corpos JSON em requisições gRPC, permitindo que clientes HTTP/JSON acessem serviços gRPC. |
|
|
WebSocket |
Acesse serviços WebSocket por meio de um ingress gateway. O WebSocket fornece comunicação full-duplex sobre uma única conexão TCP na camada de aplicação. |
Gerenciamento de tráfego
|
Recurso |
Descrição |
Referência |
|
Limitação local |
Limite o tráfego no nível do gateway ou do serviço para proteger seu sistema contra sobrecarga durante picos de tráfego. |
|
|
Limitação global |
Aplique limites de taxa a rotas específicas em um ingress gateway para lidar com rajadas de tráfego, evitar sobrecarga de serviços e defender contra ataques. |
|
|
Circuit breaking |
Configure o circuit breaking no nível da rota por meio de virtual services e regras de destino para uma governança de tráfego não intrusiva. |
|
|
Gateway API |
Defina regras de roteamento usando a Gateway API do Kubernetes, um projeto de open source da comunidade SIG-NETWORK para redes de serviços expressivas, extensíveis e orientadas a funções. |
|
|
Modo Ingress controller |
Use um gateway do ASM como um Ingress controller do Kubernetes para expor serviços em um cluster. |
|
|
Espelhamento de tráfego |
Espelhe o tráfego de produção para um cluster de teste ou versão de serviço para validar alterações sem afetar o ambiente de produção. |
|
|
Afinidade de sessão |
Roteie todas as requisições do mesmo usuário ou sessão para o mesmo servidor de backend. Útil para manter o estado em carrinhos de compras, sessões de login e configurações personalizadas. |
Gerenciamento de TLS e certificados
Todos os dados entre um ingress gateway e um proxy sidecar trafegam por um túnel mTLS. Se você injetar proxies sidecar na sua aplicação, configure a terminação TLS no ingress gateway para manter a criptografia de ponta a ponta.
|
Recurso |
Descrição |
Referência |
|
HTTPS com carregamento dinâmico de certificados |
Ative o HTTPS em um ingress gateway com atualizações de certificado em tempo real. Configure chaves privadas, certificados de servidor e certificados raiz sem reiniciar os gateways ou montar volumes de secrets. Gerencie vários certificados e suas respectivas chaves privadas para diferentes hosts. |
|
|
Pass-through de TLS |
Encaminhe o tráfego criptografado diretamente para os serviços de backend sem terminar o TLS no gateway. Use esta opção quando não houver proxies sidecar injetados ou quando outras circunstâncias exigirem criptografia de ponta a ponta no nível da aplicação. |
|
|
Listener HTTPS no CLB |
Crie um listener HTTPS vinculando um certificado à instância CLB de um ingress gateway. O listener descriptografa as requisições HTTPS em HTTP e as encaminha para o pod do gateway. |
|
|
Gerenciamento de certificados |
Sincronize certificados em vários clusters em uma instância do ASM. Visualize os detalhes do certificado e configure alertas de expiração. |
|
|
Imposição de versão TLS |
Desative versões mais antigas do TLS (1.0 e 1.1) e force o uso do TLS 1.2 ou superior para evitar ataques man-in-the-middle e violações de dados. |
|
|
mTLS para gRPC |
Configure o Mutual TLS (mTLS) para serviços gRPC para impor autenticação bidirecional e criptografia de ponta a ponta. |
|
|
Vinculação de certificado a domínio |
Vincule um certificado a um nome de domínio pelo console e, em seguida, acesse o domínio via HTTPS por meio do ingress gateway. |
|
|
Integração com WAF |
Conecte um ingress gateway a uma instância do Web Application Firewall (WAF) e personalize os campos de log de acesso para visualizar os cabeçalhos adicionados pelo WAF. |
|
|
Integração com cert-manager |
Use o cert-manager para emitir e gerenciar certificados para gateways do ASM, habilitando o acesso HTTPS aos serviços. |
Autorização e controle de acesso
|
Recurso |
Descrição |
Referência |
|
Controle de acesso baseado em IP |
Configure uma lista de bloqueios ou de permissões para permitir ou negar requisições com base em endereços IP de origem, nomes de domínio, portas ou blocos de IP remotos. |
|
|
Autorização personalizada |
Defina políticas de controle de acesso com base em nomes de domínio, caminhos e métodos HTTP para restringir o acesso a serviços específicos. |
|
|
Single sign-on (SSO) baseado em OIDC |
Configure o SSO do OpenID Connect (OIDC) usando o Alibaba Cloud IDaaS ou outros provedores de identidade compatíveis com OIDC. Acesse vários sistemas com uma única identidade, sem modificar suas aplicações. |
|
|
Autenticação JWT |
Valide JSON Web Tokens (JWTs) nos cabeçalhos das requisições para autenticar usuários no nível do gateway. Somente as requisições com um JWT válido são encaminhadas para os serviços de backend. |
|
|
Autenticação JWT do usuário final |
Autentique a origem das requisições no ingress gateway ao verificar os JWTs nos cabeçalhos. |
|
|
Integração com OPA |
Integre um motor do Open Policy Agent (OPA) a um ingress gateway para definir políticas de autorização refinadas com base em identidades de usuário ou no conteúdo da requisição. |
|
|
SSO com IDaaS |
Implemente o single sign-on para todas as aplicações em uma instância do ASM por meio do Alibaba Cloud IDaaS, sem alterações no código. |
|
|
SSO com Keycloak |
Use o Keycloak autogerenciado como provedor de identidade para implementar o single sign-on para aplicações em uma instância do ASM. |
|
|
CORS |
Configure políticas de compartilhamento de recursos de origem cruzada (CORS) em um virtual service para permitir o acesso entre domínios distintos para clientes e serviços. |
|
|
Restrição de IP com proxy de camada 7 |
Restrinja o acesso de endereços IP específicos às aplicações, com ou sem um proxy de camada 7 entre o cliente e o gateway do ASM. |
Rede e configuração
|
Recurso |
Descrição |
Referência |
|
Istio gateway compartilhado |
Configure um único recurso de Istio gateway para vários ingress gateways e simplifique a configuração. |
|
|
Múltiplas instâncias CLB |
Associe várias instâncias CLB a um único ingress gateway para obter capacidade adicional de balanceamento de carga. |
|
|
Extração de IP do cliente |
Extraia o endereço IP do cliente de origem dos cabeçalhos de requisições HTTP para habilitar políticas de controle de acesso baseadas em IP. |
|
|
Suporte a IPv6 |
Crie um ingress gateway com um endereço IPv6 para maior segurança em comparação com o IPv4. |
|
|
Acesso ao CLB a partir de pods |
Se os pods no plano de dados não puderem alcançar o endereço IP do CLB de um ingress gateway, acesse-o pelo IP do cluster ou pelo nome do gateway. |
|
|
Desativar HTTP/2 |
Desative o HTTP/2 em um ingress gateway com HTTPS habilitado quando não for possível resolver as limitações de HTTP/2 no lado do cliente por meio de configuração. |
egress gateway
Um egress gateway fornece um ponto de saída centralizado para o tráfego de saída da service mesh. Roteie todo o tráfego de saída por meio de um gateway dedicado para obter visibilidade e controle sobre as comunicações externas.
Gerencie os egress gateways pelo console do ASM ou pela API do Kubernetes.
|
Recurso |
Descrição |
Referência |
|
Crie um egress gateway |
Implante um egress gateway em um cluster Kubernetes como um ponto de saída centralizado para o tráfego da internet ou da rede interna. |
|
|
Roteie todo o tráfego de saída |
Configure um egress gateway para gerenciar centralizadamente todo o tráfego de saída para controle de segurança e roteamento. |
|
|
Política de tráfego de saída (CRD) |
Defina políticas de tráfego de saída usando campos CustomResourceDefinition (CRD). Requer a versão 1.16.4 ou superior do ASM. |
Istio gateway
Um Istio gateway é um recurso de configuração que define um balanceador de carga em execução na borda da sua service mesh. Ele especifica quais portas, protocolos e configurações TLS o balanceador de carga expõe. Vincule um virtual service a um Istio gateway para adicionar regras de roteamento na camada 7.
|
Recurso |
Descrição |
Referência |
|
Gerenciamento de Istio gateways |
Crie, modifique e exclua Istio gateways no console do ASM. |
Alta disponibilidade
O ASM oferece suporte a várias estratégias para manter os gateways com alta disponibilidade e minimizar a perda de tráfego durante atualizações, dimensionamentos e falhas.
|
Recurso |
Descrição |
Referência |
|
Configuração de gateway de alto desempenho |
Configure um gateway do ASM para alto desempenho e alta disponibilidade. |
Configure a high-performance and high-availability ASM gateway |
|
Agendamento de pods |
Agende os pods do gateway para nós específicos para isolá-los dos pods de aplicação e melhorar a disponibilidade. |
|
|
Implantação de gateway serverless |
Implante um gateway serverless do ASM em nós virtuais com o Elastic Container Instance para cargas de trabalho elásticas que não exigem manutenção de nós. |
|
|
Anti-afinidade de pods |
Distribua os pods do gateway em diferentes nós ou zonas de disponibilidade usando políticas de anti-afinidade de pods. |
|
|
Desligamento graceful |
Evite a perda de tráfego durante o scale-in ou reinicializações graduais ao permitir a conclusão das requisições em andamento dentro de uma janela de tempo configurada. |
|
|
Ingress multi-cluster |
Implante serviços em vários clusters e configure um ingress gateway unificado para gerenciar o tráfego para todos os clusters. |
|
|
Canary upgrade |
Atualize um gateway do ASM de forma incremental: execute uma nova versão de um pod do gateway, verifique o encaminhamento de tráfego e, em seguida, conclua a atualização completa. Reverta a qualquer momento se surgirem problemas. |
Observabilidade
Monitore o tráfego do gateway por meio de logs de acesso e métricas, com integração nativa aos serviços de observabilidade do Alibaba Cloud.
|
Recurso |
Descrição |
Referência |
|
Logs de acesso |
Gere logs de acesso no gateway (impressos na saída padrão com campos personalizáveis) e colete-os no Simple Log Service para armazenamento, análise e visualização. |
|
|
Métricas |
Gere métricas personalizáveis no gateway e colete-as no Managed Service for Prometheus para armazenamento, análise e visualização. |
Processamento de requisições
|
Recurso |
Descrição |
Referência |
|
Cabeçalhos de resposta HTTP |
Adicione cabeçalhos de resposta HTTP para aplicações web com um filtro Envoy para melhorar a segurança da aplicação. |
|
|
Compressão de dados |
Ative a compressão de dados em um gateway do ASM para reduzir o tamanho da resposta e melhorar o tempo de resposta. |
Migração de gateways existentes
Caso use atualmente um ingress gateway do Istio autogerenciado ou o NGINX Ingress Controller, migre o tráfego para um ingress gateway do ASM para gerenciamento centralizado por meio do plano de controle do ASM.
|
Caminho de migração |
Referência |
|
Ingress gateway do Istio autogerenciado para o ASM |
|
|
NGINX Ingress Controller para o ASM |
|
|
Configurações do NGINX para o ASM |