Abilitazione e disabilitazione del controller del servizio di canonicalizzazione

Nota: i servizi canonici sono supportati automaticamente in Cloud Service Mesh versione 1.6.8 e successive.

Quando esegui l'installazione o l'upgrade di Cloud Service Mesh utilizzando asmcli, viene eseguito il deployment del controller del servizio di canonicalizzazione nel cluster. Il controller del servizio di canonicalizzazione raggruppa i workload appartenenti allo stesso servizio logico ed è necessario per la piena funzionalità della dashboard Servizi nella console Google Cloud. Il deployment del controller crea il deployment di canonical-service-controller-manager nel cluster nello spazio dei nomi asm-system e non influisce sui servizi o sui workload.

Se non hai utilizzato lo strumento asmcli per installare Cloud Service Mesh, è possibile che il controller del servizio di canonicalizzazione non sia abilitato sul tuo cluster. Per determinare se il controller del servizio di canonicalizzazione è abilitato nel cluster:

kubectl get services -n asm-system

Attivare il controller del servizio di canonicalizzazione all'interno del cluster

Se il controller del servizio di canonicalizzazione non è attivo, puoi attivarlo seguendo questi passaggi:

  1. Scarica il pacchetto kpt contenente il controller nella directory di lavoro corrente:

    kpt pkg get https://github.com/GoogleCloudPlatform/anthos-service-mesh-packages.git/asm@release-1.23 asm
    
  2. Applica la configurazione del controller:

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

Disattivare il controller del servizio di canonicalizzazione all'interno del cluster

Se vuoi disattivare il controller del servizio di canonicalizzazione:

  1. Scarica il pacchetto kpt contenente il controller nella directory di lavoro corrente:

    kpt pkg get https://github.com/GoogleCloudPlatform/anthos-service-mesh-packages.git/asm@release-1.23 asm
    
  2. Elimina il controller dal cluster:

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

Attivare il controller del servizio di canonicalizzazione gestito

Se preferisci non installare il controller all'interno del cluster, puoi attivare il controller del servizio Canonical gestito, che esegue la stessa funzione per tutti i cluster registrati nel tuo mesh senza che tu debba installare o gestire il controller.

Il controller gestito è progettato per cedere il controllo al controller all'interno del cluster. Se esegui la migrazione dal controller in cluster, devi eliminare il controller in cluster da ogni cluster su cui è in esecuzione affinché il controller gestito possa subentrare. Per ulteriori informazioni, consulta Disattivare il controller del servizio Canonical nel cluster.

Per attivare il controller gestito:

Pagina Funzionalità di Anthos

  1. Nella console Google Cloud, vai alla pagina Cluster GKE Enterprise.

    Vai alla pagina Cluster GKE Enterprise

  2. "Registra" tutti i cluster della tua rete mesh.

  3. Nella console Google Cloud, vai alla pagina Funzionalità di GKE Enterprise.

    Vai alla pagina Funzionalità di GKE Enterprise

  4. Fai clic su Attiva accanto alla funzionalità "Service Mesh".

Dopo alcuni minuti, il controller gestito attiva e crea servizi Canonical per i carichi di lavoro in esecuzione sui cluster registrati nel tuo mesh. Esegui kubectl get canonicalservices --all-namespaces per verificare che siano stati creati alcuni Servizi canonici per i carichi di lavoro nella tua mesh.

Creazione di un cluster GKE

Se hai utilizzato l'opzione Abilita Cloud Service Mesh durante la creazione di un nuovo cluster GKE, il Controller dei servizi Canonical gestito è stato installato per impostazione predefinita.

Assicurati di eseguire il controller del servizio di canonicalizzazione gestito eseguendo il seguente comando:

gcloud beta container hub mesh describe --project=PROJECT_ID

La descrizione indica che i servizi canonici sono stati riconciliati correttamente:

  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'

Se la riconciliazione dei servizi Canonical non va a buon fine, verrà visualizzato un messaggio di errore o un output simile al seguente:

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

Installazione del control plane gestito

Se hai installato Cloud Service Mesh gestito (con l'API fleet o con asmcli), il controller di servizio Canonical gestito è stato installato per impostazione predefinita.

Assicurati di eseguire il controller del servizio di canonicalizzazione gestito eseguendo il seguente comando:

gcloud beta container hub mesh describe --project=PROJECT_ID

La descrizione indica che i servizi canonici sono stati riconciliati correttamente:

  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'

Se la riconciliazione dei servizi Canonical non va a buon fine, verrà visualizzato un messaggio di errore o un output simile al seguente:

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

Passaggi successivi

Scopri di più su: