Solution de surveillance de EKS l'infrastructure Amazon avec Amazon Managed Grafana - Amazon Managed Grafana

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.

Solution de surveillance de EKS l'infrastructure Amazon avec Amazon Managed Grafana

La surveillance de l'infrastructure Amazon Elastic Kubernetes Service est l'un des scénarios les plus courants pour lesquels Amazon Managed Grafana est utilisé. Cette page décrit un modèle qui fournit une solution pour ce scénario. La solution peut être installée à l'aide AWS Cloud Development Kit (AWS CDK)ou avec Terraform.

Cette solution permet de configurer :

  • Votre espace de travail Amazon Managed Service for Prometheus permet de stocker les métriques de votre cluster EKS Amazon et de créer un collecteur géré pour extraire les métriques et les transférer vers cet espace de travail. Pour plus d'informations, voir Ingérer des métriques avec des collecteurs AWS gérés.

  • Collecte des journaux de votre EKS cluster Amazon à l'aide d'un CloudWatch agent. Les journaux sont stockés et interrogés par Amazon Managed Grafana. CloudWatch Pour plus d'informations, consultez Logging for Amazon EKS

  • Votre espace de travail Amazon Managed Grafana pour extraire ces journaux et statistiques, et créer des tableaux de bord et des alertes pour vous aider à surveiller votre cluster.

L'application de cette solution créera des tableaux de bord et des alertes qui :

  • Évaluez l'état général EKS du cluster Amazon.

  • Affichez l'état et les performances du plan de EKS contrôle Amazon.

  • Affichez l'état et les performances du plan de EKS données Amazon.

  • Affichez des informations sur les EKS charges de travail Amazon dans les espaces de noms Kubernetes.

  • Affichez l'utilisation des ressources dans les espaces de nomsCPU, notamment l'utilisation de la mémoire, du disque et du réseau.

À propos de cette solution

Cette solution configure un espace de travail Grafana géré par Amazon afin de fournir des métriques pour votre cluster AmazonEKS. Les métriques sont utilisées pour générer des tableaux de bord et des alertes.

Les métriques vous aident à exploiter les EKS clusters Amazon de manière plus efficace en fournissant des informations sur l'état et les performances du plan de contrôle et de données Kubernetes. Vous pouvez comprendre votre EKS cluster Amazon du niveau du nœud aux pods, en passant par Kubernetes, en passant par le suivi détaillé de l'utilisation des ressources.

La solution fournit à la fois des capacités d'anticipation et de correction :

  • Les capacités d'anticipation incluent :

    • Gérez l'efficacité des ressources en pilotant les décisions de planification. Par exemple, pour fournir des performances et une fiabilité SLAs à vos utilisateurs internes du EKS cluster Amazon, vous pouvez allouer suffisamment CPU de ressources de mémoire à leurs charges de travail en vous basant sur le suivi de l'historique d'utilisation.

    • Prévisions d'utilisation : en fonction de l'utilisation actuelle des ressources de votre EKS cluster Amazon, telles que les nœuds, les volumes persistants soutenus par Amazon ou les équilibreurs de charge d'applications EBS, vous pouvez planifier à l'avance, par exemple pour un nouveau produit ou un nouveau projet présentant des exigences similaires.

    • Détectez rapidement les problèmes potentiels : par exemple, en analysant les tendances de consommation de ressources au niveau de l'espace de noms Kubernetes, vous pouvez comprendre le caractère saisonnier de l'utilisation de la charge de travail.

  • Les capacités correctives incluent :

    • Réduisez le délai moyen de détection (MTTD) des problèmes sur l'infrastructure et le niveau de charge de travail de Kubernetes. Par exemple, en consultant le tableau de bord de résolution des problèmes, vous pouvez rapidement tester des hypothèses sur ce qui s'est mal passé et les éliminer.

    • Déterminez où le problème se produit dans la pile. Par exemple, le plan de EKS contrôle Amazon est entièrement géré par AWS et certaines opérations, telles que la mise à jour d'un déploiement Kubernetes, peuvent échouer si le API serveur est surchargé ou si la connectivité est affectée.

L'image suivante montre un exemple du dossier du tableau de bord de la solution.

Image illustrant un exemple de dossier de tableau de bord Grafana créé à l'aide de cette solution.

Vous pouvez choisir un tableau de bord pour obtenir plus de détails. Par exemple, si vous choisissez d'afficher les ressources de calcul pour les charges de travail, un tableau de bord, tel que celui illustré dans l'image suivante, s'affichera.

Image illustrant un exemple de tableau de bord Grafana illustrant l'CPUutilisation créée à l'aide de cette solution.

Les métriques sont scrutées avec un intervalle d'une minute. Les tableaux de bord affichent des statistiques agrégées à 1 minute, 5 minutes ou plus, en fonction de la métrique spécifique.

Les journaux sont également affichés dans les tableaux de bord, afin que vous puissiez les interroger et les analyser afin de trouver les causes profondes des problèmes. L'image suivante montre un tableau de bord de journal.

Une image montrant un exemple de tableau de bord Grafana avec des journaux, créé à l'aide de cette solution.

Pour obtenir la liste des mesures suivies par cette solution, consultezListe des indicateurs suivis.

Pour obtenir la liste des alertes créées par la solution, consultezListe des alertes créées.

Coûts

Cette solution crée et utilise des ressources dans votre espace de travail. L'utilisation standard des ressources créées vous sera facturée, notamment :

  • Accès des utilisateurs à l'espace de travail de Grafana géré par Amazon. Pour plus d'informations sur les tarifs, consultez les tarifs d'Amazon Managed Grafana.

  • Ingestion et stockage des métriques Amazon Managed Service for Prometheus, y compris l'utilisation du collecteur sans agent Amazon Managed Service for Prometheus, et l'analyse métrique (traitement des échantillons de requêtes). Le nombre de métriques utilisées par cette solution dépend de la configuration et de l'utilisation du EKS cluster Amazon.

    Vous pouvez consulter les statistiques d'ingestion et de stockage dans Amazon Managed Service for Prometheus à CloudWatch l'aide de Pour plus d'informations, CloudWatchconsultez le guide de l'utilisateur d'Amazon Managed Service for Prometheus.

    Vous pouvez estimer le coût à l'aide du calculateur de prix sur la page de tarification d'Amazon Managed Service for Prometheus. Le nombre de métriques dépendra du nombre de nœuds de votre cluster et des métriques produites par vos applications.

  • CloudWatch Ingestion, stockage et analyse des journaux. Par défaut, la durée de conservation des journaux est définie pour ne jamais expirer. Vous pouvez l'ajuster dans CloudWatch. Pour plus d'informations sur les tarifs, consultez Amazon CloudWatch Pricing.

  • Coûts de mise en réseau. Des frais AWS réseau standard peuvent vous être facturés pour le trafic entre zones de disponibilité, régions ou autres.

Les calculateurs de prix, disponibles sur la page de tarification de chaque produit, peuvent vous aider à comprendre les coûts potentiels de votre solution. Les informations suivantes peuvent vous aider à obtenir un coût de base pour la solution exécutée dans la même zone de disponibilité que le EKS cluster Amazon.

Produit (langue française non garantie) Métrique du calculateur Valeur

Amazon Managed Service for Prometheus

Série Active

8000 (base)

15 000 (par nœud)

Intervalle de collecte moyen

60 (secondes)

Amazon Managed Service pour Prometheus (collecteur géré)

Nombre de collecteurs

1

Nombre d'échantillons

15 (base)

150 (par nœud)

Nombre de règles

161

Intervalle moyen d'extraction des règles

60 (secondes)

Amazon Managed Grafana

Nombre de rédacteurs/administrateurs actifs

1 (ou plus, en fonction de vos utilisateurs)

CloudWatch (Journaux)

Journaux standard : données ingérées

24,5 Go (base)

0,5 Go (par nœud)

Stockage et archivage des journaux (journaux standard et vendus)

Oui au stockage des journaux : en supposant une conservation d'un mois

Données de journaux attendues scannées

Chaque requête d'information sur les journaux de Grafana analysera tout le contenu des journaux du groupe pendant la période spécifiée.

Ces numéros sont les numéros de base d'une solution exécutée EKS sans logiciel supplémentaire. Cela vous donnera une estimation des coûts de base. Il exclut également les coûts d'utilisation du réseau, qui varieront selon que l'espace de travail Amazon Managed Grafana, l'espace de travail Amazon Managed Service for Prometheus et le cluster EKS Amazon se situent dans la même zone de disponibilité, et. Région AWS VPN

Note

Lorsqu'un élément de ce tableau inclut une (base) valeur et une valeur par ressource (par exemple,(per node)), vous devez ajouter la valeur de base à la valeur par ressource multipliée par le nombre que vous avez de cette ressource. Par exemple, pour Average des séries chronologiques actives, entrez un nombre qui est8000 + the number of nodes in your cluster * 15,000. Si vous avez 2 nœuds, vous devez entrer38,000, c'est-à-dire8000 + ( 2 * 15,000 ).

Prérequis

Cette solution nécessite que vous ayez effectué les opérations suivantes avant de l'utiliser.

  1. Vous devez avoir ou créer un cluster Amazon Elastic Kubernetes Service que vous souhaitez surveiller, et le cluster doit comporter au moins un nœud. L'accès au point de terminaison API du serveur doit être défini pour inclure l'accès privé (il peut également autoriser l'accès public).

    Le mode d'authentification doit inclure API l'accès (il peut être défini sur l'un API ou l'autreAPI_AND_CONFIG_MAP). Cela permet au déploiement de la solution d'utiliser des entrées d'accès.

    Les éléments suivants doivent être installés dans le cluster (vrai par défaut lors de la création du cluster via la console, mais doivent être ajoutés si vous créez le cluster à l'aide du proxy AWS API or AWS CLI) : AWS CNI, Core DNS et Kube-proxy AddOns.

    Enregistrez le nom du cluster pour le spécifier ultérieurement. Cela se trouve dans les détails du cluster sur la EKS console Amazon.

    Note

    Pour en savoir plus sur la création d'un EKS cluster Amazon, consultez Getting started with Amazon EKS.

  2. Vous devez créer un espace de travail Amazon Managed Service for Prometheus identique à celui de votre cluster Compte AWS Amazon. EKS Pour plus de détails, consultez la section Créer un espace de travail dans le guide de l'utilisateur d'Amazon Managed Service for Prometheus.

    Enregistrez l'ARNespace de travail Amazon Managed Service for Prometheus pour le spécifier ultérieurement.

  3. Vous devez créer un espace de travail Grafana géré par Amazon avec la version 9 ou une version ultérieure de Grafana, au même titre que Région AWS votre cluster Amazon. EKS Pour plus de détails sur la création d'un nouvel espace de travail, consultezCréation d'un espace de travail Grafana géré par Amazon.

    Le rôle de l'espace de travail doit être autorisé à accéder à Amazon Managed Service pour Prometheus et Amazon. CloudWatch APIs Le moyen le plus simple de le faire est d'utiliser les autorisations gérées par le service et de sélectionner Amazon Managed Service pour Prometheus et. CloudWatch Vous pouvez également ajouter manuellement les AmazonGrafanaCloudWatchAccesspolitiques AmazonPrometheusQueryAccesset à votre IAM rôle dans l'espace de travail.

    Enregistrez l'identifiant et le point de terminaison de l'espace de travail Amazon Managed Grafana pour les spécifier ultérieurement. L'identifiant se trouve dans le formulaireg-123example. L'ID et le point de terminaison se trouvent dans la console Amazon Managed Grafana. Le point de terminaison correspond URL à l'espace de travail et inclut l'ID. Par exemple, https://g-123example.grafana-workspace.<region>.amazonaws.com/.

  4. Si vous déployez la solution avec Terraform, vous devez créer un compartiment Amazon S3 accessible depuis votre compte. Cela sera utilisé pour stocker les fichiers d'état Terraform pour le déploiement.

    Enregistrez l'ID du compartiment Amazon S3 pour le spécifier ultérieurement.

  5. Pour consulter les règles d'alerte Amazon Managed Service for Prometheus, vous devez activer les alertes Grafana pour l'espace de travail Amazon Managed Grafana.

    En outre, Amazon Managed Grafana doit disposer des autorisations suivantes pour vos ressources Prometheus. Vous devez les ajouter aux politiques gérées par le service ou aux politiques gérées par le client décrites dans Autorisations et politiques Amazon Managed Grafana pour les sources de données AWS.

    • aps:ListRules

    • aps:ListAlertManagerSilences

    • aps:ListAlertManagerAlerts

    • aps:GetAlertManagerStatus

    • aps:ListAlertManagerAlertGroups

    • aps:PutAlertManagerSilences

    • aps:DeleteAlertManagerSilence

Note

Bien que cela ne soit pas strictement obligatoire pour configurer la solution, vous devez configurer l'authentification des utilisateurs dans votre espace de travail Amazon Managed Grafana avant que les utilisateurs puissent accéder aux tableaux de bord créés. Pour de plus amples informations, veuillez consulter Authentifier les utilisateurs dans les espaces de travail Amazon Managed Grafana.

Utilisation de cette solution

Cette solution configure AWS l'infrastructure pour prendre en charge les statistiques de reporting et de surveillance à partir d'un EKS cluster Amazon. Vous pouvez l'installer en utilisant l'un ou l'autre AWS Cloud Development Kit (AWS CDK)ou avec Terraform.

Using AWS CDK

L'une des manières dont cette solution vous est fournie est sous forme d' AWS CDK application. Vous fournirez des informations sur les ressources que vous souhaitez utiliser, et la solution créera le scraper, les journaux et les tableaux de bord pour vous.

Note

Les étapes décrites ici supposent que vous disposez d'un environnement dans AWS CLI lequel AWS CDK les fichiers Node.js et NPMsont installés. Vous utiliserez make et brew simplifierez la construction et d'autres actions courantes.

Pour utiliser cette solution pour surveiller un EKS cluster Amazon avec AWS CDK
  1. Assurez-vous d'avoir effectué toutes les étapes préalables.

  2. Téléchargez tous les fichiers de la solution depuis Amazon S3. Les fichiers se trouvent à l'adresse s3://aws-observability-solutions/EKS/OSS/CDK/v3.0.0/iac suivante et vous pouvez les télécharger à l'aide de la commande Amazon S3 suivante. Exécutez cette commande à partir d'un dossier de votre environnement de ligne de commande.

    aws s3 sync s3://aws-observability-solutions/EKS/OSS/CDK/v3.0.0/iac/ .

    Il n'est pas nécessaire de modifier ces fichiers.

  3. Dans votre environnement de ligne de commande (depuis le dossier dans lequel vous avez téléchargé les fichiers de solution), exécutez les commandes suivantes.

    Configurez les variables d'environnement nécessaires. RemplacezREGION, AMG_ENDPOINTEKS_CLUSTER, et AMP_ARN par votre Région AWS point de terminaison d'espace de travail Amazon Managed Grafana (dans le formulairehttp://g-123example.grafana-workspace.us-east-1.amazonaws.com), le nom du EKS cluster Amazon et l'espace de travail Amazon Managed Service for Prometheus. ARN

    export AWS_REGION=REGION export AMG_ENDPOINT=AMG_ENDPOINT export EKS_CLUSTER_NAME=EKS_CLUSTER export AMP_WS_ARN=AMP_ARN
  4. Vous devez créer un jeton de compte de service avec ADMIN accès pour appeler Grafana HTTPAPIs. Pour plus de détails, consultez Utilisez des comptes de service pour vous authentifier auprès du Grafana HTTP APIs. Vous pouvez utiliser AWS CLI les commandes suivantes pour créer le jeton. Vous devrez remplacer le par l'GRAFANA_IDidentifiant de votre espace de travail Grafana (il figurera dans le formulaireg-123example). Cette clé expirera au bout de 7 200 secondes, soit 2 heures. Vous pouvez modifier l'heure (seconds-to-live), si nécessaire. Le déploiement prend moins d'une heure.

    GRAFANA_SA_ID=$(aws grafana create-workspace-service-account \ --workspace-id GRAFANA_ID \ --grafana-role ADMIN \ --name grafana-operator-key \ --query 'id' \ --output text) # creates a new token for calling APIs export AMG_API_KEY=$(aws grafana create-workspace-service-account-token \ --workspace-id $managed_grafana_workspace_id \ --name "grafana-operator-key-$(date +%s)" \ --seconds-to-live 7200 \ --service-account-id $GRAFANA_SA_ID \ --query 'serviceAccountToken.key' \ --output text)

    Mettez la API clé à la disposition du AWS CDK en l'ajoutant à l' AWS Systems Manager aide de la commande suivante. Remplacez AWS_REGION par la région dans laquelle votre solution sera exécutée (dans le formulaireus-east-1).

    aws ssm put-parameter --name "/observability-aws-solution-eks-infra/grafana-api-key" \ --type "SecureString" \ --value $AMG_API_KEY \ --region AWS_REGION \ --overwrite
  5. Exécutez la make commande suivante, qui installera toutes les autres dépendances du projet.

    make deps
  6. Enfin, lancez le AWS CDK projet :

    make build && make pattern aws-observability-solution-eks-infra-$EKS_CLUSTER_NAME deploy
  7. [Facultatif] Une fois la création de la pile terminée, vous pouvez utiliser le même environnement pour créer d'autres instances de la pile pour d'autres EKS clusters Amazon de la même région, à condition de remplir les autres conditions requises pour chacun (y compris les espaces de travail Amazon Managed Grafana et Amazon Managed Service for Prometheus distincts). Vous devrez redéfinir les export commandes avec les nouveaux paramètres.

Une fois la création de la pile terminée, votre espace de travail Amazon Managed Grafana sera renseigné avec un tableau de bord présentant les statistiques de votre cluster AmazonEKS. L'affichage des métriques prendra quelques minutes, alors que le scraper commence à collecter des métriques.

Using Terraform

Cette solution vous est fournie notamment sous forme de solution Terraform. Vous fournirez des informations sur les ressources que vous souhaitez utiliser, et la solution créera le scraper, les journaux et les tableaux de bord pour vous.

Pour utiliser cette solution pour surveiller un EKS cluster Amazon avec Terraform
  1. Assurez-vous d'avoir effectué toutes les étapes préalables.

  2. Téléchargez tous les fichiers de la solution depuis Amazon S3. Les fichiers se trouvent à l'adresse s3://aws-observability-solutions/EKS/OSS/Terraform/v3.0.0/ suivante et vous pouvez les télécharger à l'aide de la commande Amazon S3 suivante. Exécutez cette commande à partir d'un dossier de votre environnement de ligne de commande, puis remplacez le répertoire par le dossier à partir duquel vous allez déployer.

    aws s3 sync s3://aws-observability-solutions/EKS/OSS/Terraform/v3.0.0/ . cd eks-monitoring

    Il n'est pas nécessaire de modifier ces fichiers.

  3. Dans votre environnement de ligne de commande (depuis le dossier dans lequel vous avez téléchargé les fichiers de solution), exécutez les commandes suivantes.

    Configurez les variables d'environnement nécessaires. RemplacezREGION,AMG_ENDPOINT, EKS_CLUSTER AMP_ARNS3_ID, et par l' Région AWS endroit où vous souhaitez déployer les nouvelles ressources (par exemple,us-east-1), le point de terminaison de l'espace de travail Amazon Managed Grafana (dans le formulairehttp://g-123example.grafana-workspace.us-east-1.amazonaws.com), le nom du EKS cluster Amazon, l'espace de travail Amazon Managed Service for Prometheus et l'ID du compartiment ARN Amazon S3.

    export TF_VAR_aws_region=REGION export TF_VAR_amg_endpoint=AMG_ENDPOINT export TF_VAR_eks_cluster_name=EKS_CLUSTER export TF_VAR_amp_ws_arn=AMP_ARN export TF_VAR_s3_bucket_id=S3_ID
  4. Vous devez créer un jeton de compte de service avec ADMIN accès pour appeler Grafana HTTPAPIs. Pour plus de détails, consultez Utilisez des comptes de service pour vous authentifier auprès du Grafana HTTP APIs. Vous pouvez utiliser AWS CLI les commandes suivantes pour créer le jeton. Vous devrez remplacer le par l'GRAFANA_IDidentifiant de votre espace de travail Grafana (il figurera dans le formulaireg-123example). Cette clé expirera au bout de 7 200 secondes, soit 2 heures. Vous pouvez modifier l'heure (seconds-to-live), si nécessaire. Le déploiement prend moins d'une heure.

    GRAFANA_SA_ID=$(aws grafana create-workspace-service-account \ --workspace-id GRAFANA_ID \ --grafana-role ADMIN \ --name grafana-operator-key \ --query 'id' \ --output text) # creates a new token for running Terraform export TF_VAR_grafana_api_key=$(aws grafana create-workspace-service-account-token \ --workspace-id $managed_grafana_workspace_id \ --name "grafana-operator-key-$(date +%s)" \ --seconds-to-live 7200 \ --service-account-id $GRAFANA_SA_ID \ --query 'serviceAccountToken.key' \ --output text)
    Note

    Première étape ci-dessus, la création d'un compte de service pour l'espace de travail n'est pas requise si vous possédez déjà un compte de service. Dans ce cas, remplacez le $GRAFANA_SA_ID par l'identifiant de votre compte de service.

  5. Exécutez la terraform commande suivante pour initialiser Terraform avec la solution.

    terraform init -reconfigure \ -backend-config="bucket=${TF_VAR_s3_bucket_id}" \ -backend-config="region=${TF_VAR_aws_region}" \ -backend-config="key=state/${TF_VAR_eks_cluster_name}/terraform.tfstate"
  6. Enfin, déployez le projet Terraform :

    terraform apply

Une fois la création de la solution terminée, votre espace de travail Amazon Managed Grafana sera renseigné avec un tableau de bord présentant les statistiques de votre cluster AmazonEKS. L'affichage des métriques prendra quelques minutes, alors que le scraper commence à collecter des métriques.

Liste des indicateurs suivis

Cette solution crée un scraper qui collecte les métriques de votre EKS cluster Amazon. Ces statistiques sont stockées dans Amazon Managed Service for Prometheus, puis affichées dans les tableaux de bord Amazon Managed Grafana. Par défaut, le scraper collecte toutes les métriques compatibles avec Prometheus exposées par le cluster. L'installation d'un logiciel dans votre cluster qui produit davantage de métriques augmentera les métriques collectées. Si vous le souhaitez, vous pouvez réduire le nombre de métriques en mettant à jour le scraper avec une configuration qui filtre les métriques.

Les métriques suivantes sont suivies avec cette solution, dans une configuration de EKS cluster Amazon de base sans logiciel supplémentaire installé.

Métrique Description/Objectif

aggregator_unavailable_apiservice

Dont APIServices les jauges sont marquées comme non disponibles, ventilées par APIService nom.

apiserver_admission_webhook_admission_duration_seconds_bucket

Histogramme de latence du webhook d'admission en secondes, identifié par son nom et ventilé pour chaque opération, API ressource et type (validation ou admission).

apiserver_current_inflight_requests

Nombre maximal de demandes en vol actuellement utilisées (limite de ce serveur d'API) par type de demande au cours de la dernière seconde.

apiserver_envelope_encryption_dek_cache_fill_percent

Pourcentage des emplacements de cache actuellement occupés par le cacheDEKs.

apiserver_flowcontrol_current_executing_requests

Nombre de demandes lors de l'étape initiale (pour aWATCH) ou de toute autre (pour une étape nonWATCH) d'exécution dans le sous-système API Priorité et équité.

apiserver_flowcontrol_rejected_requests_total

Nombre de demandes rejetées au cours de l'étape initiale (pour aWATCH) ou de toute autre (pour une étape nonWATCH) d'exécution dans le sous-système API Priority and Fairness.

apiserver_flowcontrol_request_concurrency_limit

Nombre nominal de sièges d'exécution configurés pour chaque niveau de priorité.

apiserver_flowcontrol_request_execution_seconds_bucket

L'histogramme segmenté de la durée de l'étape initiale (pour uneWATCH) ou de toute (pour une WATCH non-) étape d'exécution de la demande dans le sous-système API Priority and Fairness.

apiserver_flowcontrol_request_queue_length_after_enqueue_count

Le nombre d'étapes initiales (pour aWATCH) ou de n'importe quelle (pour une WATCH non-) étape d'exécution de la demande dans le sous-système API Priority and Fairness.

apiserver_request

Indique une demande API du serveur.

apiserver_requested_deprecated_apis

Jauge des objets obsolètes APIs qui ont été demandés, ventilés par API groupe, version, ressource, sous-ressource et removed_release.

apiserver_request_duration_seconds

Distribution de la latence de réponse en secondes pour chaque verbe, valeur d'essai, groupe, version, ressource, sous-ressource, portée et composant.

apiserver_request_duration_seconds_bucket

L'histogramme segmenté de la distribution de la latence de réponse en secondes pour chaque verbe, valeur d'essai, groupe, version, ressource, sous-ressource, portée et composant.

apiserver_request_slo_duration_seconds

Distribution de la latence de réponse de l'objectif de niveau de service (SLO) en secondes pour chaque verbe, valeur d'essai, groupe, version, ressource, sous-ressource, étendue et composant.

apiserver_request_terminations_total

Nombre de demandes auxquelles apiserver a mis fin en état de légitime défense.

apiserver_request_total

Le compteur de requêtes apiserver est ventilé pour chaque verbe, valeur d'exécution à sec, groupe, version, ressource, portée, composant et HTTP code de réponse.

container_cpu_usage_seconds_total

Temps de processeur cumulé consommé.

container_fs_reads_bytes_total

Nombre cumulé d'octets lus.

container_fs_reads_total

Nombre cumulé de lectures effectuées.

container_fs_writes_bytes_total

Nombre cumulé d'octets écrits.

container_fs_writes_total

Nombre cumulé d'écritures effectuées.

container_memory_cache

Mémoire cache totale des pages.

container_memory_rss

Taille deRSS.

container_memory_swap

Utilisation de l'échange de conteneurs.

container_memory_working_set_bytes

Set de travail actuel.

container_network_receive_bytes_total

Nombre cumulé d'octets reçus.

container_network_receive_packets_dropped_total

Nombre cumulé de paquets abandonnés lors de la réception.

container_network_receive_packets_total

Nombre cumulé de paquets reçus.

container_network_transmit_bytes_total

Nombre cumulé d'octets transmis.

container_network_transmit_packets_dropped_total

Nombre cumulé de paquets abandonnés lors de la transmission.

container_network_transmit_packets_total

Nombre cumulé de paquets transmis.

etcd_request_duration_seconds_bucket

L'histogramme en compartiments de la latence des demandes etcd en secondes pour chaque opération et type d'objet.

go_goroutines

Nombre de goroutines qui existent actuellement.

go_threads

Nombre de threads du système d'exploitation créés.

kubelet_cgroup_manager_duration_seconds_bucket

L'histogramme segmenté de la durée en secondes pour les opérations de cgroup manager. Décomposé par méthode.

kubelet_cgroup_manager_duration_seconds_count

Durée en secondes pour les opérations du cgroup manager. Décomposé par méthode.

kubelet_node_config_error

Cette métrique est vraie (1) si le nœud rencontre une erreur liée à la configuration, fausse (0) dans le cas contraire.

kubelet_node_name

Le nom du nœud. Le décompte est toujours de 1.

kubelet_pleg_relist_duration_seconds_bucket

L'histogramme segmenté de la durée en secondes pour la remise en vente des pods. PLEG

kubelet_pleg_relist_duration_seconds_count

Durée en secondes de remise en vente des pods. PLEG

kubelet_pleg_relist_interval_seconds_bucket

L'histogramme segmenté de l'intervalle en secondes entre les remises en vente. PLEG

kubelet_pod_start_duration_seconds_count

Le nombre de secondes entre le moment où Kubelet voit un pod pour la première fois et celui où le pod commence à fonctionner.

kubelet_pod_worker_duration_seconds_bucket

L'histogramme segmenté de la durée en secondes pour synchroniser un seul pod. Répartie par type d'opération : création, mise à jour ou synchronisation.

kubelet_pod_worker_duration_seconds_count

Durée en secondes nécessaire à la synchronisation d'un seul pod. Répartie par type d'opération : création, mise à jour ou synchronisation.

kubelet_running_containers

Nombre de conteneurs actuellement en service.

kubelet_running_pods

Nombre de pods équipés d'un bac à sable fonctionnel.

kubelet_runtime_operations_duration_seconds_bucket

L'histogramme segmenté de la durée en secondes des opérations d'exécution. Réparti par type d'opération.

kubelet_runtime_operations_errors_total

Nombre cumulé d'erreurs d'exécution par type d'opération.

kubelet_runtime_operations_total

Nombre cumulé d'opérations d'exécution par type d'opération.

kube_node_status_allocatable

La quantité de ressources allouables aux pods (après en avoir réservé une partie aux démons du système).

kube_node_status_capacity

La quantité totale de ressources disponibles pour un nœud.

kube_pod_container_resource_limits (CPU)

Le nombre de ressources limites demandées par un conteneur.

kube_pod_container_resource_limits (Memory)

Le nombre de ressources limites demandées par un conteneur.

kube_pod_container_resource_requests (CPU)

Le nombre de ressources de demande demandées par un conteneur.

kube_pod_container_resource_requests (Memory)

Le nombre de ressources de demande demandées par un conteneur.

kube_pod_owner

Informations sur le propriétaire du Pod.

kube_resourcequota

Les quotas de ressources dans Kubernetes imposent des limites d'utilisation aux ressources telles que CPU la mémoire et le stockage au sein des espaces de noms.

node_cpu

Les mesures CPU d'utilisation d'un nœud, y compris l'utilisation par cœur et l'utilisation totale.

node_cpu_seconds_total

Des secondes ont CPUs été passées dans chaque mode.

node_disk_io_time_seconds

Temps cumulé passé par un nœud à effectuer des opérations d'E/S sur le disque.

node_disk_io_time_seconds_total

Temps total passé par le nœud à effectuer des opérations d'E/S sur le disque.

node_disk_read_bytes_total

Nombre total d'octets lus sur le disque par le nœud.

node_disk_written_bytes_total

Nombre total d'octets écrits sur le disque par le nœud.

node_filesystem_avail_bytes

Quantité d'espace disponible en octets sur le système de fichiers d'un nœud d'un cluster Kubernetes.

node_filesystem_size_bytes

Taille totale du système de fichiers sur le nœud.

node_load1

Charge moyenne d'CPUutilisation d'un nœud sur une minute.

node_load15

Charge moyenne sur 15 minutes d'CPUutilisation d'un nœud.

node_load5

Charge moyenne sur 5 minutes correspondant à l'CPUutilisation d'un nœud.

node_memory_Buffers_bytes

Quantité de mémoire utilisée pour la mise en cache de la mémoire tampon par le système d'exploitation du nœud.

node_memory_Cached_bytes,

Quantité de mémoire utilisée pour la mise en cache du disque par le système d'exploitation du nœud.

node_memory_MemAvailable_bytes

La quantité de mémoire disponible pour les applications et les caches.

node_memory_MemFree_bytes

La quantité de mémoire libre disponible sur le nœud.

node_memory_MemTotal_bytes

La quantité totale de mémoire physique disponible sur le nœud.

node_network_receive_bytes_total

Nombre total d'octets reçus sur le réseau par le nœud.

node_network_transmit_bytes_total

Nombre total d'octets transmis sur le réseau par le nœud.

process_cpu_seconds_total

CPUTemps total passé par l'utilisateur et le système en secondes.

process_resident_memory_bytes

Taille de la mémoire résidente en octets.

rest_client_requests_total

Nombre de HTTP demandes, partitionnées par code d'état, méthode et hôte.

rest_client_request_duration_seconds_bucket

L'histogramme segmenté de la latence des demandes en secondes. Décomposé par verbe et par hôte.

storage_operation_duration_seconds_bucket

L'histogramme en compartiments de la durée des opérations de stockage.

storage_operation_duration_seconds_count

Le décompte de la durée des opérations de stockage.

storage_operation_errors_total

Nombre cumulé d'erreurs lors des opérations de stockage.

up

Une métrique indiquant si la cible surveillée (par exemple, le nœud) est opérationnelle.

volume_manager_total_volumes

Nombre total de volumes gérés par le gestionnaire de volumes.

workqueue_adds_total

Nombre total d'ajouts gérés par la file d'attente.

workqueue_depth

Profondeur actuelle de la file d'attente de travail.

workqueue_queue_duration_seconds_bucket

L'histogramme en compartiments indiquant le temps en secondes pendant lequel un élément reste dans la file d'attente avant d'être demandé.

workqueue_work_duration_seconds_bucket

L'histogramme en compartiments indiquant le temps en secondes nécessaire au traitement d'un élément de la file d'attente de travail.

Liste des alertes créées

Les tableaux suivants répertorient les alertes créées par cette solution. Les alertes sont créées sous forme de règles dans Amazon Managed Service for Prometheus et affichées dans votre espace de travail Amazon Managed Grafana.

Vous pouvez modifier les règles, notamment en ajouter ou en supprimer, en modifiant le fichier de configuration des règles dans votre espace de travail Amazon Managed Service for Prometheus.

Ces deux alertes sont des alertes spéciales qui sont traitées légèrement différemment des alertes classiques. Au lieu de vous avertir d'un problème, ils vous fournissent des informations qui sont utilisées pour surveiller le système. La description inclut des détails sur l'utilisation de ces alertes.

Alerte Description et utilisation

Watchdog

Il s'agit d'une alerte destinée à garantir que l'ensemble du pipeline d'alertes est fonctionnel. Cette alerte est toujours déclenchée, elle doit donc toujours être déclenchée dans Alertmanager et toujours être déclenchée contre un récepteur. Vous pouvez l'intégrer à votre mécanisme de notification pour envoyer une notification lorsque cette alerte ne se déclenche pas. Par exemple, vous pouvez utiliser l'DeadMansSnitchintégration dans PagerDuty.

InfoInhibitor

Il s'agit d'une alerte qui est utilisée pour inhiber les alertes d'information. En elles-mêmes, les alertes au niveau des informations peuvent être très bruyantes, mais elles sont pertinentes lorsqu'elles sont combinées à d'autres alertes. Cette alerte se déclenche en cas d'severity=infoalerte et cesse de se déclencher lorsqu'une autre alerte d'une gravité égale warning ou critical commence à se déclencher dans le même espace de noms. Cette alerte doit être acheminée vers un récepteur nul et configurée pour inhiber les alertes avecseverity=info.

Les alertes suivantes vous fournissent des informations ou des avertissements concernant votre système.

Alerte Sévérité Description

NodeNetworkInterfaceFlapping

warning

L'interface réseau change souvent de statut

NodeFilesystemSpaceFillingUp

warning

Le système de fichiers devrait manquer d'espace dans les prochaines 24 heures.

NodeFilesystemSpaceFillingUp

critical

Le système de fichiers devrait manquer d'espace dans les 4 prochaines heures.

NodeFilesystemAlmostOutOfSpace

warning

Il reste moins de 5 % d'espace dans le système de fichiers.

NodeFilesystemAlmostOutOfSpace

critical

Il reste moins de 3 % d'espace dans le système de fichiers.

NodeFilesystemFilesFillingUp

warning

Le système de fichiers devrait manquer d'inodes dans les prochaines 24 heures.

NodeFilesystemFilesFillingUp

critical

Le système de fichiers devrait manquer d'inodes dans les 4 prochaines heures.

NodeFilesystemAlmostOutOfFiles

warning

Il reste moins de 5 % d'inodes dans le système de fichiers.

NodeFilesystemAlmostOutOfFiles

critical

Il reste moins de 3 % d'inodes dans le système de fichiers.

NodeNetworkReceiveErrs

warning

L'interface réseau signale de nombreuses erreurs de réception.

NodeNetworkTransmitErrs

warning

L'interface réseau signale de nombreuses erreurs de transmission.

NodeHighNumberConntrackEntriesUsed

warning

Le nombre d'entrées conntrack approche de la limite.

NodeTextFileCollectorScrapeError

warning

Le collecteur de fichiers texte Node Exporter n'a pas pu être supprimé.

NodeClockSkewDetected

warning

Un décalage d'horloge a été détecté.

NodeClockNotSynchronizzing

warning

L'horloge ne se synchronise pas.

NodeRAIDDegraded

critical

RAIDLa matrice est dégradée

NodeRAIDDiskFailure

warning

Appareil défaillant dans la RAID matrice

NodeFileDescriptorLimit

warning

Le noyau devrait bientôt épuiser la limite des descripteurs de fichiers.

NodeFileDescriptorLimit

critical

Le noyau devrait bientôt épuiser la limite des descripteurs de fichiers.

KubeNodeNotReady

warning

Le nœud n'est pas prêt.

KubeNodeUnreachable

warning

Le nœud est inaccessible.

KubeletTooManyPods

info

Kubelet fonctionne à pleine capacité.

KubeNodeReadinessFlapping

warning

L'état de préparation du nœud fluctue.

KubeletPlegDurationHigh

warning

Le Kubelet Pod Lifecycle Event Generator met trop de temps à être remis en vente.

KubeletPodStartUpLatencyHigh

warning

La latence de démarrage du Kubelet Pod est trop élevée.

KubeletClientCertificateExpiration

warning

Le certificat client Kubelet est sur le point d'expirer.

KubeletClientCertificateExpiration

critical

Le certificat client Kubelet est sur le point d'expirer.

KubeletServerCertificateExpiration

warning

Le certificat du serveur Kubelet est sur le point d'expirer.

KubeletServerCertificateExpiration

critical

Le certificat du serveur Kubelet est sur le point d'expirer.

KubeletClientCertificateRenewalErrors

warning

Kubelet n'a pas réussi à renouveler son certificat client.

KubeletServerCertificateRenewalErrors

warning

Kubelet n'a pas réussi à renouveler son certificat de serveur.

KubeletDown

critical

La cible a disparu lors de la découverte de Prometheus Target.

KubeVersionMismatch

warning

Différentes versions sémantiques des composants Kubernetes en cours d'exécution.

KubeClientErrors

warning

Le client du API serveur Kubernetes rencontre des erreurs.

KubeClientCertificateExpiration

warning

Le certificat client est sur le point d'expirer.

KubeClientCertificateExpiration

critical

Le certificat client est sur le point d'expirer.

KubeAggregatedAPIErrors

warning

Kubernetes Aggregated API a signalé des erreurs.

KubeAggregatedAPIDown

warning

Kubernetes Aggregated est en panneAPI.

KubeAPIDown

critical

La cible a disparu lors de la découverte de Prometheus Target.

KubeAPITerminatedRequests

warning

Le serveur d'API Kubernetes a mis fin à {{$value | humanizePercentage }} de ses demandes entrantes.

KubePersistentVolumeFillingUp

critical

Le volume persistant est en train de se remplir.

KubePersistentVolumeFillingUp

warning

Le volume persistant est en train de se remplir.

KubePersistentVolumeInodesFillingUp

critical

Persistent Volume Inodes est en train de se remplir.

KubePersistentVolumeInodesFillingUp

warning

Les inodes de volume persistants se remplissent.

KubePersistentVolumeErrors

critical

Persistent Volume rencontre des problèmes de provisionnement.

KubeCPUOvercommit

warning

Le cluster a surengagé les demandes CPU de ressources.

KubeMemoryOvercommit

warning

Le cluster a surchargé les demandes de ressources de mémoire.

KubeCPUQuotaOvercommit

warning

Le cluster a surengagé les demandes CPU de ressources.

KubeMemoryQuotaOvercommit

warning

Le cluster a surchargé les demandes de ressources de mémoire.

KubeQuotaAlmostFull

info

Le quota d'espace de noms va être complet.

KubeQuotaFullyUsed

info

Le quota d'espace de noms est pleinement utilisé.

KubeQuotaExceeded

warning

Le quota d'espace de noms a dépassé les limites.

CPUThrottlingHigh

info

Les processus sont soumis à un CPU ralentissement élevé.

KubePodCrashLooping

warning

Le pod est en train de tourner en boucle.

KubePodNotReady

warning

Le pod n'est pas prêt depuis plus de 15 minutes.

KubeDeploymentGenerationMismatch

warning

Incompatibilité entre la génération du déploiement en raison d'un éventuel retour en arrière

KubeDeploymentReplicasMismatch

warning

Le déploiement n'a pas atteint le nombre de répliques attendu.

KubeStatefulSetReplicasMismatch

warning

StatefulSet n'a pas atteint le nombre de répliques attendu.

KubeStatefulSetGenerationMismatch

warning

StatefulSet inadéquation de génération due à un éventuel retour en arrière

KubeStatefulSetUpdateNotRolledOut

warning

StatefulSet la mise à jour n'a pas été déployée.

KubeDaemonSetRolloutStuck

warning

DaemonSet le déploiement est bloqué.

KubeContainerWaiting

warning

Le conteneur à dosettes attend plus d'une heure

KubeDaemonSetNotScheduled

warning

DaemonSet les pods ne sont pas programmés.

KubeDaemonSetMisScheduled

warning

DaemonSet les pods sont mal programmés.

KubeJobNotCompleted

warning

Job n'a pas été terminé à temps

KubeJobFailed

warning

Le Job n'a pas pu être terminé.

KubeHpaReplicasMismatch

warning

HPAne correspond pas au nombre de répliques souhaité.

KubeHpaMaxedOut

warning

HPAfonctionne au maximum de répliques

KubeStateMetricsListErrors

critical

kube-state-metrics rencontre des erreurs dans les opérations de liste.

KubeStateMetricsWatchErrors

critical

kube-state-metrics rencontre des erreurs lors du fonctionnement de la montre.

KubeStateMetricsShardingMismatch

critical

kube-state-metrics le partitionnement est mal configuré.

KubeStateMetricsShardsMissing

critical

kube-state-metrics des fragments sont absents.

KubeAPIErrorBudgetBurn

critical

Le API serveur consomme trop d'erreurs.

KubeAPIErrorBudgetBurn

critical

Le API serveur consomme trop d'erreurs.

KubeAPIErrorBudgetBurn

warning

Le API serveur consomme trop d'erreurs.

KubeAPIErrorBudgetBurn

warning

Le API serveur consomme trop d'erreurs.

TargetDown

warning

Une ou plusieurs cibles sont abaissées.

etcdInsufficientMembers

critical

Le cluster Etcd ne compte pas suffisamment de membres.

etcdHighNumberOfLeaderChanges

warning

Etcd Cluster un nombre élevé de changements de leader.

etcdNoLeader

critical

Le cluster Etcd n'a pas de leader.

etcdHighNumberOfFailedGRPCRequests

warning

Nombre élevé de RPC requêtes g échouées dans le cluster Etcd.

etcdGRPCRequestsSlow

critical

Les RPC requêtes Etcd du cluster g sont lentes.

etcdMemberCommunicationSlow

warning

La communication entre les membres du cluster Etcd est lente.

etcdHighNumberOfFailedProposals

warning

Nombre élevé de propositions rejetées dans le cluster Etcd.

etcdHighFsyncDurations

warning

Durées de synchronisation élevées du cluster Etcd.

etcdHighCommitDurations

warning

Le cluster Etcd a des durées de validation plus élevées que prévu.

etcdHighNumberOfFailedHTTPRequests

warning

Le cluster Etcd a échoué HTTP aux demandes.

etcdHighNumberOfFailedHTTPRequests

critical

Le cluster Etcd a un nombre élevé de HTTP demandes échouées.

etcdHTTPRequestsSlow

warning

Les HTTP demandes de cluster Etcd sont lentes.

HostClockNotSynchronizing

warning

L'horloge de l'hôte ne se synchronise pas.

HostOomKillDetected

warning

La OOM destruction de l'hôte a été détectée.

Résolution des problèmes

Plusieurs facteurs peuvent entraîner l'échec de la configuration du projet. Assurez-vous de vérifier les points suivants.

  • Vous devez remplir tous les prérequis avant d'installer la solution.

  • Le cluster doit contenir au moins un nœud avant de tenter de créer la solution ou d'accéder aux métriques.

  • Le AWS CNI CoreDNS et les kube-proxy modules complémentaires doivent être installés sur votre EKS cluster Amazon. S'ils ne sont pas installés, la solution ne fonctionnera pas correctement. Ils sont installés par défaut, lors de la création du cluster via la console. Vous devrez peut-être les installer si le cluster a été créé via un AWS SDK.

  • Le délai d'installation EKS des Amazon Pods a expiré. Cela peut se produire si la capacité des nœuds n'est pas suffisante. Les causes de ces problèmes sont multiples, notamment :

    • Le EKS cluster Amazon a été initialisé avec Fargate au lieu d'Amazon. EC2 Ce projet nécessite AmazonEC2.

    • Les nœuds sont endommagés et ne sont donc pas disponibles.

      Vous pouvez l'utiliser kubectl describe node NODENAME | grep Taints pour vérifier les taches. Ensuite, kubectl taint node NODENAME TAINT_NAME- pour enlever les souillures. Assurez-vous d'inclure le nom - après le nom de la tache.

    • Les nœuds ont atteint la limite de capacité. Dans ce cas, vous pouvez créer un nouveau nœud ou augmenter la capacité.

  • Vous ne voyez aucun tableau de bord dans Grafana : l'identifiant de l'espace de travail Grafana est incorrect.

    Exécutez la commande suivante pour obtenir des informations sur Grafana :

    kubectl describe grafanas external-grafana -n grafana-operator

    Vous pouvez vérifier les résultats pour l'espace de travail appropriéURL. Si ce n'est pas celui que vous attendiez, redéployez-le avec le bon identifiant d'espace de travail.

    Spec: External: API Key: Key: GF_SECURITY_ADMIN_APIKEY Name: grafana-admin-credentials URL: https://g-123example.grafana-workspace.aws-region.amazonaws.com Status: Admin URL: https://g-123example.grafana-workspace.aws-region.amazonaws.com Dashboards: ...
  • Vous ne voyez aucun tableau de bord dans Grafana : vous utilisez une API clé expirée.

    Pour rechercher ce cas, vous devez obtenir l'opérateur grafana et vérifier la présence d'erreurs dans les journaux. Obtenez le nom de l'opérateur Grafana avec cette commande :

    kubectl get pods -n grafana-operator

    Cela renverra le nom de l'opérateur, par exemple :

    NAME READY STATUS RESTARTS AGE grafana-operator-1234abcd5678ef90 1/1 Running 0 1h2m

    Utilisez le nom de l'opérateur dans la commande suivante :

    kubectl logs grafana-operator-1234abcd5678ef90 -n grafana-operator

    Les messages d'erreur tels que les suivants indiquent une API clé expirée :

    ERROR error reconciling datasource {"controller": "grafanadatasource", "controllerGroup": "grafana.integreatly.org", "controllerKind": "GrafanaDatasource", "GrafanaDatasource": {"name":"grafanadatasource-sample-amp","namespace":"grafana-operator"}, "namespace": "grafana-operator", "name": "grafanadatasource-sample-amp", "reconcileID": "72cfd60c-a255-44a1-bfbd-88b0cbc4f90c", "datasource": "grafanadatasource-sample-amp", "grafana": "external-grafana", "error": "status: 401, body: {\"message\":\"Expired API key\"}\n"} github.com/grafana-operator/grafana-operator/controllers.(*GrafanaDatasourceReconciler).Reconcile

    Dans ce cas, créez une nouvelle API clé et déployez à nouveau la solution. Si le problème persiste, vous pouvez forcer la synchronisation à l'aide de la commande suivante avant le redéploiement :

    kubectl delete externalsecret/external-secrets-sm -n grafana-operator
  • CDKinstalls — SSM Paramètre manquant. Si le message d'erreur suivant s'affiche, exécutez cdk bootstrap et réessayez.

    Deployment failed: Error: aws-observability-solution-eks-infra-$EKS_CLUSTER_NAME: SSM parameter /cdk-bootstrap/xxxxxxx/version not found. Has the environment been bootstrapped? Please run 'cdk bootstrap' (see https://docs.aws.amazon.com/cdk/latest/ guide/bootstrapping.html)
  • Le déploiement peut échouer si le OIDC fournisseur existe déjà. Vous verrez un message d'erreur semblable à ce qui suit (dans ce cas, pour les CDK installations) :

    | CREATE_FAILED | Custom::AWSCDKOpenIdConnectProvider | OIDCProvider/Resource/Default Received response status [FAILED] from custom resource. Message returned: EntityAlreadyExistsException: Provider with url https://oidc.eks.REGION.amazonaws.com/id/PROVIDER ID already exists.

    Dans ce cas, accédez au IAM portail, supprimez le OIDC fournisseur et réessayez.

  • Terraform s'installe — Vous voyez un message d'erreur qui inclut et. cluster-secretstore-sm failed to create kubernetes rest client for update of resource failed to create kubernetes rest client for update of resource

    Cette erreur indique généralement que l'opérateur secret externe n'est pas installé ou activé dans votre cluster Kubernetes. Il est installé dans le cadre du déploiement de la solution, mais il n'est parfois pas prêt lorsque la solution en a besoin.

    Vous pouvez vérifier qu'il est installé à l'aide de la commande suivante :

    kubectl get deployments -n external-secrets

    S'il est installé, l'opérateur peut mettre un certain temps à être complètement prêt à être utilisé. Vous pouvez vérifier l'état des définitions de ressources personnalisées (CRDs) nécessaires en exécutant la commande suivante :

    kubectl get crds|grep external-secrets

    Cette commande doit répertorier les opérateurs secrets externes CRDs associés, y compris clustersecretstores.external-secrets.io etexternalsecrets.external-secrets.io. S'ils ne figurent pas dans la liste, attendez quelques minutes et vérifiez à nouveau.

    Une fois qu'CRDsils sont enregistrés, vous pouvez exécuter à terraform apply nouveau pour déployer la solution.