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

Observação: os serviços canônicos têm suporte automático no Cloud Service Mesh versão 1.6.8 e superior.

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ço canônico agrupa as cargas de trabalho que pertencem o mesmo serviço lógico e é necessário para a funcionalidade plena do no painel "Serviços" no console do Google Cloud. A implantação do controlador cria a implantação do canonical-service-controller-manager no cluster no namespace asm-system. Isso não afeta seus serviços ou 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 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.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

Instalação do plano de controle gerenciado

Se você instalou o Cloud Service Mesh gerenciado (com a API frota ou com asmcli, o controlador de serviço canônico gerenciado foi instalado pela 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.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

A seguir

Saiba mais sobre: