O MseIngressConfig é uma CustomResourceDefinition (CRD) fornecida pelo Microservices Engine (MSE) Ingress Controller. Esse recurso permite gerenciar todo o ciclo de vida de um gateway nativo da nuvem do MSE — criação, reutilização ou exclusão — e definir configurações globais, como controle de acesso por IP, aceleração de hardware TLS, logs de acesso e rastreamento distribuído, sem reiniciar o controller.
Como funciona
O MSE Ingress Controller monitora os recursos MseIngressConfig no cluster e mantém dinamicamente o gateway nativo da nuvem correspondente. Após a associação do gateway ao servidor de API do cluster, o plano de controle sincroniza as alterações nos recursos de Ingress e atualiza as regras de roteamento em tempo real. Ao receber uma solicitação, o gateway a compara com as regras de roteamento do Ingress e encaminha o tráfego para o pod de backend apropriado.
O diagrama a seguir ilustra a relação entre os componentes.

Os principais componentes são:
Service: Abstração dos serviços de backend. Um service representa um conjunto de pods replicados.
Ingress: Contém regras de proxy reverso que roteiam solicitações HTTP ou HTTPS para services com base em nomes de host e caminhos.
IngressClass: Declara qual implementação de controller de Ingress gerencia um conjunto de recursos de Ingress. Associe uma IngressClass a um MseIngressConfig para ativar o gateway nativo da nuvem do MSE para esses recursos.
MseIngressConfig: CRD que fornece a configuração do gateway, incluindo especificações da instância, configurações de rede, políticas globais e escopo de escuta do Ingress.
MSE Ingress Controller: Plano de controle que monitora os recursos MseIngressConfig e coordena o gateway nativo da nuvem. Não atua como plano de dados de rede.
Cada MseIngressConfig corresponde exatamente a um gateway nativo da nuvem do MSE. Para executar vários gateways, crie múltiplos MseIngressConfigs.
Referência do MseIngressConfig
Exemplo de configuração completa
apiVersion: mse.alibabacloud.com/v1alpha1
kind: MseIngressConfig
metadata:
name: test
spec:
name: mse-ingress
common:
pay:
payType: POSTPAY
instance:
spec: 4c8g
replicas: 3
network:
vSwitches:
- "vsw-1"
- "vsw-2"
publicSLBSpec: slb.s2.small
securityGroupType: normal
global:
tls:
enableHardwareAcceleration: true
ipAccessControl:
whitelist:
- 1.1.XX.XX
- 2.2.XX.XX
monitor:
logging:
sls:
reuseProject: "xxx" # Leave blank to use the default project
tracing:
xTrace:
sampleRate: "100"
ingress:
local:
ingressClass: mse
watchNamespace: "" # Leave blank to listen to all namespaces
Parâmetros
|
Parâmetro |
Descrição |
Obrigatório |
Padrão |
|
|
Nome do gateway |
Não |
|
|
|
Método de faturamento. Apenas |
Não |
|
|
|
Tamanho da instância do gateway. Valores válidos: |
Não |
|
|
|
Número de réplicas do gateway. Valores válidos: 0–30 |
Não |
|
|
|
vSwitches primário e secundário. Especifique pelo menos um e no máximo dois. Se não definido, o sistema usa o vSwitch no nó que executa o pod do MSE Ingress Controller. |
Não |
Nenhum |
|
|
Especificações da instância do Server Load Balancer (SLB) voltada para a Internet. Valores válidos: |
Não |
|
|
|
Especificações da instância do SLB voltada para a rede interna. Mesmos valores válidos de |
Não |
|
|
|
Tipo de grupo de segurança. Valores válidos: |
Não |
|
|
|
Ativa a aceleração de hardware do Transport Layer Security (TLS) para melhorar o desempenho do processamento HTTPS. |
Não |
|
|
|
Lista de permissões global de endereços IP. Aceita IPs individuais e blocos CIDR. |
Não |
Não configurado |
|
|
Lista de bloqueios global de endereços IP. Aceita IPs individuais e blocos CIDR. |
Não |
Não configurado |
|
|
Ativa os logs de acesso do Simple Log Service (SLS). Conceda permissões do SLS ao MSE Ingress Controller antes de ativar. |
Não |
Desativado |
|
|
Projeto do SLS para logs de acesso. Deixe em branco para usar o projeto padrão; especifique um nome para utilizar um projeto existente. |
Não |
Em branco (projeto padrão) |
|
|
Habilita a análise de rastreamento do xTrace. Incompatível com |
Não |
Desativado |
|
|
Taxa de amostragem para o xTrace, como string de porcentagem. Exemplo: |
Não |
|
|
|
Habilita a análise de rastreamento do OpenTelemetry. Incompatível com |
Não |
Desativado |
|
|
Taxa de amostragem para o OpenTelemetry, como string de porcentagem. |
Não |
|
|
|
IngressClass monitorada pelo gateway. Consulte a tabela abaixo para valores válidos. |
Não |
Não configurado |
|
|
Namespace a ser monitorado. Deixe em branco para monitorar todos os namespaces. Apenas um namespace pode ser especificado. |
Não |
Em branco (todos os namespaces) |
Valores válidos para ingress.local.ingressClass:
|
Valor |
Comportamento |
|
Não configurado |
Nenhum recurso de Ingress é monitorado. |
|
|
Monitora recursos de Ingress com IngressClass |
|
|
Monitora todos os recursos de Ingress no cluster. |
|
|
Monitora recursos de Ingress com IngressClass |
|
Qualquer outro valor |
Monitora recursos de Ingress associados à IngressClass especificada. |
Um recurso IngressClass que referencia explicitamente um MseIngressConfig em seu campospec.parameterstem precedência sobre o valor deingress.local.ingressClass.
Status
Verifique o status de um MseIngressConfig:
kubectl get mseingressconfig
Saída esperada:
NAME STATUS MESSAGE
test Listening
O status progride na seguinte ordem: Pending → Running → Listening.
|
Status |
Descrição |
|
|
O gateway nativo da nuvem está sendo criado. A criação leva aproximadamente 3 minutos. |
|
|
O gateway foi criado e está em execução. |
|
|
O gateway está em execução e monitorando recursos de Ingress no cluster. |
|
|
O gateway é inválido. Verifique o campo |
Tags de recurso
Os gateways nativos da nuvem do MSE criados ou reutilizados por MseIngressConfigs recebem tags automaticamente. Visualize essas tags na seção de informações básicas do console do MSE.
Não edite essas tags no console do MSE. Modificá-las pode interromper a operação do gateway.
|
Tag |
Descrição |
|
|
Identifica o cluster ACK cujo tráfego de ingress este gateway gerencia. |
|
|
Identifica o MseIngressConfig associado a este gateway. |
|
|
Marca o gateway como reutilizado. Excluir o MseIngressConfig associado não remove um gateway com esta tag. |
Criar um gateway nativo da nuvem do MSE
-
Aplique um MseIngressConfig para criar o gateway. O exemplo a seguir cria um gateway chamado
mse-ingresscom 3 réplicas na especificação2c4g.apiVersion: mse.alibabacloud.com/v1alpha1 kind: MseIngressConfig metadata: name: test spec: name: mse-ingress common: instance: spec: 2c4g replicas: 3 -
Crie um recurso IngressClass e vincule-o ao MseIngressConfig.
apiVersion: networking.k8s.io/v1 kind: IngressClass metadata: name: mse spec: controller: mse.alibabacloud.com/ingress parameters: apiGroup: mse.alibabacloud.com kind: MseIngressConfig name: testApós aplicar ambos os recursos, o gateway nativo da nuvem associado processará os recursos de Ingress com IngressClass
mse. -
Verifique se o gateway está em execução.
kubectl get mseingressconfig testO status progride na ordem
Pending→Running→Listening. Quando o status exibirListening, o gateway estará pronto.
Reutilizar um gateway nativo da nuvem do MSE existente
Para reutilizar um gateway existente, defina spec.id como o ID do gateway (no formato gw-xxx) e controle a sobrescrita da configuração com spec.override.
apiVersion: mse.alibabacloud.com/v1alpha1
kind: MseIngressConfig
metadata:
name: reuse
spec:
id: gw-xxxx
override: false
ingress:
local:
ingressClass: mse
Comportamento de spec.override:
|
**Valor de |
Efeito nas opções de escuta de Ingress, aceleração TLS, controle de acesso por IP e observabilidade |
Efeito na associação do cluster |
|
|
Preserva as configurações existentes do gateway. |
Se o gateway ainda não estiver associado ao cluster, associa-o automaticamente e configura a escuta da |
|
|
Sobrescreve as configurações do gateway com os valores especificados neste MseIngressConfig. A omissão de um parâmetro limpa a configuração original correspondente. |
Associa o gateway ao cluster. |
Ao definir spec.override: true, especifique todos os parâmetros que deseja manter. Parâmetros omitidos no MseIngressConfig serão sobrescritos, o que pode afetar negativamente seu tráfego.
Excluir um gateway nativo da nuvem do MSE
Excluir um MseIngressConfig remove o gateway associado na maioria dos casos. A exceção ocorre em cenários de reutilização, nos quais o gateway é preservado.
Execute o comando a seguir para excluir um MseIngressConfig:
kubectl delete mseingressconfig <your-config-name>
Comportamento de exclusão por cenário:
|
Método de faturamento |
Gateway criado pelo MSE Ingress Controller |
Gateway reutilizado do console |
|
Pagamento conforme o uso |
A exclusão do MseIngressConfig também exclui o gateway. |
A exclusão do MseIngressConfig mantém o gateway. |
|
Assinatura |
N/A |
A exclusão do MseIngressConfig mantém o gateway. |
Configurar controle de acesso por IP
Permitir tráfego de IPs específicos (lista de permissões)
O exemplo a seguir permite que apenas o endereço IP 1.1.XX.XX e o bloco CIDR 2.0.XX.XX/8 acessem o gateway.
apiVersion: mse.alibabacloud.com/v1alpha1
kind: MseIngressConfig
metadata:
name: test
spec:
name: mse-ingress
global:
ipAccessControl:
whitelist:
- 1.1.XX.XX
- 2.0.XX.XX/8
Bloquear tráfego de IPs específicos (lista de bloqueios)
Este exemplo bloqueia o acesso proveniente do endereço IP 1.1.XX.XX e do bloco CIDR 2.0.XX.XX/8.
apiVersion: mse.alibabacloud.com/v1alpha1
kind: MseIngressConfig
metadata:
name: test
spec:
name: mse-ingress
global:
ipAccessControl:
blacklist:
- 1.1.XX.XX
- 2.0.XX.XX/8
Ativar o Simple Log Service
Antes de ativar o Simple Log Service (SLS), conceda permissões do SLS ao MSE Ingress Controller de acordo com o tipo do seu cluster:
Cluster ACK gerenciado ou dedicado: Consulte a seção "Conceder permissões ao MSE Ingress Controller em um cluster ACK dedicado" em Conceder permissões ao MSE Ingress Controller.
Cluster ACK Serverless: Consulte a seção "Conceder permissões ao MSE Ingress Controller em um cluster ACK Serverless" em Conceder permissões ao MSE Ingress Controller.
Cluster ACS: Consulte a seção "Conceder permissões ao MSE Ingress Controller em um cluster ACS" em Conceder permissões ao MSE Ingress Controller.
O exemplo a seguir configura o gateway para enviar logs de acesso a um projeto do SLS chamado demo. Para usar o projeto padrão, deixe reuseProject em branco.
apiVersion: mse.alibabacloud.com/v1alpha1
kind: MseIngressConfig
metadata:
name: test
spec:
name: mse-ingress
monitor:
logging:
sls:
reuseProject: "demo"
Ativar o Managed Service for OpenTelemetry
A configuração do Managed Service for OpenTelemetry habilita o rastreamento distribuído ponta a ponta para ajudar a diagnosticar e localizar problemas em produção.
O exemplo a seguir define a taxa de amostragem como 100%.
apiVersion: mse.alibabacloud.com/v1alpha1
kind: MseIngressConfig
metadata:
name: test
spec:
name: mse-ingress
monitor:
tracing:
xTrace:
sampleRate: "100"