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:
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
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:
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
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
No console do Google Cloud, acesse a página "Clusters" do GKE Enterprise.
"Registre" todos os clusters na malha.
No console do Google Cloud, acesse a página "Recursos" do GKE Enterprise.
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:
- Serviços canônicos
- Práticas recomendadas para serviços canônicos
- Como definir um serviço canônico
- Como resolver problemas com serviços canônicos