Como ativar e desativar o controlador de serviço canônico

Observação: os serviços canônicos são compatíveis com a versão 1.6.8 do Cloud Service Mesh e versões mais recentes.

Quando você instala ou faz upgrade do Cloud Service Mesh usando o asmcli, ele implanta o controlador de serviço canônico no cluster. O controlador de serviços canônicos agrupa as cargas de trabalho que pertencem ao mesmo serviço lógico e é necessário para o funcionamento completo do painel de serviços no Console do Google Cloud. Como implantar o controlador cria a implantação canonical-service-controller-manager no cluster em o namespace asm-system e não afeta os serviços nem as cargas de trabalho.

Se você não usou a ferramenta asmcli para instalar o Cloud Service Mesh, talvez não têm o controlador de serviço canônico ativado no cluster. Para determinar Se o controlador de serviço canônico estiver ativado no cluster:

kubectl get services -n asm-system

Ativar o controlador de serviço canônico no cluster

Se o controlador de serviço canônico não estiver ativado, será possível ativá-lo com os passos a seguir:

  1. Faça o download do pacote kpt que contém o controlador para o diretório de trabalho atual:

    kpt pkg get https://github.com/GoogleCloudPlatform/anthos-service-mesh-packages.git/asm@release-1.22 asm
    
  2. Aplique a configuração do controlador:

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

Desativar o controlador de serviço canônico no cluster

Se você quiser desativar o controlador de serviço canônico:

  1. Faça o download do pacote kpt que contém o controlador no diretório de trabalho atual:

    kpt pkg get https://github.com/GoogleCloudPlatform/anthos-service-mesh-packages.git/asm@release-1.22 asm
    
  2. Exclua o controlador do cluster:

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

Ativar o controlador de serviço canônico gerenciado

Se preferir não instalar o controlador no cluster, ative o controlador de serviço canônico gerenciado, que executa a mesma função para todos os clusters registrados na malha sem a necessidade de instalar ou gerenciar o controlador por conta própria.

O controlador gerenciado foi projetado para funcionar no controlador no cluster. Se você estiver migrando do controlador no cluster, será necessário excluir o controlador no cluster de cada cluster em execução para que o controlador gerenciado assuma o controle. Para mais informações, consulte Desativar o controlador de serviço canônico no cluster.

Para ativar o controlador gerenciado:

Criação de cluster do GKE

Se você usou a opção Ativar o Cloud Service Mesh ao criar um novo cluster do GKE, o controlador de serviço canônico gerenciado foi instalado por padrão.

Verifique se você está executando o controlador de serviço canônico gerenciado executando o seguinte comando:

gcloud beta container hub mesh describe --project=PROJECT_ID

A descrição indica que os Serviços canônicos são reconciliados com sucesso:

  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 os serviços canônicos não forem reconciliados, haverá uma mensagem de erro ou uma saída semelhante à seguinte mensagem:

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

Instalação do plano de controle gerenciado

Se você instalou o Cloud Service Mesh gerenciado (com a API Fleet ou com asmcli), o Controlador de serviço canônico gerenciado foi instalado por padrão.

Verifique se você está executando o controlador de serviço canônico gerenciado executando o seguinte comando:

gcloud beta container hub mesh describe --project=PROJECT_ID

A descrição indica que os Serviços canônicos são reconciliados com sucesso:

  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 os serviços canônicos não forem reconciliados, haverá uma mensagem de erro ou uma saída semelhante à seguinte mensagem:

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

A seguir

Saiba mais sobre: