Pour surveiller les applications Go déployées dans Container Service for Kubernetes (ACK) ou Container Compute Service (ACS), installez le composant ack-onepilot d'Application Real-Time Monitoring Service (ARMS) et compilez votre binaire Go. Vous pourrez ensuite consulter les données de surveillance, telles que la topologie des applications, les appels API et l'analyse des bases de données, dans ARMS. Cette rubrique explique comment installer un agent Go pour une application déployée dans Container Service for Kubernetes (ACK) ou Container Compute Service (ACS).
Les étapes d'installation sont identiques pour ACK et ACS. Ce guide utilise ACK comme exemple.
Pour toute question concernant l'agent Go, contactez-nous via notre groupe de questions-réponses DingTalk (ID : 159215000379).
Prérequis
-
Un cluster ACK ou ACS :
Un namespace est requis. Pour plus d'informations, consultez la rubrique Gérer les namespaces et les quotas. Cette rubrique utilise le namespace default.
Vérifiez le système d'exploitation, l'architecture, la version de Go et la version du framework de votre environnement de build. Pour connaître les exigences spécifiques, consultez la rubrique Composants et frameworks Go pris en charge par la surveillance des applications ARMS.
Étape 1 : Accorder les autorisations d'accès aux ressources ARMS
Cluster ACK managé
S'il n'existe aucun jeton ARMS Addon Token dans votre cluster ACK managé, accordez manuellement au cluster les autorisations nécessaires pour accéder aux ressources ARMS.
Si un cluster dispose du jeton ARMS Addon Token, ARMS effectue une autorisation sans mot de passe sur ce cluster. Le jeton ARMS Addon Token peut être absent de certains clusters ACK managés. Nous vous recommandons de vérifier la présence du jeton ARMS Addon Token dans un cluster ACK managé avant d'utiliser ARMS pour surveiller les applications qui y sont déployées. Si le cluster ne possède pas de jeton ARMS Addon Token, vous devez l'autoriser à accéder à ARMS.
Clusters ACK dédiés et enregistrés
Pour surveiller les applications dans les clusters ACK dédiés et les clusters enregistrés ACK One, assurez-vous que le compte Alibaba Cloud dispose des autorisations AliyunARMSFullAccess et AliyunSTSAssumeRoleAccess. Pour plus d'informations sur l'octroi des autorisations, consultez la rubrique Accorder des autorisations à un utilisateur RAM.
Après avoir installé le composant ack-onepilot, fournissez-lui la paire de clés AccessKey (AccessKey ID et AccessKey secret) d'un compte Alibaba Cloud disposant des autorisations ARMS.
Méthode 1 : Spécifier la paire de clés AccessKey dans Helm
Connectez-vous à la console ACK. Dans le volet de navigation de gauche, cliquez sur Clusters.
Sur la page Clusters, cliquez sur le nom de votre cluster cible. Dans le volet de navigation de gauche, choisissez . Recherchez le composant ack-onepilot et cliquez sur Update dans la colonne Actions.
-
Remplacez
accessKeyetaccessKeySecretpar votre AccessKey ID et votre AccessKey secret, puis cliquez sur OK.RemarquePour savoir comment obtenir une paire de clés AccessKey, consultez la rubrique Créer une paire de clés AccessKey.
Sur la page Update Release, dans l'éditeur de configuration YAML, localisez les champs
accessKeyetaccessKeySecretsous la section controller. Redémarrez le déploiement de l'application.
Méthode 2 : Référencer la paire de clés AccessKey depuis un secret
Connectez-vous à la console Container Service for Kubernetes (ACK). Dans le volet de navigation de gauche, cliquez sur Clusters.
Sur la page Clusters, cliquez sur le nom de votre cluster cible. Dans le volet de navigation de gauche, choisissez .
-
Sélectionnez le namespace ack-onepilot, créez un secret, puis ajoutez les informations de votre paire de clés AccessKey.
RemarquePour savoir comment obtenir une paire de clés AccessKey, consultez la rubrique Créer une paire de clés AccessKey.
Définissez Name sur
ack-onepilot-aksket Type sur Opaque. Dans le tableau de données, ajoutez des paires clé-valeur nomméesaketsk, et définissez leurs valeurs sur l'AccessKey ID et l'AccessKey secret correspondants. Cliquez ensuite sur OK. Dans le volet de navigation de gauche, choisissez . Cliquez sur le composant ack-onepilot, généralement nommé ack-onepilot-ack-onepilot et situé dans le namespace ack-onepilot.
-
Dans le coin supérieur droit de la page ack-onepilot-ack-onepilot, cliquez sur Edit. Ensuite, dans la section Environment Variables, ajoutez
ONE_PILOT_ACCESSKEYetONE_PILOT_ACCESSKEY_SECRET, définissez leurs valeurs en référençant le Secret, puis cliquez sur OK.Définissez le secret référencé pour les deux variables sur ack-onepilot-aksk. Définissez la clé pour
ONE_PILOT_ACCESSKEYsur ak et la clé pourONE_PILOT_ACCESSKEY_SECRETsur sk.
Clusters ACK serverless (ASK) et clusters intégrés à ECI
Effectuez l'autorisation sur la page Resource Access Authorization, puis redémarrez tous les pods du composant ack-onepilot.
Étape 2 : Installer le composant ack-onepilot
Connectez-vous à la console ACK. Sur la page Clusters, cliquez sur le nom du cluster.
-
Dans le volet de navigation de gauche, cliquez sur Component Management et recherchez ack-onepilot.
ImportantAssurez-vous que la version d'ack-onepilot est 3.2.0 ou ultérieure.
-
Cliquez sur Install sur la carte ack-onepilot.
RemarquePar défaut, le composant ack-onepilot prend en charge 1 000 pods. Pour chaque tranche supplémentaire de 1 000 pods dans le cluster, ajoutez 0,5 cœur de CPU et 512 Mo de mémoire pour le composant.
-
Dans la boîte de dialogue qui s'affiche, configurez les paramètres et cliquez sur OK. Nous vous recommandons d'utiliser les valeurs par défaut.
RemarqueAprès avoir installé ack-onepilot, vous pouvez le mettre à niveau, le configurer ou le désinstaller sur la page Add-ons.
Étape 3 : Compiler l'image de l'application Go
(Facultatif) Si votre projet inclut un répertoire vendor, ajoutez
-mod=vendoraprèsgo build.-
Utilisez la commande
wgetpour télécharger l'outil de compilation instgo, et sélectionnez l'adresse de téléchargement correspondant à votre environnement de compilation et à la région de votre machine de compilation.Notez qu'instgo se met automatiquement à jour lors de la compilation. Enregistrez instgo dans un répertoire où l'utilisateur de build dispose des autorisations d'écriture.
RemarqueInstgo est un outil de build fourni par ARMS pour les applications Go. Après avoir compilé votre projet Go à l'aide d'instgo, ARMS peut surveiller votre application Go.
L'outil de build est identique dans toutes les régions. Si votre réseau public peut accéder à l'URL OSS, vous pouvez télécharger l'outil depuis le point de terminaison public de la région Chine (Hangzhou) qui correspond à votre système d'exploitation et à votre architecture.
-
Accordez les autorisations d'exécution à l'outil de build.
Linux et Mac
# Grant execute permission chmod +x instgoWindows
Sous Windows, il n'est pas nécessaire d'accorder des autorisations d'exécution.
-
(Facultatif) Configurez l'UID en tant que paramètre de build.
ImportantSi vous ignorez cette étape, instgo installe par défaut la dernière version de l'agent ARMS.
Utilisez la commande set pour configurer l'UID ou la clé de licence en tant que paramètre 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. -
Préfixez votre commande de build originale avec instgo.
instgo go build {arg1} {arg2} {arg3}Cette méthode s'applique également si vous utilisez go install.
Construisez une image en utilisant le fichier binaire généré à l'étape précédente.
Étape 4 : Activer la surveillance ARMS pour les applications Go
Le modèle YAML suivant présente un exemple complet de création d'une application stateless (Deployment) et d'activation de la surveillance des applications ARMS :
Connectez-vous à la console ACK. Dans le volet de navigation de gauche, cliquez sur Clusters.
En haut de la page Clusters, sélectionnez le groupe de ressources et la région où se trouve le cluster cible, puis cliquez sur le nom du cluster cible. Dans le volet de navigation de gauche, cliquez sur Workloads et sélectionnez Stateless, StatefulSets ou DaemonSets.
-
Recherchez l'application cible et choisissez dans la colonne Actions.
Pour créer une nouvelle application, cliquez sur Create Resources in YAML.
-
Dans le fichier YAML, ajoutez les
labelssuivants au niveau 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. Cliquez sur Update.
Résultats
Au bout d'environ une minute, l'agent est connecté si votre application Go apparaît sur la page de la console ARMS et transmet des données.
> Edit YAML