Tous les produits
Search
Centre de documentation

Microservices Engine:Configurer un MseIngressConfig

Dernière mise à jour :Aug 12, 2026

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.

ingress的应用场景

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 champ spec.parameters est prioritaire sur la valeur de ingress.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.

Important

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

  1. Appliquez un MseIngressConfig pour créer la passerelle. L'exemple suivant crée une passerelle nommée mse-ingress avec 3 réplicas selon la spécification 2c4g.

    apiVersion: mse.alibabacloud.com/v1alpha1
    kind: MseIngressConfig
    metadata:
      name: test
    spec:
      name: mse-ingress
      common:
        instance:
          spec: 2c4g
          replicas: 3
  2. 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: test

    Après l'application des deux resources, les resources Ingress avec l'IngressClass mse sont traitées par la passerelle cloud-native associée.

  3. Vérifiez que la passerelle est opérationnelle.

    kubectl get mseingressconfig test

    L'état progresse selon la séquence Pending → Running → Listening. Lorsque l'état affiche Listening, 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.
Important

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 :

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"