A governança do Microservices Engine (MSE) adiciona gerenciamento de tráfego, canary releases, inicialização e encerramento graceful e limitação de taxa às suas aplicações Spring Cloud e Dubbo, sem exigir alterações no código. Este guia orienta você na conexão de aplicações implantadas no Container Service for Kubernetes (ACK) ou no Container Compute Service (ACS) ao centro de governança do MSE.
Como funciona
O MSE utiliza o componente ack-onepilot para injetar automaticamente um agente Java nos pods da sua aplicação. Esse agente conecta cada pod ao centro de governança do MSE.
Ative a governança em um dos dois níveis:
|
Abordagem |
Quando usar |
O que acontece |
|
Todas ou a maioria das aplicações em um namespace precisam de governança |
Todo pod novo ou reimplantado no namespace se conecta automaticamente |
|
|
Apenas algumas aplicações precisam de governança |
Opte explicitamente por cada aplicação usando rótulos YAML |
Pré-requisitos
Antes de começar, certifique-se de ter:
Um cluster gerenciado ACK, cluster ACK Serverless ou cluster ACS. Para criar um cluster gerenciado ACK, consulte Criar um cluster gerenciado ACK
A governança de microsserviços do MSE ativada para sua conta
O cluster ACK ou ACS e o centro de governança do MSE na mesma região
Pelo menos 256 MB de memória heap da JVM para cada aplicação a ser conectada
(Se estiver usando um usuário RAM) As permissões descritas em Permissões de usuário RAM para integração com o MSE
Verifique as permissões do cluster
O cluster ACK deve ter permissões para acessar recursos do MSE. Se o cluster possuir um token de add-on do ARMS, o MSE concede autorização sem senha automaticamente. Clusters gerenciados ACK incluem esse token por padrão, mas alguns clusters mais antigos podem não tê-lo.
Para verificar a existência do token de add-on do ARMS:
Faça login no console do Container Service for Kubernetes. Na página Clusters, clique em Clusters e clique no nome do cluster desejado.
No painel de navegação à esquerda, escolha Configuration Management > Secrets.
Defina o Namespace como kube-system e procure por addon.arms.token.
Caso o token não exista, conceda manualmente as permissões necessárias.
Se seu projeto utilizar o componente open-source Sentinel juntamente com
com.alibaba.cloud.sentinel.feign.SentinelFeignAutoConfiguration, a conexão com o centro de governança do MSE falhará.Após a instalação do ack-onepilot, o agente injetado pode aumentar o tempo de inicialização da aplicação em até 10 segundos.
Ative a governança para todas as aplicações em um namespace
Ao ativar a governança no nível de namespace, todo pod novo ou reimplantado nesse namespace se conecta automaticamente ao centro de governança do MSE. Nenhuma configuração por aplicação é necessária.
Acesse o console do MSE e selecione uma região na barra de navegação superior.
No painel de navegação à esquerda, escolha Microservices Governance > Application Governance.
Na página Application list, clique em ACK Application Access.
Na caixa de diálogo ACK Application Access, configure os parâmetros a seguir e clique em OK.

|
Parâmetro |
Descrição |
|
Cluster type |
Selecione ACK Cluster, ACK Serverless Cluster ou ACS Cluster. Caso ainda não tenha autorizado o Container Service for Kubernetes a chamar o MSE, clique em Please Authorize para conceder a função AliyunCSManagedMseRole. |
|
Cluster Name/ID |
Escolha o cluster a ser conectado. Pesquise por palavra-chave, se necessário. |
|
ack-onepilot |
Exibe o status do componente. Se o ack-onepilot já estiver instalado, o console mostrará "Installed" seguido do número da versão, por exemplo, Installed 4.2.0. Caso contrário, o sistema o instalará automaticamente ao selecionar o cluster. Se seu usuário RAM não tiver as permissões necessárias, instale-o manualmente: abra o console do Container Service for Kubernetes, vá para a página de detalhes do cluster, clique em Add-ons, localize o ack-onepilot e clique em Install. Para detalhes sobre versões, consulte Componente ack-onepilot e Instalar e atualizar o componente de governança de microsserviços do MSE. |
|
Access Type |
Selecione Namespace Access. |
|
Cluster Namespace |
Indique o namespace que contém suas aplicações. |
|
Microservices Governance Namespace |
Defina o namespace de governança do MSE a ser associado ao namespace do seu cluster. |
Se você conectar por namespace e seu cluster não estiver em uma das regiões listadas abaixo, ele precisará ter acesso à Internet e conseguir se conectar a acm.aliyun.com:8080: China (Qingdao), China (Hangzhou), China (Pequim), China (Xangai), Shanghai-Finance Cloud, China (Shenzhen), Hong Kong (China), Singapura, Alemanha (Frankfurt), Austrália (Sydney), EUA (Vale do Silício) e EUA (Virgínia).
Personalize o nome de exibição da aplicação
Por padrão, o console do MSE usa o nome do deployment como nome de exibição da aplicação. Para definir um nome personalizado, adicione os seguintes rótulos ao YAML do deployment:
spec:
template:
metadata:
labels:
# MSE governance namespace. Default: default
mseNamespace: default
# Custom application name displayed in the MSE console
msePilotCreateAppName: "your-deployment-name"
Exclua uma aplicação da governança no nível de namespace
Para desativar a governança de uma aplicação específica no nível de namespace, adicione o rótulo msePilotAutoEnable definido como "off":
spec:
template:
metadata:
labels:
# Disable MSE governance for this application. The value must be quoted.
msePilotAutoEnable: "off"
Ative a governança para uma única aplicação
Caso apenas algumas aplicações no seu namespace necessitem de governança, conecte-as individualmente em vez de ativar o acesso no nível de namespace.
Acesse o console do MSE e selecione uma região na barra de navegação superior.
No painel de navegação à esquerda, escolha Microservices Governance > Application Governance.
Na página Application list, clique em ACK Application Access.
Na caixa de diálogo ACK Application Access, configure os parâmetros a seguir e clique em OK.

|
Parâmetro |
Descrição |
|
Cluster type |
Selecione ACK Cluster, ACK Serverless Cluster ou ACS Cluster. Caso ainda não tenha autorizado o Container Service for Kubernetes a chamar o MSE, clique em Please Authorize para conceder a função AliyunCSManagedMseRole. |
|
Cluster Name/ID |
Escolha o cluster a ser conectado. Pesquise por palavra-chave, se necessário. |
|
ack-onepilot |
Exibe o status do componente. Se o ack-onepilot já estiver instalado, o console mostrará "Installed" seguido do número da versão, por exemplo, Installed 4.2.0. Caso contrário, o sistema o instalará automaticamente ao selecionar o cluster. Se seu usuário RAM não tiver as permissões necessárias, instale-o manualmente: abra o console do Container Service for Kubernetes, vá para a página de detalhes do cluster, clique em Add-ons, localize o ack-onepilot e clique em Install. |
|
Access Type |
Selecione Single Application Access. |
-
Configure o YAML de deployment da aplicação no console do Container Service for Kubernetes:
Navegue até Workloads > Deployments e mude para o namespace da sua aplicação.
Localize a aplicação desejada e clique em View In YAML.
Adicione os rótulos abaixo e clique em Update:
spec:
template:
metadata:
labels:
# Enable MSE governance. The value must be quoted.
msePilotAutoEnable: "on"
# MSE governance namespace. If the namespace does not exist, it is created automatically.
mseNamespace: default
# Application name displayed in the MSE console. Must be quoted.
msePilotCreateAppName: "your-deployment-name"
Verifique a conexão
Após concluir a configuração, reinicie sua aplicação e valide a conexão:
Acesse o console do MSE e selecione uma região na barra de navegação superior.
No painel de navegação à esquerda, escolha Microservices Governance > Application Governance.
Selecione o namespace de governança de microsserviços desejado no menu suspenso de namespaces.
Confirme se sua aplicação aparece na lista com status ativo.
Se sua aplicação não aparecer, verifique os itens a seguir:
|
Sintoma |
Possível causa |
Resolução |
|
Aplicação não listada |
A aplicação não foi reiniciada após a configuração |
Reinicie ou reimplante a aplicação |
|
Aplicação não listada |
O ack-onepilot não está instalado ou não está em execução |
Abra o console do ACK, acesse Add-ons e verifique o status do ack-onepilot |
|
Aplicação não listada |
O cluster e o centro de governança do MSE estão em regiões diferentes |
Crie um novo cluster na mesma região ou selecione a região correspondente no console do MSE |
|
Aplicação não listada |
A memória heap da JVM está abaixo de 256 MB |
Aumente a memória heap da JVM para pelo menos 256 MB |
|
Falha na conexão |
O projeto usa o componente Sentinel com |
Remova a autoconfiguração do Sentinel do seu projeto |
Próximos passos
Com sua aplicação conectada ao centro de governança do MSE, utilize recursos como canary release de ponta a ponta, inicialização e encerramento graceful e limitação de tráfego. Para mais informações, consulte Comece a usar a governança de serviços em 15 minutos (Java).
Referência de rótulos YAML
|
Rótulo |
Valores |
Finalidade |
|
|
|
Ativa ou desativa a governança do MSE para uma aplicação específica |
|
|
Qualquer string (padrão: |
Namespace de governança do MSE para a aplicação |
|
|
Qualquer string |
Nome de exibição personalizado da aplicação no console do MSE |
Todos os valores de rótulo que contêm strings alfabéticas minúsculas (como "on" e "off") devem estar entre aspas duplas no arquivo YAML para evitar que sejam interpretados como booleanos.