Le traçage Kubelet enregistre les opérations clés que Kubelet effectue sur les nœuds, telles que la gestion du cycle de vie des Pods et les appels API. Cela vous aide à identifier les goulots d'étranglement liés aux performances du système et à résoudre les problèmes du cluster. Une fois activé, les données de trace Kubelet sont automatiquement envoyées à Managed Service for OpenTelemetry, qui fournit des données de surveillance visuelles, notamment les détails des traces et la topologie en temps réel.
Si vous débutez avec le traçage, consultez la rubrique Concepts de base pour en comprendre les fondamentaux.
Prérequis
Vous disposez d'un ACK managed cluster ou d'un ACK dedicated cluster exécutant Kubernetes 1.28 ou une version ultérieure. Pour mettre à niveau votre cluster, consultez la rubrique Mettre à niveau manuellement un cluster.
-
Helm v3 ou une version ultérieure est installé. Pour mettre à niveau Helm, consultez la rubrique Migrer de Helm V2 vers Helm V3.
Pour installer le composant OpenTelemetry Collector requis pour cette fonctionnalité, vous devez utiliser Helm 3.9 ou une version ultérieure.
-
Vous avez activé et autorisé l'accès à Managed Service for OpenTelemetry. Pour plus d'informations, consultez la rubrique Premiers pas.
Managed Service for OpenTelemetry fournit des outils pour les applications distribuées, notamment la reconstruction des traces de bout en bout, les statistiques sur le volume des requêtes, la topologie des traces et l'analyse des dépendances entre applications.
Lorsque vous utilisez cette fonctionnalité, Managed Service for OpenTelemetry vous facture le volume de données d'observabilité, en plus des frais liés à votre cluster ACK. Pour obtenir des informations sur le quota gratuit et les détails tarifaires de Managed Service for OpenTelemetry, consultez la rubrique Facturation.
Suivez cette procédure pour activer le traçage des composants du plan de données de votre cluster :
Récupérez l'endpoint et le jeton d'authentification depuis Managed Service for OpenTelemetry, puis stockez le jeton d'authentification dans un secret du cluster. Cela permet à OpenTelemetry Collector de lire la configuration et les informations d'authentification.
-
Déployez le composant OpenTelemetry Collector afin de collecter, traiter et exporter les données d'observabilité.
ACK Marketplace vous permet de déployer rapidement OpenTelemetry Collector dans votre cluster en mode DaemonSet.
Dans la configuration de Kubelet, activez le traçage et configurez les paramètres associés, tels que le taux d'échantillonnage. OpenTelemetry Collector transfère ensuite les données collectées vers Managed Service for OpenTelemetry.
Étape 1 : Obtenir l'endpoint et le jeton d'authentification
Connectez-vous à la console Managed Service for OpenTelemetry. Dans le volet de navigation de gauche, cliquez sur Integration Center.
Dans la section Open Source Frameworks, cliquez sur la carte OpenTelemetry.
-
Sélectionnez une région pour l'envoi des données. Définissez Connection Method sur Alibaba Cloud Internal Network Mode et Reporting Method sur gRPC. Enregistrez les informations de l'endpoint pour une utilisation ultérieure.
Lors de la première utilisation d'une région, ses ressources sont initialisées automatiquement. Suivez les instructions affichées à l'écran pour terminer le processus.
La page affiche l'adresse de l'Alibaba Cloud VPC endpoint ainsi que le authentication token. Cliquez sur le bouton Copy correspondant pour les copier. Remarque : si vous envoyez des données à l'aide de Golang, supprimez le préfixe
http://de l'adresse de l'endpoint.
Étape 2 : Stocker le jeton d'authentification dans un secret du cluster
Stockez le jeton d'authentification dans un secret au sein de votre cluster ACK. OpenTelemetry Collector utilise ce jeton d'authentification en le référençant comme variable. Le secret et OpenTelemetry Collector, que vous installerez à l'étape suivante, doivent se trouver dans le même namespace.
Par défaut, OpenTelemetry Collector est déployé dans le namespace otel-collector. Vous pouvez créer manuellement le namespace otel-collector ou utiliser un autre namespace et le sélectionner lors de l'installation d'OpenTelemetry Collector.
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. Dans le volet de navigation de gauche, cliquez sur .
-
Cliquez sur Create et suivez les instructions affichées à l'écran pour créer le secret.
Paramètre
Valeur
Exemple
Name
opentelemetry-exporter-config
ImportantUtilisez exactement ce nom. Ne spécifiez pas de nom personnalisé.
Sélectionnez Opaque comme type.
Type
Opaque
Configurez les paramètres suivants pour ajouter la clé de données :
Name
grpc-token
ImportantUtilisez exactement ce nom. Ne spécifiez pas de nom personnalisé.
Dans le champ Value, saisissez le jeton d'authentification et sélectionnez Base64-encode the data value.
Value
Le jeton d'authentification obtenu à l'étape 1.
Encode Data Values Using Base64
Oui
Étape 3 : Installer OpenTelemetry Collector
OpenTelemetry Collector est un collecteur de données d'observabilité qui offre des capacités unifiées pour la réception, le traitement et l'exportation des données. Il prend en charge diverses sources de données d'observabilité open source, telles que Jaeger, Prometheus et Fluent Bit, éliminant ainsi le besoin de déployer plusieurs collecteurs.
Connectez-vous à la console ACK. Dans le volet de navigation de gauche, cliquez sur .
-
Recherchez
opentelemetry-collectoret cliquez sur la carte de l'application.Cette page fournit une description du composant et une référence des paramètres pour le chart Helm du composant. Vous pouvez consulter les informations sur cette page ou suivre les instructions ci-dessous pour configurer le composant.
-
Dans le coin supérieur droit de la page, cliquez sur Deploy. Sélectionnez votre cluster et votre namespace, puis suivez les instructions affichées à l'écran pour passer à l'étape suivante.
Le namespace du composant doit être identique à celui du secret créé à l'étape 2.
-
Sélectionnez une version du chart. Nous vous recommandons d'utiliser la version par défaut. Définissez les paramètres du chart et suivez les instructions affichées à l'écran pour installer le chart.
Paramètre
Description
modeDéfinissez ce paramètre sur
daemonsetpour déployer OpenTelemetry Collector en tant que DaemonSet.mode: "daemonset"enableXtraceTokenFromSecretDéfinissez ce paramètre sur
truepour référencer le jeton d'authentification à l'aide d'une variable d'environnement. Cette méthode empêche le stockage du jeton d'authentification en texte clair dans la configuration d'OpenTelemetry Collector et évite la fuite d'informations sensibles.enableXtraceTokenFromSecret: trueAssurez-vous d'avoir effectué les opérations de l'étape 2 pour éviter les échecs de déploiement du chart.
exportersAjoutez un exportateur nommé
otlppour spécifier l'adresse vers laquelle les données de trace sont envoyées.Définissez
endpointsur l'endpoint interne obtenu à l'étape 1.exporters: otlp: endpoint: <your_intranet_endpoint> tls: insecure: true headers: Authentication: ${env:OPENTELEMETRY_GRPC_TOKEN}receiversAjoutez un récepteur nommé
otlp/kubeletqui écoute sur le port local 4317 pour recevoir les données de trace Kubelet via OTLP/gRPC.receivers: otlp/kubelet: # Creates a receiver named otlp/kubelet. protocols: grpc: endpoint: 127.0.0.1:4317service.pipelines.tracesConfigurez le pipeline de traitement des traces. Ajoutez l'exportateur
otlpàservice.pipelines.traces.exporterset le récepteurotlp/kubeletàservice.pipelines.traces.receivers.traces: exporters: - debug - otlp processors: - memory_limiter - batch - resource receivers: - otlp - jaeger - zipkin - otlp/kubelethostNetworkDéfinissez ce paramètre sur
true. Cela permet à OpenTelemetry Collector d'utiliser directement l'adresse IP et le port de l'hôte pour la communication.hostNetwork: trueUne fois l'installation réussie, vous êtes automatiquement redirigé vers la page Helm.
Accédez à la page Workloads > DaemonSets. Sélectionnez le namespace du composant. Si un DaemonSet nommé
opentelemetry-collector-agentexiste et que tous ses Pods sont en cours d'exécution, l'installation a réussi.
Étape 4 : Activer le traçage pour Kubelet
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. Dans le volet de navigation de gauche, cliquez sur .
-
Dans la liste des pools de nœuds, repérez le pool de nœuds cible et choisissez dans la colonne Actions. Ajoutez des paramètres personnalisés, examinez les notes, sélectionnez les nœuds à mettre à niveau et définissez une politique de mise à jour par lots (Maximum Parallel Nodes per Batch). Ensuite, cliquez sur Submit.
Dans la liste déroulante, sélectionnez tracing, puis sélectionnez endpoint. Définissez la valeur sur
localhost:4317. Cela envoie les données de trace Kubelet verslocalhost:4317. Cette adresse correspond à l'endpointdu récepteur otlp/kubelet configuré à l'étape 3.-
Dans la liste déroulante, sélectionnez à nouveau tracing, puis sélectionnez samplingRatePerMillion. Ce paramètre contrôle le taux d'échantillonnage, qui détermine le nombre de requêtes échantillonnées sur un million. Selon la configuration globale, le traçage peut affecter les performances réseau et CPU du cluster. Si vous rencontrez des problèmes de performances, réduisez le taux d'échantillonnage en fonction de la charge du cluster.
Par exemple, une valeur de 1000000 indique un taux d'échantillonnage de 100 %, ce qui signifie que toutes les requêtes sont échantillonnées. Une valeur de 100000 indique un taux d'échantillonnage de 10 %, et 10000 indique un taux d'échantillonnage de 1 %.
Étape 5 : Afficher les données de trace dans OpenTelemetry
Connectez-vous à la console Managed Service for OpenTelemetry. Dans le volet de navigation de gauche, cliquez sur Applications.
-
En haut de la page, sélectionnez une région, puis cliquez sur le nom de l'application kubelet. Suivez les instructions de la console pour afficher les informations de trace.
Cette section décrit uniquement les onglets principaux. Pour plus d'informations sur chaque onglet, consultez la rubrique Détails de l'application .
-
Onglet Trace Analysis : Affiche des informations telles que les traces des requêtes Kubelet et la topologie de l'application.
-
Dans la zone de recherche en haut à gauche, saisissez
resources.k8s.cluster.name : "YourClusterId"pour filtrer les traces d'un cluster spécifique.Vous pouvez obtenir l'ID du cluster à partir de la liste des clusters dans la console ACK.
Dans la liste des traces, cliquez sur un Trace ID pour afficher les détails d'une trace de requête Kubelet, y compris la vue de la topologie, le nombre de services impliqués et le nombre d'appels API.
-
Onglet Support Services : Affiche le nombre de requêtes, le nombre d'erreurs et la latence moyenne des interfaces fournies par Kubelet.
Onglet Dependent Services : Affiche des informations sur les requêtes adressées aux services dont dépend Kubelet, tels que containerd. Ces informations incluent le nombre de requêtes, le nombre d'erreurs et la latence moyenne.
-
Documentation connexe
Pour surveiller et enregistrer les données de trace du composant API server du cluster, consultez la rubrique Activer le traçage pour les composants du plan de contrôle du cluster.
> Kubelet Configuration