Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Installez l' CloudWatch agent avec le EKS module complémentaire Amazon CloudWatch Observability ou le graphique Helm
Vous pouvez utiliser le EKS module complémentaire Amazon CloudWatch Observability ou le graphique Amazon CloudWatch Observability Helm pour installer l' CloudWatch agent et l'agent Fluent-bit sur un cluster Amazon. EKS Vous pouvez également utiliser le graphique Helm pour installer l' CloudWatch agent et l'agent Fluent-bit sur un cluster Kubernetes qui n'est pas hébergé sur Amazon. EKS
L'utilisation de l'une ou l'autre méthode sur un EKS cluster Amazon permet à Container Insights d'améliorer l'observabilité pour Amazon EKS et à CloudWatch Application Signals par défaut. Les deux fonctionnalités vous aident à collecter des métriques d'infrastructure, des données de télémétrie sur les performances des applications et des journaux de conteneurs à partir du cluster.
Grâce à Container Insights avec une observabilité améliorée pour AmazonEKS, les métriques de Container Insights sont facturées par observation au lieu d'être facturées par métrique stockée ou par journal ingéré. Pour les signaux d'application, la facturation est basée sur les demandes entrantes adressées à vos applications, les demandes sortantes provenant de vos applications et sur chaque objectif de niveau de service configuré ()SLO. Chaque requête entrante reçue génère un signal d’application, et chaque requête sortante effectuée génère un signal d’application. Chaque SLO produit deux signaux d'application par période de mesure. Pour plus d'informations sur CloudWatch les tarifs, consultez Amazon CloudWatch Pricing
Les deux méthodes activent Container Insights sur les nœuds de travail Linux et Windows du EKS cluster Amazon. Pour activer Container Insights sous Windows, vous devez utiliser la version 1.5.0 ou ultérieure du EKS module complémentaire Amazon ou du graphique Helm. Actuellement, Application Signals n'est pas pris en charge sous Windows dans les EKS clusters Amazon.
Le EKS module complémentaire Amazon CloudWatch Observability est pris en charge sur les EKS clusters Amazon exécutés avec Kubernetes version 1.23 ou ultérieure.
Lorsque vous installez le module complémentaire ou le graphique Helm, vous devez également accorder IAM des autorisations pour permettre à l' CloudWatch agent d'envoyer des métriques, des journaux et des traces à CloudWatch. Il existe deux façons de procéder :
Attachez une stratégie au rôle IAM de vos nœuds de travail. Cette option accorde des autorisations aux nœuds de travail auxquels envoyer des données télémétriques. CloudWatch
Utilisez un IAM rôle pour les comptes de service des modules d'agent et associez la politique à ce rôle. Cela ne fonctionne que pour les EKS clusters Amazon. Cette option donne CloudWatch accès uniquement aux modules d'agent appropriés.
Option 1 : Installation avec IAM autorisations sur les nœuds de travail
Pour utiliser cette méthode, associez d'abord la CloudWatchAgentServerPolicyIAMpolitique à vos nœuds de travail en saisissant la commande suivante. Dans cette commande, remplacez my-worker-node-role
par le IAM rôle utilisé par vos nœuds de travail Kubernetes.
aws iam attach-role-policy \ --role-name
my-worker-node-role
\ --policy-arn arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy
Installez ensuite le EKS module complémentaire Amazon CloudWatch Observability. Pour installer le module complémentaire, vous pouvez utiliser la AWS CLI console ou Terraform. AWS CloudFormation
Option 2 : Installation à l'aide du rôle IAM de compte de service (s'applique uniquement à l'utilisation du module complémentaire)
Cette méthode n'est valide que si vous utilisez le EKS module complémentaire Amazon CloudWatch Observability. Avant d'utiliser cette méthode, vérifiez que les conditions préalables suivantes sont respectées :
-
Vous disposez d'un EKS cluster Amazon fonctionnel avec des nœuds attachés à l'un des clusters Régions AWS qui prend en charge Container Insights. Pour obtenir la liste des régions prises en charge, consultez Container Insights.
-
kubectl
est installé et configuré pour le cluster. Pour plus d'informations, consultez la section Installationkubectl
dans le guide de EKS l'utilisateur Amazon. -
eksctl
est installé. Pour plus d'informations, consultez la section Installation ou mise à joureksctl
dans le guide de EKS l'utilisateur Amazon.
Pour installer le EKS module complémentaire Amazon CloudWatch Observability à l'aide du rôle de compte IAM de service
Entrez la commande suivante pour créer un fournisseur OpenID Connect (OIDC), si le cluster n'en possède pas déjà un. Pour plus d'informations, consultez la section Configuration d'un compte de service Kubernetes pour assumer un IAM rôle dans le guide de l'utilisateur Amazon EKS.
eksctl utils associate-iam-oidc-provider --cluster
my-cluster-name
--approveEntrez la commande suivante pour créer le IAM rôle avec la CloudWatchAgentServerPolicypolitique attachée et configurez le compte de service de l'agent pour qu'il assume ce rôle en utilisantOIDC. Remplacez
my-cluster-name
par le nom de votre cluster,my-service-account-role
puis par le nom du rôle auquel vous souhaitez associer le compte de service. Si le rôle n'existe pas encore,eksctl
le crée pour vous.eksctl create iamserviceaccount \ --name cloudwatch-agent \ --namespace amazon-cloudwatch --cluster
my-cluster-name
\ --role-namemy-service-account-role
\ --attach-policy-arn arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy \ --role-only \ --approveInstallez l'add-on en saisissant la commande suivante. Remplacez
my-cluster-name
par le nom de votre cluster, remplacez111122223333
par votre identifiant de compte et remplacezmy-service-account-role
par le IAM rôle créé à l'étape précédente.aws eks create-addon --addon-name amazon-cloudwatch-observability --cluster-name
my-cluster-name
--service-account-role-arn arn:aws:iam::111122223333
:role/my-service-account-role
Considérations relatives aux nœuds EKS hybrides Amazon
Les métriques au niveau des nœuds ne sont pas disponibles pour les nœuds hybrides car elles Container Insights dépendent de la disponibilité du service de métadonnées d'EC2instance (IMDS) pour les métriques au niveau des nœuds. Cluster, charge de travail, Pod, et des métriques au niveau du conteneur sont disponibles pour les nœuds hybrides.
Après avoir installé le module complémentaire en suivant les étapes décrites dans les sections précédentes, vous devez mettre à jour le manifeste du module complémentaire afin que l'agent puisse s'exécuter correctement sur les nœuds hybrides. Modifiez la amazoncloudwatchagents
ressource du cluster pour ajouter la variable d'RUN_WITH_IRSA
environnement correspondant à ce qui suit.
kubectl edit amazoncloudwatchagents -n amazon-cloudwatch cloudwatch-agent
apiVersion: v1 items: - apiVersion: cloudwatch.aws.amazon.com/v1alpha1 kind: AmazonCloudWatchAgent metadata: ... name: cloudwatch-agent namespace: amazon-cloudwatch ... spec: ... env: - name: RUN_WITH_IRSA # <-- Add this value: "True" # <-- Add this - name: K8S_NODE_NAME valueFrom: fieldRef: fieldPath: spec.nodeName ...
(Facultatif) Configuration supplémentaire
Rubriques
- Ne pas collecter les journaux de conteneurs
- Utiliser une configuration Fluent Bit personnalisée
- Gérez les tolérances de Kubernetes pour les charges de travail des pods installés
- Désactiver la collecte accélérée de métriques de calcul
- Utiliser une configuration d' CloudWatch agent personnalisée
- Gérer les certificats d'admission en ligne TLS
- Collectez le EBS volume Amazon IDs
Ne pas collecter les journaux de conteneurs
Par défaut, le module complémentaire utilise Fluent Bit pour collecter les journaux des conteneurs à partir de tous les pods, puis envoie les CloudWatch journaux à Logs. Pour plus d'informations sur les journaux collectés, veuillez consulter Configuration de Fluent Bit.
Note
Ni le module complémentaire ni le graphique Helm ne gèrent les ressources Fluentd ou Fluent Bit existantes dans un cluster. Vous pouvez supprimer les ressources Fluentd ou Fluent Bit existantes avant d'installer le module complémentaire ou le graphique Helm. Sinon, pour conserver votre configuration existante et éviter que le module complémentaire ou le graphique Helm n'installent également Fluent Bit, vous pouvez le désactiver en suivant les instructions de cette section.
Pour refuser la collecte des journaux de conteneurs si vous utilisez le EKS module complémentaire Amazon CloudWatch Observability, passez l'option suivante lorsque vous créez ou mettez à jour le module complémentaire :
--configuration-values '{ "containerLogs": { "enabled": false } }'
Pour refuser la collecte des journaux de conteneurs si vous utilisez le graphique Helm, passez l'option suivante lorsque vous créez ou mettez à jour le module complémentaire :
--set containerLogs.enabled=false
Utiliser une configuration Fluent Bit personnalisée
À partir de la version 1.7.0 du EKS module complémentaire Amazon CloudWatch Observability, vous pouvez modifier la configuration de Fluent Bit lorsque vous créez ou mettez à jour le module complémentaire ou le graphique Helm. Vous fournissez la configuration Fluent Bit personnalisée dans la section de niveau containerLogs
racine de la configuration avancée du module complémentaire ou les remplacements de valeurs dans le graphique de Helm. Dans cette section, vous fournissez la configuration personnalisée de Fluent Bit dans la config
section (pour Linux) ou dans configWindows
la section (pour Windows). config
Il est ensuite décomposé dans les sous-sections suivantes :
service
— Cette section représente laSERVICE
configuration permettant de définir le comportement global du moteur Fluent Bit.customParsers
— Cette section représente tous les éléments globauxPARSER
que vous souhaitez inclure et qui sont capables de prendre des entrées de journal non structurées et de leur donner une structure afin de faciliter le traitement et le filtrage ultérieur.extraFiles
— Cette section peut être utilisée pour fournir desconf
fichiers Fluent Bit supplémentaires à inclure. Par défaut, les 3conf
fichiers suivants sont inclus :.application-log.conf
— Unconf
fichier permettant d'envoyer les journaux d'applications de votre cluster au groupe de CloudWatch journaux/aws/containerinsights/
dans Logs.my-cluster-name
/applicationdataplane-log.conf
— Unconf
fichier permettant d'envoyer les journaux correspondant aux composants du plan de données de votre cluster, y compris les CRI journaux, les journaux kubelet, les journaux kube-proxy et les journaux Amazon, au groupe de VPC CNI journaux dans Logs./aws/containerinsights/
CloudWatchmy-cluster-name
/dataplanehost-log.conf
— Aconf
pour envoyer des journaux depuis/var/log/dmesg
/var/log/messages
, et/var/log/secure
sous Linux, et Systemwinlogs
sous Windows,/aws/containerinsights/
au groupe de journaux CloudWatch.my-cluster-name
/host
Note
Fournissez la configuration complète pour chacune de ces sections individuelles, même si vous ne modifiez qu'un seul champ dans une sous-section. Nous vous recommandons d'utiliser la configuration par défaut fournie ci-dessous comme référence, puis de la modifier en conséquence afin de ne pas désactiver les fonctionnalités activées par défaut. Vous pouvez utiliser la YAML configuration suivante lorsque vous modifiez la configuration avancée du EKS module complémentaire Amazon ou lorsque vous fournissez des remplacements de valeur pour le graphique de Helm.
Pour trouver la config
section correspondant à votre cluster, consultez aws-observability/helm-charts/charts/amazon-cloudwatch-observability/values.yaml
vers pour trouver la config
section (pour Linux) et configWindows
la section (pour Windows) dans la fluentBit
section ci-dessouscontainerLogs
.
À titre d'exemple, la configuration Fluent Bit par défaut pour la version 1.7.0 se trouve ici
Nous vous recommandons de fournir le config
as YAML lorsque vous le fournissez à l'aide de la configuration avancée du EKS module complémentaire Amazon ou lorsque vous le fournissez en tant que remplacement de valeur pour votre installation Helm. Assurez-vous qu'il YAML est conforme à la structure suivante.
containerLogs: fluentBit: config: service: | ... customParsers: | ... extraFiles: application-log.conf: | ... dataplane-log.conf: | ... host-log.conf: | ...
L'exemple suivant config
modifie le paramètre global de l'intervalle de rinçage à 45 secondes. Même si la seule modification concerne le Flush
champ, vous devez tout de même fournir la SERVICE
définition complète de la sous-section du service. Comme cet exemple n'a pas spécifié de remplacements pour les autres sous-sections, les valeurs par défaut sont utilisées pour celles-ci.
containerLogs: fluentBit: config: service: | [SERVICE] Flush 45 Grace 30 Log_Level error Daemon off Parsers_File parsers.conf storage.path /var/fluent-bit/state/flb-storage/ storage.sync normal storage.checksum off storage.backlog.mem_limit 5M
L'exemple de configuration suivant inclut un conf
fichier Fluent bit supplémentaire. Dans cet exemple, nous ajoutons un my-service.conf
sous-titre extraFiles
personnalisé qui sera inclus en plus des trois par défautextraFiles
.
containerLogs: fluentBit: config: extraFiles: my-service.conf: | [INPUT] Name tail Tag myservice.* Path /var/log/containers/*myservice*.log DB /var/fluent-bit/state/flb_myservice.db Mem_Buf_Limit 5MB Skip_Long_Lines On Ignore_Older 1d Refresh_Interval 10 [OUTPUT] Name cloudwatch_logs Match myservice.* region ${AWS_REGION} log_group_name /aws/containerinsights/${CLUSTER_NAME}/myservice log_stream_prefix ${HOST_NAME}- auto_create_group true
L'exemple suivant supprime entièrement un conf
fichier existant deextraFiles
. Cela les exclut application-log.conf
complètement en le remplaçant par une chaîne vide. Le simple fait d'omettre application-log.conf
de extraFiles
impliquerait plutôt d'utiliser la valeur par défaut, ce que nous n'essayons pas de réaliser dans cet exemple. Il en va de même pour la suppression de tout conf
fichier personnalisé que vous auriez pu ajouter précédemmentextraFiles
.
containerLogs: fluentBit: config: extraFiles: application-log.conf: ""
Gérez les tolérances de Kubernetes pour les charges de travail des pods installés
À partir de la version 1.7.0 du module complémentaire Amazon CloudWatch Observability, le EKS module complémentaire et le graphique Helm définissent par défaut les tolérances de Kubernetes afin de tolérer toutes les altérations des charges de travail du pod installées par le module complémentaire ou le graphique Helm. Cela garantit que les daemonsets tels que l' CloudWatch agent et Fluent Bit peuvent planifier des pods sur tous les nœuds de votre cluster par défaut. Pour plus d'informations sur les tolérances et les altérations, consultez Taints and Tolerations
Les tolérances par défaut définies par le module complémentaire ou le graphique de Helm sont les suivantes :
tolerations: - operator: Exists
Vous pouvez annuler les tolérances par défaut en définissant le tolerations
champ au niveau de la racine lorsque vous utilisez la configuration avancée du module complémentaire ou lorsque vous installez ou mettez à niveau le graphique de Helm avec des remplacements de valeurs. Voici un exemple :
tolerations: - key: "key1" operator: "Exists" effect: "NoSchedule"
Pour omettre complètement les tolérances, vous pouvez utiliser une configuration qui ressemble à ce qui suit :
tolerations: []
Toute modification des tolérances s'applique à toutes les charges de travail du module installées par le module complémentaire ou le graphique Helm.
Désactiver la collecte accélérée de métriques de calcul
Par défaut, Container Insights, doté d'une observabilité améliorée, collecte des métriques pour la surveillance du calcul accéléré, notamment NVIDIA GPU des métriques, des métriques AWS Neuron pour AWS Trainium et AWS Inferentia, et des métriques AWS Elastic Fabric Adapter (). EFA
NVIDIAGPUles métriques des EKS charges de travail Amazon sont collectées par défaut en commençant par la version v1.3.0-eksbuild.1
du EKS module complémentaire ou le graphique Helm et la version 1.300034.0
de l' CloudWatch agent. Pour obtenir la liste des mesures collectées et des conditions requises, consultezMétriques NVIDIA GPU.
AWS Les métriques neuronales pour les accélérateurs AWS Trainium et AWS Inferentia sont collectées par défaut en commençant par la version v1.5.0-eksbuild.1
du EKS module complémentaire ou du graphique Helm et par la version 1.300036.0
de l'agent. CloudWatch Pour obtenir la liste des mesures collectées et des conditions requises, consultezAWS Métriques neuronales pour AWS Trainium et Inferentia AWS.
AWS Les métriques Elastic Fabric Adapter (EFA) provenant des nœuds Linux des EKS clusters Amazon sont collectées par défaut en commençant par la version v1.5.2-eksbuild.1
du EKS module complémentaire ou le graphique Helm et la version 1.300037.0
de l' CloudWatch agent. Pour obtenir la liste des mesures collectées et des conditions requises, consultezAWS Métriques de l'adaptateur Elastic Fabric (EFA) .
Vous pouvez choisir de ne pas collecter ces métriques en définissant le accelerated_compute_metrics
champ du fichier de configuration de l' CloudWatch agent surfalse
. Ce champ se trouve dans la kubernetes
section de la metrics_collected
section du fichier CloudWatch de configuration. Voici un exemple de configuration de désinscription. Pour plus d'informations sur l'utilisation des configurations d' CloudWatch agent personnalisées, consultez la section suivante,Utiliser une configuration d' CloudWatch agent personnalisée.
{ "logs": { "metrics_collected": { "kubernetes": { "enhanced_container_insights": true, "accelerated_compute_metrics": false } } } }
Utiliser une configuration d' CloudWatch agent personnalisée
Pour collecter d'autres métriques, journaux ou traces à l'aide de l' CloudWatch agent, vous pouvez définir une configuration personnalisée tout en gardant Container Insights et CloudWatch Application Signals activés. Pour ce faire, intégrez le fichier de configuration de l' CloudWatch agent dans la clé de configuration située sous la clé d'agent de la configuration avancée que vous pouvez utiliser lors de la création ou de la mise à jour du EKS module complémentaire ou du graphique Helm. Ce qui suit représente la configuration par défaut de l’agent lorsque vous ne fournissez aucune configuration supplémentaire.
Important
Toute configuration personnalisée que vous fournissez à l’aide de paramètres de configuration supplémentaires remplace la configuration par défaut utilisée par l’agent. Veillez à ne pas désactiver involontairement les fonctionnalités activées par défaut, telles que Container Insights avec une observabilité améliorée et les signaux d' CloudWatch application. Dans le cas où vous devez fournir une configuration d’agent personnalisée, nous vous recommandons d’utiliser la configuration par défaut suivante comme référence, puis de la modifier en conséquence.
Pour utiliser le module complémentaire d' CloudWatch observabilité EKS Amazon
--configuration-values '{ "agent": { "config": { "logs": { "metrics_collected": { "application_signals": {}, "kubernetes": { "enhanced_container_insights": true } } }, "traces": { "traces_collected": { "application_signals": {} } } } }'
-
Pour utiliser le graphique Helm
--set agent.config='{ "logs": { "metrics_collected": { "application_signals": {}, "kubernetes": { "enhanced_container_insights": true } } }, "traces": { "traces_collected": { "application_signals": {} } } }'
L'exemple suivant montre la configuration par défaut de l' CloudWatch agent sous Windows. L' CloudWatch agent sous Windows ne prend pas en charge la configuration personnalisée.
{ "logs": { "metrics_collected": { "kubernetes": { "enhanced_container_insights": true }, } } }
Gérer les certificats d'admission en ligne TLS
Le EKS module complémentaire Amazon CloudWatch Observability et le graphique Helm exploitent les webhooks d'admissionInstrumentation
personnalisées (CR), AmazonCloudWatchAgent
et éventuellement les requêtes de pod Kubernetes sur le cluster si Application Signals est activé. CloudWatch Dans Kubernetes, les webhooks nécessitent un TLS certificat auquel le API serveur est configuré pour faire confiance afin de garantir la sécurité des communications.
Par défaut, le EKS module complémentaire Amazon CloudWatch Observability et le graphique Helm génèrent automatiquement une autorité de certification auto-signée et un TLS certificat signé par cette autorité de certification afin de sécuriser la communication entre le API serveur et le serveur Webhook. Ce certificat généré automatiquement a une durée de validité par défaut de 10 ans et n’est pas renouvelé automatiquement à l’expiration. En outre, le bundle CA et le certificat sont régénérés chaque fois que le module complémentaire ou le graphique Helm est mis à niveau ou réinstallé, ce qui réinitialise l'expiration. Si vous souhaitez modifier la durée de validité par défaut du certificat généré automatiquement, vous pouvez utiliser les configurations supplémentaires suivantes lors de la création ou de la mise à jour du module complémentaire. expiry-in-days
Remplacez-le par la durée de péremption souhaitée en jours.
Utilisez-le pour le module complémentaire Amazon CloudWatch Observability EKS
--configuration-values '{ "admissionWebhooks": { "autoGenerateCert": { "expiryDays":
expiry-in-days
} } }'Utilisez-le pour le graphique Helm
--set admissionWebhooks.autoGenerateCert.expiryDays=expiry-in-days
Pour une solution d'autorité de certification plus sécurisée et riche en fonctionnalités, le module complémentaire prend en charge cert-manager
Nous vous recommandons de consulter les meilleures pratiques en matière de gestion des TLS certificats sur vos clusters et d'opter pour le gestionnaire de certificats pour les environnements de production. Notez que si vous acceptez d'activer cert-manager pour gérer les TLS certificats webhook d'admission, vous devez préinstaller cert-manager sur votre cluster Amazon EKS avant d'installer le module complémentaire Amazon Observability ou le graphique Helm. CloudWatch EKS Pour plus d'informations sur les options d'installation disponibles, consultez la documentation de cert-manager
Si vous utilisez le module complémentaire Amazon CloudWatch Observability EKS
--configuration-values '{ "admissionWebhooks": { "certManager": { "enabled": true } } }'
Si vous utilisez le graphique Helm
--set admissionWebhooks.certManager.enabled=true
--configuration-values '{ "admissionWebhooks": { "certManager": { "enabled": true } } }'
La configuration avancée décrite dans cette section utilisera par défaut un SelfSigned
Collectez le EBS volume Amazon IDs
Si vous souhaitez collecter le EBS volume Amazon IDs dans les journaux de performance, vous devez ajouter une autre politique au IAM rôle attaché aux nœuds de travail ou au compte de service. Ajoutez les éléments suivants en tant que politique en ligne. Pour plus d'informations, consultez la section Ajouter et supprimer des autorisations IAM d'identité.
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "ec2:DescribeVolumes" ], "Resource": "*", "Effect": "Allow" } ] }
Résolution des problèmes liés au EKS module complémentaire Amazon CloudWatch Observability ou au graphique Helm
Utilisez les informations suivantes pour résoudre les problèmes liés au EKS module complémentaire Amazon CloudWatch Observability ou au graphique Helm
Rubriques
- Mettre à jour et supprimer le EKS module complémentaire Amazon CloudWatch Observability ou le graphique Helm
- Vérifiez la version de l' CloudWatch agent utilisée par le EKS module complémentaire Amazon CloudWatch Observability ou le graphique Helm
- Manipulation d'un ConfigurationConflict lors de la gestion du module complémentaire ou du graphique Helm
Mettre à jour et supprimer le EKS module complémentaire Amazon CloudWatch Observability ou le graphique Helm
Pour obtenir des instructions sur la mise à jour ou la suppression du EKS module complémentaire Amazon CloudWatch Observability, consultez la section Gestion des EKS modules complémentaires Amazon. Utilisez amazon-cloudwatch-observability
comme nom du module complémentaire.
Pour supprimer le graphique Helm d'un cluster, entrez la commande suivante.
helm delete amazon-cloudwatch-observability -n amazon-cloudwatch --wait
Vérifiez la version de l' CloudWatch agent utilisée par le EKS module complémentaire Amazon CloudWatch Observability ou le graphique Helm
Le EKS module complémentaire Amazon CloudWatch Observability et le graphique Helm installent une ressource personnalisée AmazonCloudWatchAgent
qui contrôle le comportement du daemonset de l' CloudWatchagent sur le cluster, y compris la version de l' CloudWatch agent utilisée. Vous pouvez obtenir la liste de toutes les ressources AmazonCloudWatchAgent
personnalisées installées sur votre cluster en saisissant la commande suivante :
kubectl get amazoncloudwatchagent -A
Dans le résultat de cette commande, vous devriez être en mesure de vérifier la version de l' CloudWatch agent. Vous pouvez également décrire la ressource amazoncloudwatchagent
ou l’un des pods cloudwatch-agent-*
exécutés sur votre cluster pour inspecter l’image utilisée.
Manipulation d'un ConfigurationConflict lors de la gestion du module complémentaire ou du graphique Helm
Lorsque vous installez ou mettez à jour le EKS module complémentaire Amazon CloudWatch Observability ou le graphique Helm, si vous remarquez une défaillance due aux ressources existantes, c'est probablement parce que vous avez déjà ClusterRoleBinding installé l' CloudWatch agent et ses composants associés tels que le ServiceAccount, le ClusterRole et le sur le cluster.
L'erreur affichée par le module complémentaire inclura : Conflicts found when trying to apply. Will not continue due to resolve conflicts mode
L'erreur affichée par le graphique Helm sera similaire àError: INSTALLATION FAILED: Unable to continue with install and invalid ownership metadata.
.
Lorsque le module complémentaire ou le graphique Helm tente d'installer l' CloudWatch agent et ses composants associés, s'il détecte une modification du contenu, il échoue par défaut à l'installation ou à la mise à jour pour éviter de modifier l'état des ressources du cluster.
Si vous essayez d'intégrer le EKS module complémentaire Amazon CloudWatch Observability et que vous constatez cet échec, nous vous recommandons de supprimer une configuration d' CloudWatch agent existante que vous aviez précédemment installée sur le cluster, puis d'installer le EKS module complémentaire ou le graphique Helm. Veillez à sauvegarder toutes les personnalisations que vous avez éventuellement apportées à la configuration d'origine de l' CloudWatch agent, telle qu'une configuration d'agent personnalisée, et à les fournir au module complémentaire ou au tableau Helm lors de sa prochaine installation ou mise à jour. Si vous avez déjà installé l' CloudWatch agent pour l'intégration à Container Insights, consultez Suppression de l' CloudWatch agent et de Fluent Bit for Container Insights pour plus d'informations.
Le module complémentaire prend également en charge une option de configuration de résolution des conflits capable de spécifier OVERWRITE
. Vous pouvez utiliser cette option pour procéder à l’installation ou à la mise à jour du module complémentaire en remplaçant les conflits sur le cluster. Si vous utilisez la EKS console Amazon, vous trouverez la méthode de résolution des conflits lorsque vous choisissez les paramètres de configuration facultatifs lorsque vous créez ou mettez à jour le module complémentaire. Si vous utilisez le AWS CLI, vous pouvez fournir le --resolve-conflicts OVERWRITE
à votre commande pour créer ou mettre à jour le module complémentaire.
Collectez les métriques des extensions de gestion Java (JMX)
L' CloudWatch agent prend en charge la collecte de métriques par Java Management Extensions (JMX) sur AmazonEKS. Cela vous permet de collecter des métriques supplémentaires à partir d'applications Java exécutées sur des EKS clusters Amazon, ce qui vous permet de mieux comprendre les performances, l'utilisation de la mémoire, le trafic et d'autres indicateurs critiques. Pour de plus amples informations, veuillez consulter Collectez les métriques des extensions de gestion Java (JMX).
Activer les métriques Kueue
À partir de la version v2.4.0-eksbuild.1
du EKS module complémentaire CloudWatch Observability, Container Insights for Amazon EKS prend en charge la collecte de métriques Kueue à partir de clusters AmazonEKS. Pour plus d’informations sur ces métriques, consultez Métriques de Kueue .
Si vous utilisez le EKS module complémentaire Amazon SageMaker AI Hyperpod Task Governance, vous pouvez ignorer les étapes de la section Prérequis et simplement suivre les étapes décrites. Activer l'indicateur de configuration
Prérequis
Avant d'installer Kueue dans votre EKS cluster Amazon, effectuez les mises à jour suivantes dans le fichier manifeste :
Activez les métriques de ressources de file d'attente de cluster facultatives pour Kueue. Pour ce faire, modifiez le texte en ligne
controller_manager_config.yaml
dans lekueue-system
ConfigMap. Dans lametrics
section, ajoutez ou décommentez la ligneenableClusterQueueResources: true
.apiVersion: v1 data: controller_manager_config.yaml: | apiVersion: config.kueue.x-k8s.io/v1beta1 kind: Configuration health: healthProbeBindAddress: :8081 metrics: bindAddress: :8080 enableClusterQueueResources: true
<-- ADD/UNCOMMENT THIS LINE
Par défaut, tous les
k8s
services sont disponibles à l'échelle du cluster. Kueue crée un servicekueue-controller-manager-metrics-service
pour exposer les métriques. Pour éviter les observations dupliquées pour les métriques, modifiez ce service pour autoriser l'accès uniquement au service de métriques depuis le même nœud. Pour ce faire, ajoutez la ligneinternalTrafficPolicy: Local
à lakueue-controller-manager-metrics-service
définition.apiVersion: v1 kind: Service metadata: labels: ... name: kueue-controller-manager-metrics-service namespace: kueue-system spec: ports: - name: https port: 8443 protocol: TCP targetPort: https internalTrafficPolicy: Local
<-- ADD THIS LINE
selector: control-plane: controller-managerEnfin, le
kueue-controller-manager
pod crée unkube-rbac-proxy
contenant. Ce conteneur présente actuellement un niveau élevé de verbosité de journalisation, ce qui fait que le jeton porteur du cluster est enregistré par ce conteneur lorsque le scraper de métriques accède au.kueue-controller-manager-metrics-service
Nous vous recommandons de réduire cette verbosité de journalisation. La valeur par défaut du manifeste distribué par Kueue est 10, nous vous recommandons de la remplacer par 0.apiVersion: apps/v1 kind: Deployment metadata: labels: ... name: kueue-controller-manager namespace: kueue-system spec: ... template: ... spec: containers: ... - args: - --secure-listen-address=0.0.0.0:8443 - --upstream=http://127.0.0.1:8080/ - --logtostderr=true - --v=0
<-- CHANGE v=10 TO v=0
image: gcr.io/kubebuilder/kube-rbac-proxy:v0.8.0 name: kube-rbac-proxy ...
Activer l'indicateur de configuration
Pour activer les métriques Kueue, vous devez activer la configuration supplémentaire kueue_container_insights
dans le module complémentaire. Vous pouvez le faire soit en utilisant le module complémentaire EKS Observability AWS CLI pour configurer, soit en utilisant la EKS console Amazon.
Après avoir correctement installé le module complémentaire EKS Observability à l'aide de l'une des méthodes suivantes, vous pouvez consulter les métriques de votre EKS cluster Amazon sous l'onglet Tableau de bord de la HyperPod console.
Ajout de fichiers de configuration du OpenTelemetry collecteur
L' CloudWatch agent prend en charge les fichiers de configuration de OpenTelemetry collecteurs supplémentaires en plus de ses propres fichiers de configuration. Cette fonctionnalité vous permet d'utiliser des fonctionnalités d' CloudWatch agent telles que CloudWatch Application Signals ou Container Insights dans le cadre de la configuration de l' CloudWatch agent et d'intégrer votre configuration de OpenTelemetry collecteur existante avec un seul agent.
Pour éviter les conflits de fusion avec les pipelines créés automatiquement par CloudWatch l'agent, nous vous recommandons d'ajouter un suffixe personnalisé à chacun des composants et pipelines de la configuration de votre OpenTelemetry collecteur. Cela permettra d'éviter les collisions et les conflits de fusion.
Si vous utilisez le module complémentaire Amazon CloudWatch Observability EKS
--configuration-values file://values.yaml
or
--configuration-values ' agent: otelConfig: receivers: otlp/custom-suffix: protocols: http: {} exporters: awscloudwatchlogs/custom-suffix: log_group_name: "test-group" log_stream_name: "test-stream" service: pipelines: logs/custom-suffix: receivers: [otlp/custom-suffix] exporters: [awscloudwatchlogs/custom-suffix] '
Si vous utilisez le graphique Helm
--set agent.otelConfig=' receivers: otlp/custom-suffix: protocols: http: {} exporters: awscloudwatchlogs/custom-suffix: log_group_name: "test-group" log_stream_name: "test-stream" service: pipelines: logs/custom-suffix: receivers: [otlp/custom-suffix] exporters: [awscloudwatchlogs/custom-suffix] '