

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.

# Implémentez les diagnostics et le dépannage de Kubernetes basés sur l'IA grâce à l'intégration de K8sGPT et Amazon Bedrock
<a name="implement-ai-powered-kubernetes-diagnostics-and-troubleshooting-with-k8sgpt-and-amazon-bedrock-integration"></a>

*Ishwar Chauthaiwale, Muskan., et Prafful Gupta, Amazon Web Services*

## Résumé
<a name="implement-ai-powered-kubernetes-diagnostics-and-troubleshooting-with-k8sgpt-and-amazon-bedrock-integration-summary"></a>

Ce modèle montre comment implémenter les diagnostics et le dépannage de Kubernetes basés sur l'IA en intégrant K8sGPT au modèle Anthropic Claude v2 disponible sur Amazon Bedrock. La solution fournit une analyse en langage naturel et des étapes de résolution des problèmes liés au cluster Kubernetes via une architecture hôte Bastion sécurisée. En combinant l'expertise de K8sGPT Kubernetes avec les capacités linguistiques avancées d'Amazon Bedrock DevOps , les équipes peuvent identifier et résoudre rapidement les problèmes liés aux clusters. Grâce à ces fonctionnalités, il est possible de réduire le temps moyen de résolution (MTTR) jusqu'à 50 %. 

Ce modèle cloud natif tire parti d'Amazon Elastic Kubernetes Service (Amazon EKS) pour la gestion de Kubernetes. Le modèle met en œuvre les meilleures pratiques de sécurité grâce à des rôles Gestion des identités et des accès AWS (IAM) appropriés et à l'isolation du réseau. Cette solution est particulièrement utile pour les entreprises qui souhaitent rationaliser leurs opérations Kubernetes et améliorer leurs capacités de résolution des problèmes grâce à l'assistance de l'IA.

## Conditions préalables et limitations
<a name="implement-ai-powered-kubernetes-diagnostics-and-troubleshooting-with-k8sgpt-and-amazon-bedrock-integration-prereqs"></a>

**Conditions préalables**
+ Un actif Compte AWS avec les autorisations appropriées
+ AWS Command Line Interface (AWS CLI) [installé](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) et [configuré](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html)
+ Un cluster Amazon EKS
+ Accès au modèle Anthropic Claude 2 sur [Amazon Bedrock](https://docs.aws.amazon.com/bedrock/latest/userguide/model-access.html)
+ Un hôte bastion avec les paramètres de groupe de sécurité requis
+ [K8sGPT installé](https://docs.k8sgpt.ai/getting-started/installation/)

**Limites**
+ L'analyse K8sGpt est limitée par la taille de la fenêtre contextuelle du modèle Claude v2.
+ Les limites tarifaires de l'API Amazon Bedrock s'appliquent en fonction des quotas de votre compte.
+ Certains Services AWS ne sont pas disponibles du tout Régions AWS. Pour connaître la disponibilité par région, consultez la section [AWS Services par région](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/). Pour des points de terminaison spécifiques, consultez [Points de terminaison de service et quotas](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html), puis choisissez le lien correspondant au service.

**Versions du produit**
+ Amazon EKS [version 1.31 ou ultérieure](https://docs.aws.amazon.com/eks/latest/userguide/kubernetes-versions.html)
+ [Modèle Claude 2](https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html) sur Amazon Bedrock
+ [K8SGPT v0.4.2 ou version ultérieure](https://github.com/k8sgpt-ai/k8sgpt/releases)

## Architecture
<a name="implement-ai-powered-kubernetes-diagnostics-and-troubleshooting-with-k8sgpt-and-amazon-bedrock-integration-architecture"></a>

Le schéma suivant montre l'architecture des diagnostics Kubernetes basés sur l'IA à l'aide de K8sGPT intégré à Amazon Bedrock dans le. AWS Cloud

![\[Flux de travail pour les diagnostics Kubernetes à l'aide de K8sGPT intégré à Amazon Bedrock.\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/09bc08f6-e191-4cef-b26b-dcb6225b15cc/images/8789891d-4a90-44b0-a108-387f6d96496b.png)


L'architecture présente le flux de travail suivant :

1. Les développeurs accèdent à l'environnement via une connexion sécurisée à l'hôte Bastion. Cette EC2 instance Amazon sert de point d'entrée sécurisé et contient l'installation de l'interface de ligne de commande (CLI) K8SGPT et les configurations requises.

1. L'hôte Bastion, configuré avec des rôles IAM spécifiques, établit des connexions sécurisées au cluster Amazon EKS et aux points de terminaison Amazon Bedrock. K8sGPT est installé et configuré sur l'hôte Bastion pour effectuer une analyse du cluster Kubernetes.

1. Amazon EKS gère le plan de contrôle Kubernetes et les nœuds de travail, fournissant ainsi l'environnement cible pour l'analyse K8sGPT. Le service s'exécute sur plusieurs zones de disponibilité au sein d'un cloud privé virtuel (VPC), ce qui contribue à garantir une disponibilité et une résilience élevées. Amazon EKS fournit des données opérationnelles via l'API Kubernetes, ce qui permet une analyse complète des clusters.

1. K8sGPT envoie des données d'analyse à Amazon Bedrock, qui fournit le modèle de base Claude v2 (FM) pour le traitement du langage naturel. Le service traite l'analyse K8sGPT pour générer des explications lisibles par l'homme et propose des suggestions de correction détaillées en fonction des problèmes identifiés. Amazon Bedrock fonctionne comme un service d'IA sans serveur offrant une disponibilité et une évolutivité élevées.

**Note**  
Tout au long de ce flux de travail, IAM contrôle l'accès entre les composants par le biais de rôles et de politiques, en gérant l'authentification pour les interactions entre l'hôte Bastion, Amazon EKS et Amazon Bedrock. L'IAM met en œuvre le principe du moindre privilège et permet une communication interservices sécurisée dans l'ensemble de l'architecture.

**Automatisation et mise à l'échelle**

Les opérations K8sGPT peuvent être automatisées et mises à l'échelle sur plusieurs clusters Amazon EKS à l'aide de divers outils et outils. Services AWS Cette solution prend en charge l'intégration continue et l'intégration du déploiement continu (CI/CD) à l'aide de [Jenkins](https://www.jenkins.io/), d'[GitHub Actions](https://docs.github.com/en/actions/get-started/understand-github-actions) ou [AWS CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html)pour une analyse planifiée. L'opérateur K8sGPT permet une surveillance continue au sein du cluster grâce à des fonctionnalités automatisées de détection des problèmes et de création de rapports. Pour les déploiements à l'échelle de l'entreprise, vous pouvez utiliser [Amazon EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-what-is.html) pour planifier des scans et déclencher des réponses automatisées à l'aide de scripts personnalisés. AWS L'intégration du SDK permet un contrôle programmatique sur un large parc de clusters.

## Outils
<a name="implement-ai-powered-kubernetes-diagnostics-and-troubleshooting-with-k8sgpt-and-amazon-bedrock-integration-tools"></a>

**Services AWS**
+ [AWS Command Line Interface (AWS CLI)](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html) est un outil open source qui vous permet d'interagir Services AWS par le biais de commandes dans votre interface de ligne de commande.
+ [Amazon Elastic Kubernetes Service (Amazon](https://docs.aws.amazon.com/eks/latest/userguide/getting-started.html) EKS) vous permet d'exécuter AWS Kubernetes sans avoir à installer ou à gérer votre propre plan de contrôle ou vos propres nœuds Kubernetes.
+ [Gestion des identités et des accès AWS (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) vous aide à gérer en toute sécurité l'accès à vos AWS ressources en contrôlant qui est authentifié et autorisé à les utiliser.

**Autres outils**
+ [K8sGPT](https://k8sgpt.ai/) est un outil open source basé sur l'IA qui transforme la gestion de Kubernetes. Il agit en tant qu'expert en ingénierie de fiabilité des sites virtuels (SRE), analysant, diagnostiquant et résolvant automatiquement les problèmes liés au cluster Kubernetes. Les administrateurs peuvent interagir avec K8sGPT en langage naturel et obtenir des informations claires et exploitables sur l'état du cluster, les pannes de pods et les défaillances de service. Les analyseurs intégrés de l'outil détectent un large éventail de problèmes, des composants mal configurés aux contraintes de ressources, et fournissent des easy-to-understand explications et des solutions.

## Bonnes pratiques
<a name="implement-ai-powered-kubernetes-diagnostics-and-troubleshooting-with-k8sgpt-and-amazon-bedrock-integration-best-practices"></a>
+ Mettez en œuvre des contrôles d'accès sécurisés en utilisant AWS Systems Manager Session Manager for [Bastion Host Access](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/access-a-bastion-host-by-using-session-manager-and-amazon-ec2-instance-connect.html).
+ Assurez-vous que l'authentification K8sGPT utilise des rôles IAM dédiés dotés des autorisations de moindre privilège pour les interactions avec Amazon Bedrock et Amazon EKS. Pour plus d'informations, consultez les sections [Accorder le moindre privilège](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#grant-least-priv) et [Bonnes pratiques en matière de sécurité](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) dans la documentation IAM.
+ Configurez le [balisage des ressources](https://docs.aws.amazon.com/whitepapers/latest/tagging-best-practices/what-are-tags.html), activez la CloudWatch [journalisation Amazon pour les pistes d'audit](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/monitor-cloudtrail-log-files-with-cloudwatch-logs.html) et implémentez l'[anonymisation des données](https://aws.amazon.com/solutions/guidance/data-anonymization-on-aws/) pour les informations sensibles. 
+ Maintenez des sauvegardes régulières des configurations K8sGPT tout en configurant des programmes de numérisation automatisés pendant les heures creuses afin de minimiser l'impact opérationnel.

## Épopées
<a name="implement-ai-powered-kubernetes-diagnostics-and-troubleshooting-with-k8sgpt-and-amazon-bedrock-integration-epics"></a>

### Ajoutez Amazon Bedrock à la liste des fournisseurs de backend AI.
<a name="add-br-to-ai-backend-provider-list"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Définissez Amazon Bedrock comme fournisseur de backend AI pour K8sGPT. | Pour définir Amazon Bedrock comme fournisseur de [backend](https://docs.k8sgpt.ai/reference/providers/backend/) AI r pour K8sGPT, utilisez la commande suivante : AWS CLI <pre>k8sgpt auth add -b amazonbedrock \<br /> -r us-west-2 \<br /> -m anthropic.claude-v2 \<br /> -n endpoint-name <br /></pre>L'exemple de commande utilise `us-west-2` pour Région AWS. Toutefois, vous pouvez sélectionner une autre région, à condition que le cluster Amazon EKS et le modèle Amazon Bedrock correspondant soient disponibles et activés dans cette région sélectionnée.Pour vérifier qu'il `amazonbedrock` est ajouté à la liste des fournisseurs de backend AI et qu'il est en bon `Active` état, exécutez la commande suivante :<pre>k8sgpt auth list</pre>Voici un exemple du résultat attendu de cette commande :<pre>Default: <br />> openai<br />Active: <br />> amazonbedrock<br />Unused: <br />> openai<br />> localai<br />> ollama<br />> azureopenai<br />> cohere<br />> amazonsagemaker<br />> google<br />> noopai<br />> huggingface<br />> googlevertexai<br />> oci<br />> customrest<br />> ibmwatsonxai</pre> | AWS DevOps | 

### Analyser les ressources à l'aide d'un filtre
<a name="scan-resources-using-a-filter"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Consultez la liste des filtres disponibles. | Pour voir la liste de tous les filtres disponibles, utilisez la AWS CLI commande suivante :<pre>k8sgpt filters list</pre>Voici un exemple du résultat attendu de cette commande :<pre>Active: <br />> Deployment<br />> ReplicaSet<br />> PersistentVolumeClaim<br />> Service<br />> CronJob<br />> Node<br />> MutatingWebhookConfiguration<br />> Pod<br />> Ingress<br />> StatefulSet<br />> ValidatingWebhookConfiguration</pre> | AWS DevOps | 
| Scannez un pod dans un espace de noms spécifique à l'aide d'un filtre. | Cette commande est utile pour le débogage ciblé de problèmes de pod spécifiques au sein d'un cluster Kubernetes, en utilisant les fonctionnalités d'Amazon Bedrock AI pour analyser et expliquer les problèmes détectés.Pour scanner un pod dans un espace de noms spécifique à l'aide d'un filtre, utilisez la AWS CLI commande suivante :<pre>k8sgpt analyze --backend amazonbedrock --explain --filter Pod -n default</pre>Voici un exemple du résultat attendu de cette commande :<pre>100% |████████████████████████████████████████████████████████| (1/1, 645 it/s)        <br />AI Provider: amazonbedrock<br /><br />0: Pod default/crashme()<br />- Error: the last termination reason is Error container=crashme pod=crashme<br />Error: The pod named crashme terminated because the container named crashme crashed.<br />Solution: Check logs for crashme pod to identify reason for crash. Restart pod or redeploy application to resolve crash.</pre> | AWS DevOps | 
| Analysez un déploiement dans un espace de noms spécifique à l'aide d'un filtre. | Cette commande est utile pour identifier et résoudre les problèmes spécifiques au déploiement, en particulier lorsque l'état réel ne correspond pas à l'état souhaité.Pour analyser un déploiement dans un espace de noms spécifique à l'aide d'un filtre, utilisez la AWS CLI commande suivante :<pre>k8sgpt analyze --backend amazonbedrock --explain --filter Deployment -n default</pre>Voici un exemple du résultat attendu de cette commande :<pre>100% |██████████████████████████████████████████████████████████| (1/1, 10 it/min)        <br />AI Provider: amazonbedrock<br /><br />0: Deployment default/nginx()<br />- Error: Deployment default/nginx has 1 replicas but 2 are available<br /> Error: The Deployment named nginx in the default namespace has 1 replica specified but 2 pod replicas are running.<br />Solution: Check if any other controllers like ReplicaSet or StatefulSet have created extra pods. Delete extra pods or adjust replica count to match available pods.</pre> | AWS DevOps | 
| Scannez un nœud dans un espace de noms spécifique à l'aide d'un filtre. | Pour scanner un nœud dans un espace de noms spécifique à l'aide d'un filtre, utilisez la AWS CLI commande suivante :<pre>k8sgpt analyze --backend amazonbedrock --explain --filter Node -n default </pre>Voici un exemple du résultat attendu de cette commande :<pre>AI Provider: amazonbedrock<br /><br />No problems detected</pre> | AWS DevOps | 

### Analyser les résultats détaillés
<a name="analyze-detailed-outputs"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Obtenez des résultats détaillés. |  Pour obtenir des résultats détaillés, utilisez la AWS CLI commande suivante :<pre>k8sgpt analyze --backend amazonbedrock --explain --ouput json</pre>Voici un exemple du résultat attendu de cette commande :<pre>{<br />  "provider": "amazonbedrock",<br />  "errors": null,<br />  "status": "ProblemDetected",<br />  "problems": 1,<br />  "results": [<br />    {<br />      "kind": "Pod",<br />      "name": "default/crashme",<br />      "error": [<br />        {<br />          "Text": "the last termination reason is Error container=crashme pod=crashme",<br />          "KubernetesDoc": "",<br />          "Sensitive": []<br />        }<br />      ],<br />      "details": " Error: The pod named crashme terminated because the container named crashme crashed.\nSolution: Check logs for crashme pod to identify reason for crash. Restart pod or redeploy application to resolve crash.",<br />      "parentObject": ""<br />    }<br />  ]<br />}</pre> | AWS DevOps | 
| Vérifiez les pods problématiques. | Pour vérifier la présence de pods problématiques spécifiques, utilisez la AWS CLI commande suivante :<pre>kubectl get pods --all-namespaces | grep -v Running</pre>Voici un exemple du résultat attendu de cette commande :<pre>NAMESPACE    NAME      READY    STATUS          RESTARTS      AGE                                       <br />default     crashme     0/1   CrashLoopBackOff   260(91s ago)   21h</pre> | AWS DevOps | 
| Obtenez des informations spécifiques aux applications. | Cette commande est particulièrement utile lorsque :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/implement-ai-powered-kubernetes-diagnostics-and-troubleshooting-with-k8sgpt-and-amazon-bedrock-integration.html)Pour obtenir des informations spécifiques à l'application, utilisez la commande suivante :<pre>k8sgpt analyze --backend amazonbedrock --explain -L app=nginx -n default</pre>Voici un exemple du résultat attendu de cette commande :<pre>AI Provider: amazonbedrock<br /><br />No problems detected</pre> |  | 

## Ressources connexes
<a name="implement-ai-powered-kubernetes-diagnostics-and-troubleshooting-with-k8sgpt-and-amazon-bedrock-integration-resources"></a>

**Blogues AWS**
+ [Automatisez le dépannage d'Amazon EKS à l'aide d'un flux de travail Amazon Bedrock agentic](https://aws.amazon.com/blogs/machine-learning/automate-amazon-eks-troubleshooting-using-an-amazon-bedrock-agentic-workflow/)
+ [Utilisez K8sGPT et Amazon Bedrock pour simplifier la maintenance des clusters Kubernetes](https://aws.amazon.com/blogs/machine-learning/use-k8sgpt-and-amazon-bedrock-for-simplified-kubernetes-cluster-maintenance/)

**AWS documentation**
+ AWS CLI [commandes : [create-cluster et describe-cluster](https://docs.aws.amazon.com/cli/latest/reference/eks/create-cluster.html)](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/eks/describe-cluster.html)
+ [Commencez à utiliser Amazon EKS](https://docs.aws.amazon.com/eks/latest/userguide/getting-started.html) (documentation Amazon EKS)
+ [Bonnes pratiques de sécurité dans l'IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) (documentation IAM)

**Autres ressources**
+ [K8SGPT](https://k8sgpt.ai/)