MseIngressConfig est une CustomResourceDefinition (CRD) fournie par Microservices Engine (MSE) Ingress Controller. Elle permet de gérer le cycle de vie complet d'une passerelle cloud-native MSE (création, réutilisation ou suppression) et de configurer des paramètres globaux tels que le contrôle d'accès IP, l'accélération matérielle TLS, la journalisation des accès et le traçage distribué, sans redémarrer le contrôleur.
Fonctionnement
MSE Ingress Controller surveille les resources MseIngressConfig dans votre cluster et maintient dynamiquement la passerelle cloud-native correspondante. Une fois la passerelle associée au serveur API de votre cluster, son plan de contrôle synchronise les modifications des resources Ingress et met à jour les règles de routage en temps réel. Lorsqu'elle reçoit une requête, la passerelle la compare aux règles de routage Ingress et transfère le trafic vers le pod backend approprié.
Le diagramme suivant illustre la relation entre les composants.

Les composants clés sont les suivants :
Service : Abstraction des services backend. Un service représente un ensemble de pods répliqués.
Ingress : Contient les règles de proxy inverse qui acheminent les requêtes HTTP ou HTTPS vers les services en fonction des noms d'hôte et des chemins d'accès.
IngressClass : Déclare quelle implémentation de contrôleur Ingress gère un ensemble de resources Ingress. Associez une IngressClass à un MseIngressConfig pour activer la passerelle cloud-native MSE pour ces resources Ingress.
MseIngressConfig : CRD fournissant la configuration de la passerelle, notamment les spécifications d'instance, les paramètres réseau, les politiques globales et la portée d'écoute Ingress.
MSE Ingress Controller : Plan de contrôle qui surveille les resources MseIngressConfig et coordonne la passerelle cloud-native. Il n'agit pas comme plan de données réseau.
Un MseIngressConfig correspond exactement à une passerelle cloud-native MSE. Pour exécuter plusieurs passerelles, créez plusieurs MseIngressConfigs.
Référence MseIngressConfig
Exemple de configuration complète
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
Paramètres
| Paramètre | Description | Obligatoire | Valeur par défaut |
|---|---|---|---|
name |
Nom de la passerelle | Non | mse-ingress |
common.pay.payType |
Méthode de facturation. Seul POSTPAY (paiement à l'utilisation) est pris en charge. |
Non | POSTPAY |
common.instance.spec |
Taille de l'instance de passerelle. Valeurs valides : 2c4g, 4c8g, 8c16g, 16c32g |
Non | 4c8g |
common.instance.replicas |
Nombre de réplicas de la passerelle. Valeurs valides : 0–30 | Non | 3 |
common.network.vSwitches |
vSwitches principal et secondaire. Spécifiez-en au moins un et au maximum deux. Si ce paramètre n'est pas défini, le vSwitch du nœud exécutant le pod MSE Ingress Controller est utilisé. | Non | Aucune |
common.network.publicSLBSpec |
Spécifications de l'instance Server Load Balancer (SLB) exposée sur Internet. Valeurs valides : slb.s1.small, slb.s2.small, slb.s2.medium, slb.s3.small, slb.s3.medium, slb.s3.large |
Non | slb.s2.small |
common.network.privateSLBSpec |
Spécifications de l'instance SLB interne. Mêmes valeurs valides que pour publicSLBSpec. |
Non | slb.s2.small |
common.securityGroupType |
Type de groupe de sécurité. Valeurs valides : enterprise (avancé), normal (de base) |
Non | normal |
global.tls.enableHardwareAcceleration |
Active l'accélération matérielle Transport Layer Security (TLS) pour améliorer les performances de traitement HTTPS. | Non | true |
global.ipAccessControl.whitelist |
Liste d'autorisation d'adresses IP globale. Accepte des adresses IP individuelles et des blocs CIDR. | Non | Non configuré |
global.ipAccessControl.blacklist |
Liste de blocage d'adresses IP globale. Accepte des adresses IP individuelles et des blocs CIDR. | Non | Non configuré |
monitor.logging.sls |
Active la journalisation des accès Simple Log Service (SLS). Accordez les permissions SLS à MSE Ingress Controller avant l'activation. | Non | Désactivé |
monitor.logging.sls.reuseProject |
Projet SLS pour les journaux d'accès. Laissez vide pour utiliser le projet par défaut ; spécifiez un nom de projet pour utiliser un projet existant. | Non | Vide (projet par défaut) |
monitor.tracing.xTrace |
Active l'analyse de traçage xTrace. Ne peut pas être activé simultanément avec openTelemetry. |
Non | Désactivé |
monitor.tracing.xTrace.sampleRate |
Taux d'échantillonnage pour xTrace, sous forme de pourcentage en chaîne de caractères. Par exemple, "100" = 100 %. |
Non | "0" |
monitor.tracing.openTelemetry |
Active l'analyse de traçage OpenTelemetry. Ne peut pas être activé simultanément avec xTrace. |
Non | Désactivé |
monitor.tracing.openTelemetry.sampleRate |
Taux d'échantillonnage pour OpenTelemetry, sous forme de pourcentage en chaîne de caractères. | Non | "100" |
ingress.local.ingressClass |
IngressClass écoutée par la passerelle. Consultez le tableau ci-dessous pour les valeurs valides. | Non | Non configuré |
ingress.local.watchNamespace |
Namespace à surveiller. Laissez vide pour écouter tous les namespaces. Un seul namespace peut être spécifié. | Non | Vide (tous les namespaces) |
Valeurs valides pour ingress.local.ingressClass :
| Valeur | Comportement |
|---|---|
| Non configuré | Aucune resource Ingress n'est écoutée. |
mse |
Écoute les resources Ingress avec l'IngressClass mse. |
"" (chaîne vide) |
Écoute toutes les resources Ingress du cluster. |
nginx |
Écoute les resources Ingress avec l'IngressClass nginx, ou sans IngressClass. |
| Toute autre valeur | Écoute les resources Ingress associées à l'IngressClass spécifiée. |
Une resource IngressClass qui référence explicitement un MseIngressConfig dans son champspec.parametersest prioritaire sur la valeur deingress.local.ingressClass.
État
Vérifiez l'état d'un MseIngressConfig :
kubectl get mseingressconfig
Sortie attendue :
NAME STATUS MESSAGE
test Listening
L'état progresse dans l'ordre suivant : Pending → Running → Listening.
| État | Description |
|---|---|
Pending |
La passerelle cloud-native est en cours de création. Cette opération prend environ 3 minutes. |
Running |
La passerelle est créée et opérationnelle. |
Listening |
La passerelle est opérationnelle et écoute les resources Ingress du cluster. |
Failed |
La passerelle est invalide. Consultez le champ Message dans la sortie d'état pour en connaître la cause. |
Tags de ressource
Les passerelles cloud-native MSE créées ou réutilisées par des MseIngressConfigs sont automatiquement taguées. Consultez ces tags dans la section des informations de base de la console MSE.
Ne modifiez pas ces tags dans la console MSE. Leur modification risque de perturber le fonctionnement de la passerelle.
| Tag | Description |
|---|---|
ack.aliyun.com |
Identifie le cluster ACK dont cette passerelle gère le trafic ingress. |
ingress.k8s.alibaba/MseIngressConfig |
Identifie le MseIngressConfig associé à cette passerelle. |
kubernetes.reused.by.user |
Indique que la passerelle est réutilisée. La suppression du MseIngressConfig associé n'entraîne pas la suppression d'une passerelle taguée. |
Créer une passerelle cloud-native MSE
-
Appliquez un MseIngressConfig pour créer la passerelle. L'exemple suivant crée une passerelle nommée
mse-ingressavec 3 réplicas selon la spécification2c4g.apiVersion: mse.alibabacloud.com/v1alpha1 kind: MseIngressConfig metadata: name: test spec: name: mse-ingress common: instance: spec: 2c4g replicas: 3 -
Créez une resource IngressClass et liez-la au 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: testAprès l'application des deux resources, les resources Ingress avec l'IngressClass
msesont traitées par la passerelle cloud-native associée. -
Vérifiez que la passerelle est opérationnelle.
kubectl get mseingressconfig testL'état progresse selon la séquence
Pending→Running→Listening. Lorsque l'état afficheListening, la passerelle est prête.
Réutiliser une passerelle cloud-native MSE existante
Pour réutiliser une passerelle existante, définissez spec.id sur l'ID de la passerelle (au format gw-xxx) et contrôlez l'écrasement éventuel de sa configuration via spec.override.
apiVersion: mse.alibabacloud.com/v1alpha1
kind: MseIngressConfig
metadata:
name: reuse
spec:
id: gw-xxxx
override: false
ingress:
local:
ingressClass: mse
Comportement de spec.override :
**Valeur de spec.override** |
Effet sur les options d'écoute Ingress, l'accélération TLS, le contrôle d'accès IP et l'observabilité | Effet sur l'association au cluster |
|---|---|---|
false |
Les paramètres existants de la passerelle sont conservés. | Si la passerelle n'est pas encore associée au cluster, elle l'est automatiquement et l'écoute ingressClass est configurée. Si elle est déjà associée, les paramètres Ingress d'origine restent inchangés. |
true |
Écrase les paramètres de la passerelle avec les valeurs spécifiées dans ce MseIngressConfig. Si un paramètre est omis dans le MseIngressConfig, le paramètre d'origine est effacé. | Associe la passerelle au cluster. |
Lorsque vous définissez spec.override: true, spécifiez tous les paramètres que vous souhaitez conserver. Les paramètres omis dans le MseIngressConfig seront écrasés, ce qui risque d'impacter négativement votre trafic.
Supprimer une passerelle cloud-native MSE
La suppression d'un MseIngressConfig entraîne généralement la suppression de la passerelle associée. L'exception concerne les scénarios de réutilisation, où la passerelle est conservée.
Exécutez la commande suivante pour supprimer un MseIngressConfig :
kubectl delete mseingressconfig <your-config-name>
Comportement de suppression selon le scénario :
| Méthode de facturation | Passerelle créée par MSE Ingress Controller | Passerelle réutilisée depuis la console |
|---|---|---|
| Paiement à l'utilisation | La suppression du MseIngressConfig supprime également la passerelle. | La suppression du MseIngressConfig conserve la passerelle. |
| Abonnement | N/A | La suppression du MseIngressConfig conserve la passerelle. |
Configurer le contrôle d'accès IP
Autoriser le trafic provenant d'IP spécifiques (liste d'autorisation)
L'exemple suivant autorise uniquement l'adresse IP 1.1.XX.XX et le bloc CIDR 2.0.XX.XX/8 à accéder à la passerelle.
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
Bloquer le trafic provenant d'IP spécifiques (liste de blocage)
L'exemple suivant bloque l'accès depuis l'adresse IP 1.1.XX.XX et le bloc 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
Activer Simple Log Service
Avant d'activer Simple Log Service (SLS), accordez les permissions SLS à MSE Ingress Controller selon votre type de cluster :
Cluster ACK géré ou dédié : Consultez la section « Accorder des permissions à MSE Ingress Controller dans un cluster ACK dédié » dans Accorder des permissions à MSE Ingress Controller.
Cluster ACK Serverless : Consultez la section « Accorder des permissions à MSE Ingress Controller dans un cluster ACK Serverless » dans Accorder des permissions à MSE Ingress Controller.
Cluster ACS : Consultez la section « Accorder des permissions à MSE Ingress Controller dans un cluster ACS » dans Accorder des permissions à MSE Ingress Controller.
L'exemple suivant configure la passerelle pour envoyer les journaux d'accès à un projet SLS nommé demo. Pour utiliser le projet par défaut, laissez reuseProject vide.
apiVersion: mse.alibabacloud.com/v1alpha1
kind: MseIngressConfig
metadata:
name: test
spec:
name: mse-ingress
monitor:
logging:
sls:
reuseProject: "demo"
Activer Managed Service for OpenTelemetry
La configuration de Managed Service for OpenTelemetry permet d'activer le traçage distribué de bout en bout afin de faciliter le diagnostic et la localisation des problèmes en production.
L'exemple suivant définit le taux d'échantillonnage à 100 %.
apiVersion: mse.alibabacloud.com/v1alpha1
kind: MseIngressConfig
metadata:
name: test
spec:
name: mse-ingress
monitor:
tracing:
xTrace:
sampleRate: "100"