Activer et désactiver le contrôleur de service canonique

Remarque : Les services canoniques sont automatiquement pris en charge dans les versions 1.6.8 et ultérieures de Cloud Service Mesh.

Lorsque vous installez ou mettez à niveau Cloud Service Mesh à l'aide de asmcli, il déploie le contrôleur de service canonique sur votre cluster. Le contrôleur de service canonique regroupe les charges de travail le même service logique et est requis pour l'ensemble des fonctionnalités le tableau de bord des services dans la console Google Cloud. Le déploiement du contrôleur crée le déploiement canonical-service-controller-manager dans votre cluster dans l'espace de noms asm-system, et n'a aucune incidence sur vos services ou charges de travail.

Si vous n'avez pas utilisé l'outil asmcli pour installer Cloud Service Mesh, il est possible que le contrôleur de service canonique ne soit pas activé sur votre cluster. Pour déterminer si le contrôleur de service canonique est activé sur votre cluster :

kubectl get services -n asm-system

Activer le contrôleur de service canonique au sein du cluster

Si le contrôleur de service canonique n'est pas activé, vous pouvez l'activer en procédant comme suit :

  1. Téléchargez le package kpt contenant le contrôleur dans le répertoire de travail actuel :

    kpt pkg get https://github.com/GoogleCloudPlatform/anthos-service-mesh-packages.git/asm@release-1.22 asm
    
  2. Appliquez la configuration du contrôleur :

    kubectl apply -f asm/canonical-service/controller.yaml
    

Désactiver le contrôleur de service canonique du cluster

Si vous souhaitez désactiver le contrôleur de service canonique, procédez comme suit :

  1. Téléchargez le package kpt qui contient le contrôleur dans le répertoire de travail actuel :

    kpt pkg get https://github.com/GoogleCloudPlatform/anthos-service-mesh-packages.git/asm@release-1.22 asm
    
  2. Supprimez le contrôleur de votre cluster :

    kubectl delete -f asm/canonical-service/controller.yaml
    

Activer le contrôleur de service canonique géré

Si vous préférez ne pas installer le contrôleur intégré au cluster, vous pouvez activer le contrôleur de service canonique géré, qui exécute la même fonction pour tous les clusters enregistrés dans votre réseau maillé sans qu'il soit nécessaire d'installer ou de gérer le contrôleur vous-même.

Le contrôleur géré est conçu pour faire place au contrôleur intégré au cluster. Si vous effectuez une migration depuis le contrôleur intégré au cluster, vous devez supprimer ce contrôleur dans chaque cluster sur lequel il est exécuté pour que le contrôleur géré prenne le relais. Pour en savoir plus, consultez la section Désactiver le contrôleur de services canoniques intégré au cluster.

Pour activer le contrôleur géré, procédez comme suit:

Création d'un cluster GKE

Si vous avez utilisé l'option Activer Cloud Service Mesh lors de la création d'un un cluster GKE, Le contrôleur de service canonique géré a été installé par défaut.

Assurez-vous d'exécuter le contrôleur de service canonique géré en exécutant la commande suivante :

gcloud beta container hub mesh describe --project=PROJECT_ID

La description indique que les services canoniques ont été rapprochés :

  projects/<your project number>/locations/global/memberships/<your cluster name>:
    code: OK
    description: |-
      Revision(s) ready for use: asm-managed.
      All Canonical Services have been reconciled successfully.
    servicemeshFeatureState: {}
    updateTime: '2021-11-16T21:10:36.289467777Z'

Si les services canoniques ne sont pas correctement rapprochés, un message d'erreur ou un résultat semblable au suivant s'affiche :

  projects/<your project number>/locations/global/memberships/<your cluster name>:
    code: OK
    description: |-
      Revision(s) ready for use: istiod-asm-173-6.
      The Managed Canonical Service Controller is yielding to the in-cluster controller.  See https://cloud.google.com/service-mesh/v1.21/docs/canonical-service-controller-enable-and-disable#disable-in-cluster-service-controller for instructions on removing the in-cluster controller.
    servicemeshFeatureState: {}
    updateTime: '2021-11-16T21:05:43.286828851Z'
  lifecycleState: ENABLED

Installation du plan de contrôle géré

Si vous avez installé le service géré Cloud Service Mesh (avec l'API Fleet ou avec asmcli, le contrôleur de service canonique géré a été installé par défaut.

Assurez-vous d'exécuter le contrôleur de service canonique géré en exécutant la commande suivante :

gcloud beta container hub mesh describe --project=PROJECT_ID

La description indique que les services canoniques ont été rapprochés :

  projects/<your project number>/locations/global/memberships/<your cluster name>:
    code: OK
    description: |-
      Revision(s) ready for use: asm-managed.
      All Canonical Services have been reconciled successfully.
    servicemeshFeatureState: {}
    updateTime: '2021-11-16T21:10:36.289467777Z'

Si les services canoniques ne sont pas correctement rapprochés, un message d'erreur ou un résultat semblable au suivant s'affiche :

  projects/<your project number>/locations/global/memberships/<your cluster name>:
    code: OK
    description: |-
      Revision(s) ready for use: istiod-asm-173-6.
      The Managed Canonical Service Controller is yielding to the in-cluster controller.  See https://cloud.google.com/service-mesh/v1.21/docs/canonical-service-controller-enable-and-disable#disable-in-cluster-service-controller for instructions on removing the in-cluster controller.
    servicemeshFeatureState: {}
    updateTime: '2021-11-16T21:05:43.286828851Z'
  lifecycleState: ENABLED

Étape suivante

Apprenez-en davantage sur les points suivants :