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 :
- Ouvrez la console Amazon EKS.
- Dans le volet de navigation, sélectionnez Clusters.
- Choisissez le nom de votre cluster, puis choisissez l'onglet Modules complémentaires.
- Choisissez Ajouter des modules complémentaires, puis Sélectionner des modules complémentaires.
- Dans la section Modules complémentaires Amazon EKS, sélectionnez Amazon CloudWatch Observability, puis choisissez Suivant.
- Sur la page Configurer les paramètres de modules complémentaires sélectionnés, sélectionnez la version que vous souhaitez utiliser.
- Pour Sélectionner un rôle IAM, sélectionnez AmazonCloudWatchObservabilityRole, puis cliquez sur Suivant.
- 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