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 d'Anthos Service Mesh.

Lorsque vous installez ou mettez à jour Anthos Service Mesh à l'aide de l'outil asmcli, il déploie le contrôleur de service canonique sur votre cluster. Le contrôleur de service canonique regroupe les charges de travail appartenant au même service logique. Il est nécessaire pour disposer de toutes les fonctionnalités du 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 Anthos 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, procédez comme suit :

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.20 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.20 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 :

Page des fonctionnalités Anthos

  1. Dans la console Google Cloud, accédez à la page GKE Enterprise.

    Accéder à la page "Clusters GKE Enterprise"

  2. "Enregistrez" tous les clusters de votre maillage.

  3. Dans la console Google Cloud, accédez à la page "Fonctionnalités" de GKE Enterprise.

    Accéder à la page "Fonctionnalités de GKE Enterprise"

  4. Cliquez sur Activer à côté de la fonctionnalité "Service Mesh".

Après quelques minutes, le contrôleur géré active et crée des services canoniques pour les charges de travail exécutées sur les clusters enregistrés dans votre maillage. Exécutez kubectl get canonicalservices --all-namespaces pour vérifier que certains services canoniques ont été créés pour les charges de travail de votre maillage.

Création d'un cluster GKE

Si vous avez utilisé l'option Activer Anthos Service Mesh lors de la création d'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/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é Anthos Service Mesh géré (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/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

Étapes suivantes

Apprenez-en davantage sur les points suivants :