Abilitazione e disabilitazione del controller del servizio di canonicalizzazione

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

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

Se non hai utilizzato lo strumento asmcli per installare Anthos Service Mesh, il controller del servizio canonico potrebbe non essere abilitato sul tuo cluster. Per determinare se il controller del servizio canonico è abilitato sul tuo cluster:

kubectl get services -n asm-system

Abilita il controller del servizio canonico nel cluster

Se il controller del servizio canonico non è abilitato, puoi abilitarlo seguendo questi passaggi:

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

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

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

Disabilita il controller del servizio canonico nel cluster

Se vuoi disattivare il controller del servizio canonico:

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

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

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

Abilita il controller del servizio canonico gestito

Se preferisci non installare il controller nel cluster, puoi abilitare il controller del servizio canonico gestito, che esegue la stessa funzione per tutti i cluster registrati nel tuo mesh senza la necessità di installare o gestire il controller autonomamente.

Il controller gestito è progettato per cedere al controller nel cluster. Se esegui la migrazione dal controller nel cluster, devi eliminarlo da ciascun cluster su cui è in esecuzione affinché il controller gestito ne prenda il controllo. Per maggiori informazioni, consulta Disabilitare il controller del servizio canonico nel cluster.

Per abilitare il controller gestito:

Pagina delle funzionalità di Anthos

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

    Vai alla pagina Cluster di GKE Enterprise

  2. "Registra" tutti i cluster nella 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à "Mesh di servizi"

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

Creazione del cluster GKE

Se hai utilizzato l'opzione Abilita Anthos Service Mesh durante la creazione di un nuovo cluster GKE, il controller dei servizi canonici gestiti è stato installato per impostazione predefinita.

Assicurati di eseguire il controller del servizio canonico gestito eseguendo questo 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 i servizi canonici non vengono riconciliati correttamente, verrà visualizzato un messaggio di errore o un output simile al seguente messaggio:

  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.14/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 piano di controllo gestito

Se hai installato Anthos Service Mesh gestito (con l'API del parco risorse o con [asmcli(/service-mesh/docs/managed/provision-managed-anthos-service-mesh-asmcli)]), il controller di servizio canonico gestito è stato installato per impostazione predefinita.

Assicurati di eseguire il controller del servizio canonico gestito eseguendo questo 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 i servizi canonici non vengono riconciliati correttamente, verrà visualizzato un messaggio di errore o un output simile al seguente messaggio:

  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.14/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: