Para monitorar aplicações Go implantadas no Container Service for Kubernetes (ACK) ou Container Compute Service (ACS), você precisa instalar o componente ack-onepilot do Application Real-Time Monitoring Service (ARMS) e compilar seu arquivo binário Go. Em seguida, visualize dados de monitoramento, como topologia da aplicação, chamadas de API e análise de banco de dados, no ARMS. Este tópico descreve como instalar um agente Go para uma aplicação implantada no Container Service for Kubernetes (ACK) ou Container Compute Service (ACS).
Os passos de instalação para ACK e ACS são idênticos. Este guia usa ACK como exemplo.
Se você tiver dúvidas sobre o agente Go, entre em contato conosco no grupo de perguntas e respostas do DingTalk (ID: 159215000379).
Pré-requisitos
Um cluster ACK ou ACS:
Um namespace é necessário. Para mais informações, consulte Manage namespaces and quotas. Este tópico usa o namespace default.
Verifique o sistema operacional, arquitetura, versão do Go e versão do framework do seu ambiente de compilação. Para requisitos específicos, consulte Go components and frameworks supported by ARMS application monitoring.
Passo 1: Conceda permissões para acessar recursos do ARMS
ACK managed cluster
Se não houver ARMS Addon Token no seu ACK managed cluster, você precisa conceder manualmente as permissões do cluster para acessar recursos do ARMS.
Se um cluster tiver ARMS Addon Token, o ARMS realiza autorização sem senha no cluster. O ARMS Addon Token pode não existir em alguns ACK managed clusters. Recomendamos verificar se um ACK managed cluster possui ARMS Addon Token antes de usar o ARMS para monitorar aplicações no cluster. Se o cluster não tiver ARMS Addon Token, você precisa autorizar o cluster a acessar o ARMS.
Clusters ACK dedicated e registered
Para monitorar aplicações em ACK dedicated clusters e ACK One registered clusters, certifique-se de que a conta Alibaba Cloud tenha as permissões AliyunARMSFullAccess e AliyunSTSAssumeRoleAccess. Para mais informações sobre como conceder permissões, consulte Grant permissions to a RAM user.
Após instalar o componente ack-onepilot, você também precisa fornecer o par AccessKey (AccessKey ID e AccessKey secret) de uma conta Alibaba Cloud que tenha permissões do ARMS.
Método 1: Especifique o par AccessKey no Helm
-
Faça login no ACK console. No painel de navegação à esquerda, clique em Clusters.
Na página Clusters, clique no nome do cluster desejado. No painel de navegação à esquerda, escolha . Localize o componente ack-onepilot e clique em Update na coluna Actions.
Substitua
accessKeyeaccessKeySecretpelo seu AccessKey ID e AccessKey secret, e clique em OK.NotaPara informações sobre como obter um par AccessKey, consulte Create an AccessKey pair.
Na página Update Release, no editor de configuração YAML, localize os campos
accessKeyeaccessKeySecretna seção controller.Reinicie o Deployment da aplicação.
Método 2: Referencie o par AccessKey a partir de um secret
Faça login no Container Service for Kubernetes (ACK) console. No painel de navegação à esquerda, clique em Clusters.
Na página Clusters, clique no nome do cluster desejado. No painel de navegação à esquerda, escolha .
Selecione o namespace ack-onepilot, crie um secret e adicione as informações do seu par AccessKey.
NotaPara informações sobre como obter um par AccessKey, consulte Create an AccessKey pair.
Defina Name como
ack-onepilot-akske Type como Opaque. Na tabela de dados, adicione pares chave-valor chamadosakesk, e defina seus valores com o AccessKey ID e AccessKey secret correspondentes. Em seguida, clique em OK.No painel de navegação à esquerda, escolha . Clique no componente ack-onepilot, que normalmente é chamado ack-onepilot-ack-onepilot e está localizado no namespace ack-onepilot.
No canto superior direito da página ack-onepilot-ack-onepilot, clique em Edit. Em seguida, na seção Environment Variables, adicione
ONE_PILOT_ACCESSKEYeONE_PILOT_ACCESSKEY_SECRET, defina seus valores referenciando o Secret, e clique em OK.Defina o secret referenciado para ambas as variáveis como ack-onepilot-aksk. Defina a chave para
ONE_PILOT_ACCESSKEYcomo ak e a chave paraONE_PILOT_ACCESSKEY_SECRETcomo sk.
Clusters ACK serverless (ASK) e clusters integrados com ECI
Complete a autorização na página Resource Access Authorization, em seguida reinicie todos os pods do componente ack-onepilot.
Passo 2: Instale o componente ack-onepilot
Faça login no ACK console. Na página Clusters, clique no nome do cluster.
No painel de navegação à esquerda, clique em Component Management e pesquise por ack-onepilot.
ImportanteCertifique-se de que a versão do ack-onepilot seja 3.2.0 ou posterior.
Clique em Install no card do ack-onepilot.
NotaPor padrão, o componente ack-onepilot suporta 1.000 pods. Para cada 1.000 pods adicionais no cluster, você precisa adicionar 0,5 núcleos de CPU e 512 MB de memória para o componente.
Se você instalar o ack-onepilot em um cluster ACS, configure accessKey e accessKeySecret na parte inferior do card de instalação. Use o AccessKey ID e AccessKey secret da sua conta Alibaba Cloud. Para informações sobre como obtê-los, consulte Create an AccessKey. Certifique-se de que a conta Alibaba Cloud tenha as permissões AliyunARMSFullAccess e AliyunSTSAssumeRoleAccess.
Na página que aparece, configure os parâmetros. Recomendamos usar os valores padrão. Clique em OK.
NotaApós instalar o ack-onepilot, você pode fazer upgrade, configurar ou desinstalá-lo na página Add-ons.
Passo 3: Compile a imagem da aplicação Go
(Opcional) Se o seu projeto incluir um diretório vendor, adicione
-mod=vendorapósgo build.Use o comando
wgetpara baixar a ferramenta de compilação instgo, e selecione o endereço de download que corresponda ao seu ambiente de compilação e à região da sua máquina de compilação.O instgo se atualiza automaticamente durante a compilação. Salve o instgo em um diretório onde o usuário de compilação tenha permissões de escrita.
NotaInstgo é uma ferramenta de compilação que o ARMS fornece para aplicações Go. Após compilar seu projeto Go usando o instgo, o ARMS pode monitorar sua aplicação Go.
A ferramenta de compilação é a mesma em todas as regiões. Se sua rede pública puder acessar a URL do OSS, você pode baixar a ferramenta do endpoint público da região China (Hangzhou) que corresponda ao seu sistema operacional e arquitetura.
Conceda permissões de execução à ferramenta de compilação.
Linux e Mac
# Grant execute permission 28 chmod +x instgoWindows
No Windows, não é necessário conceder permissões de execução.
(Opcional) Configure o UID como um parâmetro de compilação.
ImportanteSe você pular esta etapa, o instgo instala a versão mais recente do agente ARMS por padrão.
Use o comando set para configurar o UID ou chave de licença como um parâmetro de compilação.
instgo set --uid={YourAliyunUid} // You must use instgo 1.4.5 or a later version. The uid is the UID of your primary Alibaba Cloud account.Adicione o prefixo instgo ao seu comando de compilação original.
instgo go build {arg1} {arg2} {arg3}Este método também se aplica se você usar go install.
Crie uma imagem usando o arquivo binário gerado na etapa anterior.
Passo 4: Ative o monitoramento do ARMS para aplicações Go
O modelo YAML a seguir mostra um exemplo completo de como criar uma aplicação stateless (Deployment) e ativar o monitoramento de aplicações do ARMS:
-
139
Faça login no ACK console. No painel de navegação à esquerda, clique em Clusters.
140 Na parte superior da página Clusters, selecione o grupo de recursos e a região onde o cluster desejado está localizado, e clique no nome do cluster. No painel de navegação à esquerda, clique em Workloads e selecione Stateless, StatefulSets ou DaemonSets.
Localize a aplicação desejada e escolha na coluna Actions.
Para criar uma nova aplicação, clique em Create Resources in YAML.
No arquivo YAML, adicione os seguintes
labelsno nível spec.template.metadata.labels: 141 aliyun.com/app-language: golang # Required for Go applications. This indicates that this is a Go application. 142 armsPilotAutoEnable: 'on' 143 armsPilotCreateAppName: "<YOUR-DEPLOYMENT-NAME>" # Replace <YOUR-DEPLOYMENT-NAME> with your application name.Clique em Update.
Resultados
Após cerca de um minuto, o agente estará conectado se a sua aplicação Go aparecer na página no ARMS console e estiver reportando dados.
> Edit YAML