Fruto da integração profunda entre gateways nativos da nuvem do MSE e o Container Service for Kubernetes (ACK), o MSE Ingress gerencia objetos de API acessíveis externamente nos Services do cluster. Ele oferece balanceamento de carga na camada 7, implantações canary e um gerenciamento mais robusto do tráfego de entrada no cluster.
Este documento pressupõe familiaridade com pods, Services e resources de Ingress do Kubernetes.
Pré-requisitos
Verifique se você possui:
Um cluster ACK ou ACK Serverless
O controlador do MSE Ingress instalado no seu cluster
Um gateway nativo da nuvem do MSE provisionado por meio de uma Custom Resource Definition (CRD) MseIngressConfig
Como funciona
O diagrama a seguir ilustra o fluxo de requisições do cliente até o pod de backend.

Em alto nível:
O controlador do MSE Ingress observa as CRDs MseIngressConfig e gerencia o ciclo de vida dos gateways nativos da nuvem do MSE.
O plano de controle de cada gateway monitora Ingresses, classes de Ingress e Services por meio do servidor de API do ACK. Quando esses resources mudam, ele envia regras de roteamento atualizadas para o plano de dados em tempo real.
O plano de dados compara cada requisição recebida com as regras de roteamento e a encaminha para o pod do Service de backend apropriado.
Conceitos principais
|
Conceito |
Descrição |
|
Service |
Abstração de uma aplicação implantada em um conjunto de pods replicados. |
|
Ingress |
Regras de proxy reverso que roteiam requisições HTTP ou HTTPS para Services — por exemplo, por nome de host ou caminho de URL. |
|
Classe de Ingress |
Declara qual processador de Ingress lida com um determinado Ingress. Associe uma CRD MseIngressConfig ao campo |
|
MseIngressConfig |
CRD fornecida pelo controlador do MSE Ingress. Define a configuração básica de um gateway nativo da nuvem do MSE. |
|
Controlador do MSE Ingress |
Complemento do plano de controle instalado no seu cluster ACK. Gerencia as configurações dos gateways nativos da nuvem do MSE. |
|
Gateway nativo da nuvem do MSE |
Gateway provisionado a partir de uma CRD MseIngressConfig. Composto por um plano de controle (gerenciamento de regras de roteamento) e um plano de dados (processamento de tráfego). |
Por que usar o MSE Ingress
Em um cluster Kubernetes, o Ingress é o principal ponto de entrada para acesso externo aos Services e concentra a maior parte do tráfego de serviço recebido. O Ingress padrão do Kubernetes suporta apenas regras de roteamento HTTP. Recursos como algoritmos de balanceamento de carga e afinidade de sessão exigem um controlador de Ingress.
Baseado em gateways nativos da nuvem do MSE, o MSE Ingress estende o Ingress padrão do Kubernetes com capacidades que o NGINX Ingress não oferece:
|
Capacidade |
Ingress padrão do Kubernetes |
NGINX Ingress |
MSE Ingress |
|
Regras de roteamento HTTP |
Sim |
Sim |
Sim |
|
Algoritmos de balanceamento de carga |
Não |
Sim |
Sim |
|
Afinidade de sessão |
Não |
Sim |
Sim |
|
Implantações canary |
Não |
— |
Sim |
|
Governança de serviços (limitação de taxa, circuit breaking, novas tentativas) |
Não |
— |
Sim |
|
Proteção de segurança abrangente |
Não |
— |
Sim |
|
Compatibilidade com anotações do NGINX Ingress |
— |
— |
Mais de 50 anotações, cobrindo mais de 90% dos casos de uso |
Para migrações do NGINX Ingress, o MSE Ingress é compatível com mais de 50 anotações e atende a mais de 90% dos casos de uso.
Componentes do MSE Ingress
Controlador do MSE Ingress
O controlador do MSE Ingress não processa o tráfego de serviço — ele apenas configure os gateways nativos da nuvem do MSE. Todo o tráfego flui pelo plano de dados do gateway.
O controlador do MSE Ingress é um complemento do plano de controle instalado no seu cluster ACK ou ACK Serverless. Ele:
Monitora as CRDs MseIngressConfig e gerencie o ciclo de vida dos gateways nativos da nuvem.
Gerencie as configurações do gateway com base nas CRDs MseIngressConfig.
Configure o monitoramento de Ingress para os gateways.
Consulte Gerenciar componentes.
Gateways nativos da nuvem do MSE
Cada gateway nativo da nuvem do MSE é criado a partir de uma CRD MseIngressConfig e consiste em dois planos:
Plano de controle: monitora resources como Ingresses, classes de Ingress e Services. Envia configurações de roteamento para o plano de dados em tempo real.
Plano de dados: roteia requisições externas para os pods do Service de backend com base nas regras de roteamento do plano de controle.