Os gateways do MSE Ingress suportam as anotações principais e comuns dos gateways NGINX Ingress, o que permite uma migração sem interrupções. Eles também oferecem anotações exclusivas do MSE para governança avançada de tráfego.
Contexto
Os recursos padrão de Ingress do Kubernetes lidam apenas com comunicações criptografadas por TLS e roteamento HTTP básico da camada 7. Os controladores de Ingress estendem essas capacidades por meio de anotações — somente o NGINX Ingress define mais de 100 anotações que abrangem governança de tráfego e segurança. Os gateways do MSE Ingress suportam a maioria das anotações do NGINX Ingress para que você possa migrar configurações existentes com alterações mínimas, além de adicionar suas próprias anotações onde o NGINX apresenta limitações.
O MSE Ingress utiliza anotações para ative os seguintes recursos em recursos de Ingress.
Índice de anotações
Utilize esta tabela para localizar rapidamente qualquer anotação. Clique no link da categoria para ir diretamente à descrição completa.
|
Categoria |
Anotações |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Visão geral
Anotações do NGINX Ingress
A tabela a seguir resume o suporte do MSE às anotações do NGINX Ingress.
|
Categoria |
Quantidade |
Observações |
|
Anotações suportadas |
51 |
Cobrem 90% dos casos de uso |
|
Anotações sem impacto funcional |
15 |
Nenhuma configuração necessária |
|
Anotações a serem suportadas |
48 |
Planejadas para cenários de casos extremos |
|
Anotações não suportadas |
5 |
Específicas para trechos de código NGINX |
A implementação do MSE difere do NGINX em dois aspectos: 1. As variáveis do NGINX usadas nas anotações e trechos de código do NGINX Ingress não são compatíveis com o MSE. 2. O MSE usa codificação de transferência fragmentada para corpos de requisição grandes, eliminando a necessidade de pré-configurar um limite de tamanho de corpo de requisição como no caso do nginx.ingress.kubernetes.io/proxy-body-size . Para lidar com transferências de arquivos grandes, configure o parâmetro DownstreamConnectionBufferLimits no painel Parameter Settings do seu gateway MSE.
Anotações do MSE Ingress
|
Categoria |
Quantidade |
Observações |
|
Anotações estendidas |
40 |
Anotações exclusivas do MSE para governança de tráfego e segurança |
Escopo
Cada anotação se aplica a um dos três escopos:
Ingress: Aplica-se às regras de roteamento definidas no recurso de Ingress.
Nome de domínio: Aplica-se aos hosts definidos pelo recurso de Ingress, incluindo os mesmos hosts em outros recursos de Ingress.
Serviço: Aplica-se aos serviços definidos pelo recurso de Ingress, incluindo os mesmos serviços em outros recursos de Ingress.
Prefixos de anotação
Para anotações que o MSE compartilha com o NGINX Ingress, é possível usar indistintamente o prefixo nginx ou mse — por exemplo, nginx.ingress.kubernetes.io/rewrite-target e mse.ingress.kubernetes.io/rewrite-target são equivalentes. Anotações exclusivas do MSE usam apenas o prefixo mse e não podem ser referenciadas com o prefixo nginx.
Anotações suportadas
Governança de tráfego
Canary release
|
Anotação |
Escopo |
Status de suporte |
Descrição |
|
|
Ingress |
Compatível |
Habilita o recurso de canary release. |
|
|
Ingress |
Compatível |
Chave do cabeçalho de requisição usada para divisão de tráfego. |
|
|
Ingress |
Compatível |
Valor do cabeçalho de requisição usado para divisão de tráfego. Suporta correspondência exata. |
|
|
Ingress |
Compatível |
Valor do cabeçalho de requisição usado para divisão de tráfego. Suporta correspondência por expressão regular. |
|
|
Ingress |
Exclusivo do MSE |
Parâmetro de consulta URL usado para divisão de tráfego. |
|
|
Ingress |
Exclusivo do MSE |
Valor do parâmetro de consulta URL usado para divisão de tráfego. Suporta correspondência exata. |
|
|
Ingress |
Exclusivo do MSE |
Valor do parâmetro de consulta URL usado para divisão de tráfego. Suporta correspondência por expressão regular. |
|
|
Ingress |
Compatível |
Chave do cookie de requisição usada para divisão de tráfego. |
|
|
Ingress |
Exclusivo do MSE; versão mínima do gateway: V1.2.30 |
Valor do cookie de requisição usado para divisão de tráfego. Suporta correspondência exata. |
|
|
Ingress |
Compatível |
Peso do serviço usado para divisão de tráfego. |
|
|
Ingress |
Compatível |
Peso total para divisão de tráfego. |
Multisserviço
|
Anotação |
Escopo |
Status de suporte |
Descrição |
|
|
Ingress |
Exclusivo do MSE |
Distribuição de serviços baseada em peso para rotas. Sintaxe: |
Exemplo:
annotations:
# Route 60% of traffic to foo and 40% to bar.
mse.ingress.kubernetes.io/destination: |
60% foo.default.svc.cluster.local:8080
40% bar.default.svc.cluster.local:9090
Subconjunto de serviço
|
Anotação |
Escopo |
Status de suporte |
Descrição |
|
|
Ingress |
Exclusivo do MSE; versão mínima do gateway: V1.2.25 |
Roteia requisições para um subconjunto de Pods dentro de um Serviço, com base em rótulos. Se |
|
|
Ingress |
Exclusivo do MSE; versão mínima do gateway: V1.2.25 |
(Opcional) Usado com |
Fallback
|
Anotação |
Escopo |
Status de suporte |
Descrição |
|
|
Ingress |
Compatível |
Serviço de fallback. Se nenhum nó estiver disponível para um serviço definido em uma regra de Ingress, as requisições serão encaminhadas para este serviço de fallback. |
|
|
Ingress |
Compatível |
Funciona em conjunto com |
Correspondência regex
|
Anotação |
Escopo |
Status de suporte |
Descrição |
|
|
Ingress |
Compatível |
Habilita correspondência por expressão regular para o caminho definido em um Ingress. Utiliza a sintaxe RE2. |
Rewrite
|
Anotação |
Escopo |
Status de suporte |
Descrição |
|
|
Ingress |
Compatível |
Caminho de destino para uma operação de rewrite. Suporta grupos de captura. |
|
|
Ingress |
Compatível |
Host de destino para uma operação de rewrite. Quando uma requisição correspondente é encaminhada para um serviço de backend, o valor |
Redirecionamento
Variáveis do NGINX em configurações de redirecionamento podem funcionar em algumas versões do NGINX Ingress, mas não são abordadas na documentação oficial de Anotações . Evite usar variáveis do NGINX em anotações de redirecionamento para prevenir problemas de compatibilidade.
|
Anotação |
Escopo |
Status de suporte |
Descrição |
|
|
Ingress |
Compatível |
Redireciona requisições HTTP para HTTPS. |
|
|
Ingress |
Compatível |
Especifica se deve forçar o redirecionamento de HTTP para HTTPS. |
|
|
Ingress |
Compatível |
Especifica a URL para um redirecionamento permanente. |
|
|
Ingress |
Compatível |
Código de status HTTP para redirecionamentos permanentes. |
|
|
Ingress |
Compatível |
Especifica a URL para um redirecionamento temporário. |
|
|
Ingress |
Compatível |
Redireciona requisições de |
CORS
|
Anotação |
Escopo |
Status de suporte |
Descrição |
|
|
Ingress |
Compatível |
Habilita o compartilhamento de recursos de origem cruzada (CORS). |
|
|
Ingress |
Compatível |
Origens permitidas para requisições CORS. |
|
|
Ingress |
Compatível |
Métodos HTTP permitidos para CORS, como GET, POST e PUT. |
|
|
Ingress |
Compatível |
Cabeçalhos de requisição permitidos para CORS. |
|
|
Ingress |
Compatível |
Cabeçalhos de resposta expostos aos navegadores para CORS. |
|
|
Ingress |
Compatível |
Indica se credenciais podem ser incluídas em requisições CORS. |
|
|
Ingress |
Compatível |
Duração (em segundos) para cache dos resultados de preflight. |
Controle de cabeçalho
As anotações de controle de cabeçalho para rotas base e rotas canary são avaliadas independentemente. Configure-as separadamente se precisar de políticas de cabeçalho diferentes para tráfego base e canary.
|
Anotação |
Escopo |
Status de suporte |
Descrição |
|
|
|
Ingress |
Exclusivo do MSE |
Adiciona um cabeçalho às requisições encaminhadas ao backend. Se o cabeçalho já existir, o novo valor será anexado ao original. Para um único cabeçalho, use um par chave-valor. Para múltiplos cabeçalhos, utilize um bloco escalar YAML ( |
`) com um par chave-valor por linha. |
|
|
Ingress |
Exclusivo do MSE |
Atualiza um cabeçalho nas requisições encaminhadas ao backend. Se o cabeçalho existir, o novo valor sobrescreverá o original. Mesma sintaxe de |
|
|
|
Ingress |
Exclusivo do MSE |
Remove um cabeçalho das requisições encaminhadas ao backend. Para um único cabeçalho, especifique a chave. Para múltiplos cabeçalhos, separe as chaves com vírgulas ( |
|
|
|
Ingress |
Exclusivo do MSE |
Adiciona um cabeçalho às respostas antes de serem enviadas ao cliente. Se o cabeçalho já existir, o novo valor será anexado. Mesma sintaxe de |
|
|
|
Ingress |
Exclusivo do MSE |
Atualiza um cabeçalho nas respostas antes de serem enviadas ao cliente. Se o cabeçalho existir, o novo valor sobrescreverá o original. Mesma sintaxe de |
|
|
|
Ingress |
Exclusivo do MSE |
Remove um cabeçalho das respostas antes de serem enviadas ao cliente. Para um único cabeçalho, especifique a chave. Para múltiplos cabeçalhos, separe as chaves com vírgulas ( |
Timeout
|
Anotação |
Escopo |
Status de suporte |
Descrição |
|
|
Ingress |
Exclusivo do MSE |
Tempo limite da requisição em segundos. Nenhum timeout é configurado por padrão. Aplica-se na camada de aplicação, não na camada de transporte TCP. |
Retry
|
Anotação |
Escopo |
Status de suporte |
Descrição |
|
|
Ingress |
Compatível |
Número máximo de tentativas de nova tentativa. Valor padrão: 3. |
|
|
Ingress |
Compatível |
Tempo limite para tentativas de nova tentativa, em segundos. Nenhum timeout é configurado por padrão. |
|
|
Ingress |
Compatível |
Condições que acionam uma nova tentativa. Consulte o mecanismo de retry do NGINX para valores válidos. |
Espelhamento de tráfego
|
Anotação |
Escopo |
Status de suporte |
Descrição |
|
|
Ingress |
Exclusivo do MSE |
Serviço de destino para tráfego espelhado. Formato: |
|
|
Ingress |
Exclusivo do MSE; versão mínima do gateway: V1.2.32 |
Porcentagem de tráfego a ser espelhada. Valores válidos: 0–100. Valor padrão: 100. |
Alias de domínio
|
Anotação |
Escopo |
Status de suporte |
Descrição |
|
|
Nome de domínio |
Parcialmente compatível; versão mínima do gateway: V1.2.30 |
Domínio alias para o host definido na especificação do Ingress. Suporta apenas correspondência exata e domínios curinga. Os aliases herdam as configurações de TLS, roteamento e governança de tráfego do domínio de source. |
Limitação de gateway único (a ser descontinuada)
|
Anotação |
Escopo |
Status de suporte |
Descrição |
|
|
Ingress |
Exclusivo do MSE |
Máximo de requisições por minuto (RPM) por nó do gateway. O limite de pico equivale ao valor configurado multiplicado por |
|
|
Ingress |
Exclusivo do MSE |
Máximo de requisições por segundo (RPS) por nó do gateway. Mesmo comportamento de pico e código de status que |
|
|
Ingress |
Exclusivo do MSE |
Multiplicador para o limite de pico. Valor padrão: 5. |
(Recomendado) Controle global de limitação
|
Anotação |
Escopo |
Status de suporte |
Descrição |
|
|
Ingress |
Exclusivo do MSE; versão mínima do gateway: V1.2.25 |
RPS máximo para limitação global na rota. |
|
|
Ingress |
Exclusivo do MSE; versão mínima do gateway: V1.2.25 |
Código de resposta HTTP retornado quando a limitação é acionada. Valor padrão: 429. Mutuamente exclusivo com |
|
|
Ingress |
Exclusivo do MSE; versão mínima do gateway: V1.2.25 |
Formato do corpo da resposta quando a limitação é acionada. Valor padrão: |
|
|
Ingress |
Exclusivo do MSE; versão mínima do gateway: V1.2.25 |
Conteúdo do corpo da resposta quando a limitação é acionada. Valor padrão: |
|
|
Ingress |
Exclusivo do MSE; versão mínima do gateway: V1.2.25 |
URL de redirecionamento quando a limitação é acionada. Mutuamente exclusivo com |
Controle global de concorrência
|
Anotação |
Escopo |
Status de suporte |
Descrição |
|
|
Ingress |
Exclusivo do MSE; versão mínima do gateway: V1.2.25 |
Número máximo de requisições simultâneas na rota. |
|
|
Ingress |
Exclusivo do MSE; versão mínima do gateway: V1.2.25 |
Código de resposta HTTP retornado quando o limite de concorrência é atingido. Valor padrão: 429. Mutuamente exclusivo com |
|
|
Ingress |
Exclusivo do MSE; versão mínima do gateway: V1.2.25 |
Formato do corpo da resposta quando o limite de concorrência é atingido. Valor padrão: |
|
|
Ingress |
Exclusivo do MSE; versão mínima do gateway: V1.2.25 |
Conteúdo do corpo da resposta quando o limite de concorrência é atingido. Valor padrão: |
|
|
Ingress |
Exclusivo do MSE; versão mínima do gateway: V1.2.25 |
URL de redirecionamento quando o limite de concorrência é atingido. Mutuamente exclusivo com |
Protocolo de backend
|
Anotação |
Escopo |
Status de suporte |
Descrição |
|
|
Serviço |
Parcialmente compatível. AJP e FCGI não são suportados. |
Protocolo utilizado pelos serviços de backend. Valor padrão: |
Balanceamento de carga
|
Anotação |
Escopo |
Status de suporte |
Descrição |
|
|
Serviço |
Parcialmente compatível. O algoritmo Exponentially Weighted Moving Average (EWMA) não é suportado e reverte para round-robin. |
Algoritmo de balanceamento de carga para serviços de backend. Valor padrão: |
|
|
Serviço |
Parcialmente compatível. A combinação de variáveis do NGINX com constantes não é suportada. |
Algoritmo de hash consistente para serviços de backend. Suporta hash por: |
Pré-busca de serviço (início gradual)
|
Anotação |
Escopo |
Status de suporte |
Descrição |
|
|
Serviço |
Exclusivo do MSE |
Período de aquecimento para um serviço, em segundos. Desabilitado por padrão. Suportado apenas com algoritmos de balanceamento de carga round-robin e menor conexão. |
Afinidade de cookie
|
Anotação |
Escopo |
Status de suporte |
Descrição |
|
|
Serviço |
Compatível |
Tipo de afinidade. O único valor suportado é |
|
|
Serviço |
Parcialmente compatível. O modo |
Modo de afinidade. O único valor suportado é |
|
|
Serviço |
Compatível |
Nome do cookie usado como chave de hash. |
|
|
Serviço |
Compatível |
Caminho do cookie gerado quando o cookie especificado não existe. Valor padrão: |
|
|
Serviço |
Compatível |
Tempo de expiração do cookie gerado, em segundos. O padrão é nível de sessão. |
|
|
Serviço |
Compatível |
Tempo de expiração do cookie gerado, em segundos. O padrão é nível de sessão. |
Controle de acesso baseado em endereço IP
|
Anotação |
Escopo |
Status de suporte |
Descrição |
|
|
Ingress |
Compatível |
Lista de permissões de IP para a rota. Suporta endereços IP e blocos CIDR, separados por vírgulas. |
|
|
Ingress |
Compatível; versão mínima do gateway: V1.2.31 |
Lista de bloqueios de IP para a rota. Suporta endereços IP e blocos CIDR, separados por vírgulas. Tem precedência sobre |
|
|
Ingress |
Exclusivo do MSE |
Lista de bloqueios de IP para a rota. Suporta endereços IP e blocos CIDR, separados por vírgulas. |
|
|
Ingress |
Exclusivo do MSE |
Lista de permissões de IP para o nome de domínio. Listas de permissões no nível de rota têm precedência sobre listas de permissões no nível de domínio. Suporta endereços IP e blocos CIDR, separados por vírgulas. |
|
|
Ingress |
Exclusivo do MSE |
Lista de bloqueios de IP para o nome de domínio. Listas de bloqueios no nível de rota têm precedência sobre listas de bloqueios no nível de domínio. Suporta endereços IP e blocos CIDR, separados por vírgulas. |
Configuração de pool de conexões
|
Anotação |
Escopo |
Status de suporte |
Descrição |
|
|
Serviço |
Exclusivo do MSE |
Número máximo de conexões TCP entre o gateway e o serviço de backend. |
|
|
Serviço |
Exclusivo do MSE |
Número máximo de conexões TCP entre o gateway e um único nó de backend. |
|
|
Serviço |
Exclusivo do MSE |
Número máximo de requisições HTTP por conexão entre o gateway e o serviço de backend. |
Proteção de segurança
Comunicações criptografadas entre clientes e gateways
|
Anotação |
Escopo |
Status de suporte |
Descrição |
|
|
Nome de domínio |
Exclusivo do MSE |
Versão mínima do TLS. Valor padrão: |
|
|
Nome de domínio |
Exclusivo do MSE |
Versão máxima do TLS. Valor padrão: |
|
|
Nome de domínio |
Compatível |
Conjuntos de cifras TLS, separados por vírgulas. Entra em vigor apenas para handshakes TLS usando TLS v1.0–v1.2. Conjuntos de cifras padrão: |
|
|
Nome de domínio |
Parcialmente compatível. O nome do Secret deve seguir o formato |
Certificado CA usado pelo gateway para verifique certificados de cliente durante um handshake TLS mútuo (mTLS). Use esta anotação quando o gateway precisar autenticar o cliente. |
Comunicações criptografadas entre gateways e serviços de backend
|
Anotação |
Escopo |
Status de suporte |
Descrição |
|
|
Serviço |
Compatível |
Certificado de cliente usado pelo gateway. O serviço de backend usa este certificado para autenticar o gateway. |
|
|
Serviço |
Compatível |
Valor de Server Name Indication (SNI) usado durante o handshake TLS com o backend. |
|
|
Serviço |
Compatível |
Habilita SNI durante o handshake TLS com o backend. |
Autenticação
Autenticação básica
|
Anotação |
Escopo |
Status de suporte |
Descrição |
|
|
Ingress |
Parcialmente compatível. Apenas autenticação |
Tipo de autenticação. |
|
|
Ingress |
Compatível |
Nome do Secret contendo credenciais para a rota. Formato: |
|
|
Ingress |
Compatível |
Formato dos dados do Secret. |
|
|
Ingress |
Compatível |
Realm de autenticação. Credenciais são compartilhadas dentro do mesmo realm. |
Para a lista completa de anotações do NGINX Ingress, consulte Anotações.