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.

Ao instalar ou fazer upgrade do Cloud Service Mesh com o asmcli, ele implanta o Controlador de serviço canônico ao cluster. O controlador de serviços canônicos agrupa as cargas de trabalho que pertencem ao mesmo serviço lógico, e ele é necessário para o funcionamento completo do painel de 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 o controlador de serviço canônico não esteja ativado no cluster. Para determinar se o controlador de serviço canônico está 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.23 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.23 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:

Página de recursos do Anthos

  1. No console do Google Cloud, acesse a página "Clusters" do GKE Enterprise.

    Acessar a página "Clusters" do GKE Enterprise

  2. "Registre" todos os clusters na malha.

  3. No console do Google Cloud, acesse a página "Recursos" do GKE Enterprise.

    Acessar a página "Recursos" do GKE Enterprise

  4. Clique em Ativar ao lado do recurso "Malha de serviço".

Após alguns minutos, o controlador gerenciado é ativado e cria serviços canônicos para as cargas de trabalho em execução nos clusters registrados na sua malha. Execute kubectl get canonicalservices --all-namespaces para confirmar que alguns serviços canônicos foram criados para as cargas de trabalho na malha.

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

Instalação do plano de controle gerenciado

Se você instalou o Cloud Service Mesh gerenciado (com o 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.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

A seguir

Saiba mais sobre: