Para monitorar aplicações Go implantadas no Container Service for Kubernetes (ACK) ou no Container Compute Service (ACS), instale o componente ack-onepilot do Application Real-Time Monitoring Service (ARMS) e compile o 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 no Container Compute Service (ACS).
As etapas de instalação para ACK e ACS são idênticas. Este guia usa o ACK como exemplo.
Em caso de dúvidas sobre o agente Go, entre em contato pelo grupo de perguntas e respostas no DingTalk (ID: 159215000379).
Pré-requisitos
-
Um cluster ACK ou ACS:
É necessário ter um namespace. Para mais informações, consulte Manage namespaces and quotas. Este tópico usa o namespace default.
Verifique o sistema operacional, a arquitetura, a versão do Go e a versão do framework do ambiente de build. 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 existir um ARMS Addon Token no seu ACK managed cluster, conceda manualmente as permissões para que o cluster acesse os recursos do ARMS.
Se um cluster possuir o ARMS Addon Token, o ARMS realizará autorização sem senha nesse cluster. O ARMS Addon Token pode não estar presente em alguns clusters ACK gerenciados. Recomendamos verificar se o cluster ACK gerenciado possui o ARMS Addon Token antes de usar o ARMS para monitorar aplicações nele. Caso o cluster não tenha o ARMS Addon Token, autorize o acesso do cluster ao ARMS.
ACK dedicated and registered clusters
Para monitorar aplicações em clusters ACK dedicados e clusters registrados do ACK One, garanta 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, forneça também o par de AccessKey (AccessKey ID e AccessKey secret) de uma conta Alibaba Cloud com permissões no ARMS.
Método 1: Especifique o par de 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 Atualize na coluna Actions.
-
Substitua
accessKeyeaccessKeySecretpelo seu AccessKey ID e AccessKey secret e clique em OK.NotaPara obter informações sobre como adquirir um par de 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 de 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 par de AccessKey.
NotaPara obter informações sobre como adquirir um par de AccessKey, consulte Create an AccessKey pair.
Defina Name como
ack-onepilot-akske Type como Opaque. Na tabela de dados, adicione pares chave-valor chamadosakeske defina seus valores com o AccessKey ID e o AccessKey secret correspondentes. Em seguida, clique em OK. No painel de navegação à esquerda, escolha . Clique no componente ack-onepilot, geralmente chamado ack-onepilot-ack-onepilot e localizado no namespace ack-onepilot.
-
No canto superior direito da página ack-onepilot-ack-onepilot, clique em Edite. Depois, 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.
ACK serverless clusters (ASK) and ECI-integrated clusters
Conclua a autorização na página Resource Access Authorization e 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 cartão ack-onepilot.
NotaPor padrão, o componente ack-onepilot suporta 1.000 pods. Para cada 1.000 pods adicionais no cluster, adicione 0,5 núcleos de CPU e 512 MB de memória ao componente.
-
Na caixa de diálogo exibida, configure os parâmetros e clique em OK. Recomendamos utilizar os valores padrão.
NotaApós instalar o ack-onepilot, atualize-o, configure-o ou desinstale-o na página Add-ons.
Passo 3: Compile a imagem da aplicação Go
(Opcional) Se o 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 correspondente ao ambiente de compilação e à região da 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 build tenha permissões de escrita.
NotaO Instgo é uma ferramenta de build fornecida pelo ARMS para aplicações Go. Após compilar o projeto Go com o instgo, o ARMS poderá monitorar a aplicação.
A ferramenta de build é a mesma em todas as regiões. Se a rede pública conseguir acessar a URL do OSS, baixe a ferramenta pelo endpoint público da região China (Hangzhou) compatível com o sistema operacional e a arquitetura.
-
Conceda permissões de execução à ferramenta de build.
Linux and Mac
# Grant execute permission chmod +x instgoWindows
No Windows, não é necessário conceder permissões de execução.
-
(Opcional) Configure o UID como um parâmetro de build.
ImportanteSe você pular esta etapa, o instgo instalará a versão mais recente do agente ARMS por padrão.
Use o comando set para configurar o UID ou a chave de licença como um parâmetro de build.
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. -
Prefixe o comando de build original com instgo.
instgo go build {arg1} {arg2} {arg3}Este método também se aplica caso utilize 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 apresenta um exemplo completo de como criar uma aplicação stateless (Deployment) e ativar o monitoramento de aplicações do ARMS:
Faça login no ACK console. No painel de navegação à esquerda, clique em Clusters.
No topo da página Clusters, selecione o grupo de recursos e a região onde o cluster desejado está localizado e clique no nome desse 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: aliyun.com/app-language: golang # Required for Go applications. This indicates that this is a Go application. armsPilotAutoEnable: 'on' 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 aplicação Go aparecer na página no ARMS console e estiver reportando dados.
> Edit YAML