Passer au contenu

Comment puis-je utiliser le module complémentaire Amazon CloudWatch Observability pour surveiller mes clusters Amazon EKS ?

Lecture de 4 minute(s)
0

Je souhaite utiliser le module complémentaire Amazon CloudWatch Observability pour surveiller mes clusters Amazon Elastic Kubernetes Service (Amazon EKS).

Résolution

Remarque : Si des erreurs surviennent lorsque vous exécutez des commandes de l'interface de la ligne de commande AWS (AWS CLI), consultez la section Résoudre des erreurs liées à l’AWS CLI. Vérifiez également que vous utilisez la version la plus récente de l'interface AWS CLI.

Prérequis :

Créer un rôle IAM pour le module complémentaire

Pour créer un fournisseur AWS Identity and Access Management (IAM) OpenID Connect (OIDC), exécutez la commande suivante :

eksctl utils associate-iam-oidc-provider --cluster my-cluster-name --approve

Remarque : Remplacez my-cluster-name par le nom de votre cluster. Pour plus d'informations, consultez la section Attribuer des rôles IAM aux comptes de service Kubernetes.

Pour créer un rôle IAM auquel CloudWatchAgentServerPolicy est attaché, exécutez la commande suivante.

eksctl create iamserviceaccount \
  --name cloudwatch-agent \
  --namespace amazon-cloudwatch
  --cluster my-cluster-name \
  --role-name AmazonCloudWatchObservabilityRole \
  --attach-policy-arn arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy \
  --role-only \
  --approve

Remarque : Remplacez my-cluster-name par le nom de votre cluster. La commande précédente configure également le compte de service de l'agent pour qu'il utilise OIDC pour endosser le rôle.

Installer le module complémentaire

Pour installer le module complémentaire, utilisez la console Amazon EKS ou l'AWS CLI.

Console Amazon EKS

Procédez comme suit :

  1. Ouvrez la console Amazon EKS.
  2. Dans le volet de navigation, sélectionnez Clusters.
  3. Choisissez le nom de votre cluster, puis choisissez l'onglet Modules complémentaires.
  4. Choisissez Ajouter des modules complémentaires, puis Sélectionner des modules complémentaires.
  5. Dans la section Modules complémentaires Amazon EKS, sélectionnez Amazon CloudWatch Observability, puis choisissez Suivant.
  6. Sur la page Configurer les paramètres de modules complémentaires sélectionnés, sélectionnez la version que vous souhaitez utiliser.
  7. Pour Sélectionner un rôle IAM, sélectionnez AmazonCloudWatchObservabilityRole, puis cliquez sur Suivant.
  8. Sur la page Vérifier et ajouter, choisissez Créer.

AWS CLI

Pour installer le module complémentaire, exécutez la commande create-addon suivante :

aws eks create-addon --addon-name amazon-cloudwatch-observability --cluster-name my-cluster-name --service-account-role-arn arn:aws:iam::Account-ID:role/AmazonCloudWatchObservabilityRole

Remarque : Remplacez my-cluster-name par le nom de votre cluster et Account-ID par l’ID de votre compte AWS.

Une fois l'installation terminée, Amazon EKS crée un espace de noms amazon-cloudwatch dans votre cluster. L'agent CloudWatch et les pods Fluent Bit sont également actifs dans votre cluster.

Pour afficher les pods actifs, exécutez la commande suivante :

kubectl get pods -n amazon-cloudwatch

Exemple de sortie :

NAME                                                              READY   STATUS    RESTARTS   AGE
amazon-cloudwatch-observability-controller-manager-6c685b4wsdbg   1/1     Running   0          16s
cloudwatch-agent-76bnd                                            1/1     Running   0          16s
cloudwatch-agent-nbdgm                                            1/1     Running   0          16s
fluent-bit-45wl4                                                  1/1     Running   0          16s
fluent-bit-rsfc7                                                  1/1     Running   0          16s

Déployer un exemple d'application

Si votre cluster ne dispose pas de charges de travail à partir desquelles collecter des métriques, déployez l'exemple de charge de travail suivant :

cat <<EOF >deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: eks-cw-sample-app
  labels:
    app: eks-cw-sample-app
spec:
  replicas: 3
  selector:
    matchLabels:
      app: eks-cw-sample-app
  template:
    metadata:
      labels:
        app: eks-cw-sample-app
    spec:
      containers:
      - name: nginx
        image: public.ecr.aws/nginx/nginx:1.27
        ports:
        - name: http
          containerPort: 80
        imagePullPolicy: IfNotPresent
EOF

kubectl apply -f deployment.yaml

Utilisez la charge de travail précédente pour vérifier que CloudWatch collecte correctement vos métriques.

Surveiller les clusters sur la console CloudWatch

Après avoir installé Container Insights, consultez vos métriques sur la console CloudWatch.

Vous pouvez également utiliser la journalisation AWS Fargate sur vos clusters.

Informations connexes

Enregistrement et surveillance sur Amazon EKS

AWS OFFICIELA mis à jour il y a un an