Tous les produits
Search
Centre de documentation

Container Service for Kubernetes:servicemesh-operator

Dernière mise à jour :Aug 11, 2026

Le composant servicemesh-operator automatise le déploiement et la gestion du cycle de vie d'Alibaba Cloud Service Mesh (ASM) au sein d'un cluster Container Service for Kubernetes (ACK). Une fois installé, il gère le provisionnement, l'enregistrement du cluster et la synchronisation de la configuration. Vous interagissez ainsi avec ASM exclusivement via des ressources personnalisées natives à Kubernetes, sans avoir à basculer entre les consoles. Cette approche vous permet d'activer rapidement des fonctionnalités ASM avancées, telles que la gestion du trafic, la sécurité et l'observabilité.

Prérequis

Avant de commencer, assurez-vous de disposer des éléments suivants :

  • Un cluster ACK exécutant Kubernetes 1.28 ou une version ultérieure

  • Une instance ASM activée

Fonctionnement

L'installation de servicemesh-operator déclenche automatiquement la séquence suivante :

  1. Déploiement d'un contrôleur nommé servicemesh-operator dans le plan de contrôle du cluster. Il surveille et réconcilie les ressources personnalisées ServiceMesh.

  2. Création de la définition de ressource personnalisée (CRD) servicemesh.istio.alibabacloud.com.

  3. Création automatique d'une ressource personnalisée (CR) ServiceMesh nommée mesh.

  4. Provisionnement par le contrôleur d'une instance ASM Édition Standard nommée mesh-for-${cluster ID} et enregistrement du cluster ACK dans celle-ci.

Une fois le provisionnement terminé, interrogez la CR mesh pour suivre la progression et superviser l'état actuel.

Surveiller l'état de l'instance ASM

Console

  1. Sur la page Clusters ACK, cliquez sur le nom de votre cluster. Dans le volet de navigation de gauche, cliquez sur Workloads > Custom Resources.

  2. Sur la page Custom Resources, recherchez ServiceMesh. Dans les résultats, cliquez sur le nom ServiceMesh sous istio.alibabacloud.com. Cliquez sur Actions > Edit YAML. Exemple de fichier YAML :

    apiVersion: istio.alibabacloud.com/v1beta1
    kind: ServiceMesh
    metadata:
      annotations:
        operator.istio.alibabacloud.com/deletion-policy: Retain
      creationTimestamp: "2026-01-09T02:25:12Z"
      finalizers:
      - servicemeshoperator.finalizers.alibabacloud.com
      generation: 2
      name: asm
      resourceVersion: "36619976"
      uid: 94967e01-fc25-477e-9da9-4df42cede8ba
    spec:
      clusterSpec: Enterprise
    status:
      clusterSpec: Enterprise
      conditions:
      - lastTransitionTime: "2026-01-09T02:25:19Z"
        message: ""
        observedGeneration: 2
        reason: Passed
        status: "True"
        type: PreChecked
      - lastTransitionTime: "2026-01-09T02:25:32Z"
        message: ""
        observedGeneration: 2
        reason: Available
        status: "True"
        type: ServiceMeshAvailable
      - lastTransitionTime: "2026-01-09T02:25:32Z"
        message: ""
        observedGeneration: 2
        reason: Succeeded
        status: "True"
        type: ClusterEnrolled
      - lastTransitionTime: "2026-01-09T02:25:38Z"
        message: ""
        observedGeneration: 2
        reason: Succeeded
        status: "True"
        type: MeshConfigApplied
      serviceMeshId: c6490deb776cc458c82c4c22a69315bae
      serviceMeshName: mesh-for-cf17b23e9fa6b4fb081c58a33964cd3dc

kubectl

  1. Obtenir le kubeconfig du cluster et se connecter avec kubectl.

  2. Consultez la CR ServiceMesh :

    kubectl get servicemesh mesh -n istio-system -o yaml

    Résultat attendu :

    apiVersion: istio.alibabacloud.com/v1beta1
    kind: ServiceMesh
    metadata:
      annotations:
        operator.istio.alibabacloud.com/deletion-policy: Retain
      creationTimestamp: "2026-01-09T02:25:12Z"
      finalizers:
      - servicemeshoperator.finalizers.alibabacloud.com
      generation: 2
      name: asm
      resourceVersion: "36619976"
      uid: 94967e01-fc25-477e-9da9-4df42cede8ba
    spec:
      clusterSpec: Enterprise
    status:
      clusterSpec: Enterprise
      conditions:
      - lastTransitionTime: "2026-01-09T02:25:19Z"
        message: ""
        observedGeneration: 2
        reason: Passed
        status: "True"
        type: PreChecked
      - lastTransitionTime: "2026-01-09T02:25:32Z"
        message: ""
        observedGeneration: 2
        reason: Available
        status: "True"
        type: ServiceMeshAvailable
      - lastTransitionTime: "2026-01-09T02:25:32Z"
        message: ""
        observedGeneration: 2
        reason: Succeeded
        status: "True"
        type: ClusterEnrolled
      - lastTransitionTime: "2026-01-09T02:25:38Z"
        message: ""
        observedGeneration: 2
        reason: Succeeded
        status: "True"
        type: MeshConfigApplied
      serviceMeshId: c6490deb776cc458c82c4c22a69315bae
      serviceMeshName: mesh-for-cf17b23e9fa6b4fb081c58a33964cd3dc

Interprétation des conditions d'état

Le contrôleur réconcilie l'instance ASM en quatre étapes ordonnées. Chaque étape apparaît sous forme de condition dans status.conditions. Une instance saine affiche les quatre conditions avec status: "True" :

Type de condition Signification Raison attendue
PreChecked Les vérifications préalables sont réussies Passed
ServiceMeshAvailable L'instance ASM est provisionnée et disponible Available
ClusterEnrolled Le cluster ACK est enregistré dans l'instance ASM Succeeded
MeshConfigApplied La configuration du maillage est appliquée au cluster Succeeded

Si une condition affiche status: "False" ou status: "Unknown", consultez le champ message de cette condition pour obtenir des détails sur l'échec.

Limitations

  • servicemesh-operator prend uniquement en charge une liaison un-à-un entre une instance ASM et un cluster ACK. Pour mettre à jour une instance ASM existante, utilisez la console ASM.

  • L'édition Standard est gratuite, mais ne bénéficie d'aucun accord de niveau de service (SLA), prend en charge jusqu'à 50 pods et n'est disponible qu'en Chine continentale. La création d'une instance Édition Standard dans d'autres régions échoue. Pour utiliser une autre édition, définissez .spec.clusterSpec sur Enterprise ou Ultimate dans la CR ServiceMesh. Pour plus d'informations sur la facturation, consultez la section Présentation de la facturation.

Avertissement

La suppression d'une CR ServiceMesh retire le cluster ACK d'ASM. Si le cluster utilise activement des ressources ASM, telles que des passerelles ou des proxies Sidecar, la suppression échoue. Vérifiez status.conditions pour confirmer l'état actuel avant de procéder à la suppression.

Avertissement

L'annotation de suppression détermine si l'instance ASM elle-même est supprimée lors de la suppression de la CR ServiceMesh. Définissez cette annotation avec précaution ; le comportement par défaut est Retain. Consultez la section Politique de suppression pour plus de détails.

Référence de la CRD ServiceMesh

La ressource ServiceMesh définit l'état souhaité et l'état réel d'un maillage de services ASM dans un cluster Kubernetes. Certains champs .spec sont modifiables ; leur modification déclenche des mises à jour des propriétés correspondantes du maillage.

Spécification (.spec)

Champ Type Description Par défaut Obligatoire Modifiable
id string L'ID du maillage de services. S'il n'est pas défini, le système en génère un. Spécifiez ce champ pour créer un nouveau maillage de services ou ajouter le cluster à un maillage existant. Ce champ est prioritaire sur name. N/A Non Non
name string Le nom du maillage de services. S'il n'est pas défini, la valeur par défaut est mesh-for-${cluster ID}. Spécifiez ce champ pour créer un nouveau maillage de services ou ajouter le cluster à un maillage existant. N/A Non Oui
clusterSpec string L'édition ASM. Valeurs valides : Standard, Enterprise, Ultimate. Standard (Chine continentale) / Enterprise (autres régions) Non Oui

État (.status)

Champ Type Description
serviceMeshName string Le nom unique de l'instance ASM créée par le contrôleur. Enregistré avant la première demande de création et immuable pendant la réconciliation afin d'éviter les instances en double.
serviceMeshId string L'ID de l'instance ASM créée avec succès, récupéré auprès d'Alibaba Cloud après le provisionnement.
clusterSpec string L'édition de l'instance ASM qui a été créée.
conditions []ServiceMeshCondition La liste ordonnée des étapes de réconciliation et de leurs états actuels.

ServiceMeshCondition

Champ Type Description
lastTransitionTime metav1.Time L'horodatage du dernier changement d'état de cette condition.
status string True (condition remplie), False (condition non remplie) ou Unknown.
type string L'étape de réconciliation : PreChecked, ServiceMeshAvailable, ClusterEnrolled, MeshConfigApplied, Retried ou ServiceMeshDeleted.
message string Contexte supplémentaire concernant la condition, particulièrement utile en cas d'échec d'une étape.
reason string Un code de raison lisible par machine : Reconciling, Succeeded, Failed, Available, Unavailable, Passed, WaitSteady ou Retried.

Annotations spéciales

Nouvelle tentative

En cas d'erreur de réconciliation, définissez l'annotation operator.istio.alibabacloud.com/retry-at pour déclencher une nouvelle tentative :

kubectl annotate servicemesh mesh operator.istio.alibabacloud.com/retry-at=""

Le contrôleur retente automatiquement l'opération ayant échoué.

Politique de suppression

Utilisez l'annotation operator.istio.alibabacloud.com/deletion-policy pour contrôler le sort de l'instance ASM lors de la suppression de la CR ServiceMesh :

  • Retain (par défaut) : L'instance ASM reste dans Alibaba Cloud.

  • Delete : L'instance ASM est supprimée d'Alibaba Cloud.

Définissez cette annotation lors de la création de la ressource :

apiVersion: istio.alibabacloud.com/v1beta1
kind: ServiceMesh
metadata:
  name: advanced-mesh
  annotations:
    operator.istio.alibabacloud.com/deletion-policy: Delete  # or Retain
spec:
  name: advanced-service-mesh
  clusterSpec: Ultimate
Important

Si l'annotation est définie sur Delete, la suppression du cluster ACK entraîne également la suppression de l'instance ASM.