

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Implementa la diagnostica e la risoluzione dei problemi di Kubernetes basate sull'intelligenza artificiale con K8SGPT e l'integrazione con Amazon Bedrock
<a name="implement-ai-powered-kubernetes-diagnostics-and-troubleshooting-with-k8sgpt-and-amazon-bedrock-integration"></a>

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

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

Questo modello dimostra come implementare la diagnostica e la risoluzione dei problemi di Kubernetes basate sull'intelligenza artificiale integrando K8SGPT con il modello Anthropic Claude v2 disponibile su Amazon Bedrock. La soluzione fornisce analisi in linguaggio naturale e procedure di correzione per i problemi del cluster Kubernetes attraverso un'architettura host bastion sicura. Combinando l'esperienza di K8SGPT Kubernetes con le funzionalità linguistiche avanzate di Amazon Bedrock DevOps , i team possono identificare e risolvere rapidamente i problemi dei cluster. Con queste funzionalità, è possibile ridurre il tempo medio di risoluzione (MTTR) fino al 50%. 

Questo modello nativo del cloud sfrutta Amazon Elastic Kubernetes Service (Amazon EKS) per la gestione di Kubernetes. Il modello implementa le migliori pratiche di sicurezza attraverso ruoli (IAM) appropriati e isolamento della rete. AWS Identity and Access Management Questa soluzione è particolarmente utile per le organizzazioni che desiderano semplificare le operazioni Kubernetes e migliorare le capacità di risoluzione dei problemi con l'assistenza dell'IA.

## Prerequisiti e limitazioni
<a name="implement-ai-powered-kubernetes-diagnostics-and-troubleshooting-with-k8sgpt-and-amazon-bedrock-integration-prereqs"></a>

**Prerequisiti**
+ Un attivo con le autorizzazioni appropriate Account AWS 
+ AWS Command Line Interface [(AWS CLI) [installato e configurato](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html)
+ Cluster Amazon EKS
+ [Accesso al modello Anthropic Claude 2 su Amazon Bedrock](https://docs.aws.amazon.com/bedrock/latest/userguide/model-access.html)
+ Un host bastion con le impostazioni richieste per i gruppi di sicurezza
+ [K8sgpt installato](https://docs.k8sgpt.ai/getting-started/installation/)

**Limitazioni**
+ L'analisi K8sgpt è limitata dalla dimensione della finestra di contesto del modello Claude v2.
+ I limiti di tariffa dell'API Amazon Bedrock si applicano in base alle quote del tuo account.
+ Alcuni Servizi AWS non sono disponibili in tutti. Regioni AWS Per la disponibilità regionale, vedi [AWS Servizi per regione](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/). Per endpoint specifici, consulta [Endpoints and quotas del servizio](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html) e scegli il link relativo al servizio.

**Versioni del prodotto**
+ Amazon EKS [versione 1.31 o successiva](https://docs.aws.amazon.com/eks/latest/userguide/kubernetes-versions.html)
+ [Modello Claude 2](https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html) su Amazon Bedrock
+ [K8SGpt v0.4.2 o versione successiva](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>

Il diagramma seguente mostra l'architettura per la diagnostica Kubernetes basata sull'intelligenza artificiale che utilizza K8sgPT integrato con Amazon Bedrock in. Cloud AWS

![\[Flusso di lavoro per la diagnostica Kubernetes utilizzando K8SGpt integrato con Amazon Bedrock.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/09bc08f6-e191-4cef-b26b-dcb6225b15cc/images/8789891d-4a90-44b0-a108-387f6d96496b.png)


L'architettura mostra il seguente flusso di lavoro:

1. Gli sviluppatori accedono all'ambiente tramite una connessione sicura all'host bastion. Questa EC2 istanza Amazon funge da punto di ingresso sicuro e contiene l'installazione dell'interfaccia a riga di comando (CLI) K8SGpt e le configurazioni richieste.

1. L'host bastion, configurato con ruoli IAM specifici, stabilisce connessioni sicure sia al cluster Amazon EKS che agli endpoint Amazon Bedrock. K8sgpt è installato e configurato sull'host bastion per eseguire l'analisi del cluster Kubernetes.

1. Amazon EKS gestisce il piano di controllo Kubernetes e i nodi di lavoro, fornendo l'ambiente di destinazione per l'analisi K8sgPT. Il servizio funziona su più zone di disponibilità all'interno di un cloud privato virtuale (VPC), il che aiuta a fornire disponibilità e resilienza elevate. Amazon EKS fornisce dati operativi tramite l'API Kubernetes, che consente un'analisi completa dei cluster.

1. K8sgPT invia i dati di analisi ad Amazon Bedrock, che fornisce il Claude v2 Foundation Model (FM) per l'elaborazione del linguaggio naturale. Il servizio elabora l'analisi K8sgpt per generare spiegazioni leggibili dall'uomo e offre suggerimenti di correzione dettagliati in base ai problemi identificati. Amazon Bedrock funziona come un servizio di intelligenza artificiale senza server con disponibilità e scalabilità elevate.

**Nota**  
In tutto questo flusso di lavoro, IAM controlla l'accesso tra i componenti tramite ruoli e policy, gestendo l'autenticazione per le interazioni tra bastion host, Amazon EKS e Amazon Bedrock. IAM implementa il principio del privilegio minimo e consente una comunicazione sicura tra servizi in tutta l'architettura.

**Automazione e scalabilità**

Le operazioni K8sgPT possono essere automatizzate e scalate su più cluster Amazon EKS tramite vari strumenti. Servizi AWS [Questa soluzione supporta l'integrazione continua e l'integrazione della distribuzione continua (CI/CD) utilizzando [Jenkins](https://www.jenkins.io/), Actions o per l'analisi pianificata. GitHub [AWS CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html)](https://docs.github.com/en/actions/get-started/understand-github-actions) L'operatore K8SGPT consente il monitoraggio continuo all'interno del cluster con funzionalità automatiche di rilevamento e segnalazione dei problemi. Per le implementazioni su scala aziendale, puoi utilizzare [Amazon EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-what-is.html) per pianificare scansioni e attivare risposte automatiche con script personalizzati. AWS L'integrazione SDK consente il controllo programmatico su un'ampia flotta di cluster.

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

**Servizi AWS**
+ [AWS Command Line Interface (AWS CLI)](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html) è uno strumento open source che consente di interagire Servizi AWS tramite comandi nella shell della riga di comando.
+ [Amazon Elastic Kubernetes Service (Amazon](https://docs.aws.amazon.com/eks/latest/userguide/getting-started.html) EKS) ti aiuta a eseguire AWS Kubernetes senza dover installare o gestire il tuo piano di controllo o i tuoi nodi Kubernetes.
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) ti aiuta a gestire in modo sicuro l'accesso alle tue AWS risorse controllando chi è autenticato e autorizzato a utilizzarle.

**Altri strumenti**
+ [K8SGPT](https://k8sgpt.ai/) è uno strumento open source basato sull'intelligenza artificiale che trasforma la gestione di Kubernetes. Agisce come esperto di Virtual Site Reliability Engineering (SRE), scansionando, diagnosticando e risolvendo automaticamente i problemi del cluster Kubernetes. Gli amministratori possono interagire con K8SGPT utilizzando il linguaggio naturale e ottenere informazioni chiare e fruibili sullo stato del cluster, sugli arresti anomali dei pod e sugli errori del servizio. Gli analizzatori integrati dello strumento rilevano un'ampia gamma di problemi, dai componenti mal configurati ai vincoli di risorse, e forniscono spiegazioni e soluzioni. easy-to-understand

## Best practice
<a name="implement-ai-powered-kubernetes-diagnostics-and-troubleshooting-with-k8sgpt-and-amazon-bedrock-integration-best-practices"></a>
+ [Implementa controlli di accesso sicuri utilizzando for bastion host access. AWS Systems Manager Session Manager](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/access-a-bastion-host-by-using-session-manager-and-amazon-ec2-instance-connect.html)
+ Assicurati che l'autenticazione K8sgpt utilizzi ruoli IAM dedicati con autorizzazioni con privilegi minimi per le interazioni tra Amazon Bedrock e Amazon EKS. Per ulteriori informazioni, consulta le best practice relative alla [concessione dei privilegi minimi](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#grant-least-priv) e alla [sicurezza](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) nella documentazione IAM.
+ Configura il [tagging delle risorse](https://docs.aws.amazon.com/whitepapers/latest/tagging-best-practices/what-are-tags.html), abilita la CloudWatch [registrazione di Amazon per gli audit trail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/monitor-cloudtrail-log-files-with-cloudwatch-logs.html) e implementa l'[anonimizzazione dei dati](https://aws.amazon.com/solutions/guidance/data-anonymization-on-aws/) per le informazioni sensibili. 
+ Mantieni backup regolari delle configurazioni K8SGPT mentre imposta pianificazioni di scansione automatizzate durante le ore non di punta per ridurre al minimo l'impatto operativo.

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

### Aggiungi Amazon Bedrock all'elenco dei provider di backend AI.
<a name="add-br-to-ai-backend-provider-list"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Imposta Amazon Bedrock come provider di backend AI per K8sgPT. | Per impostare Amazon Bedrock come fornitore di [backend AI](https://docs.k8sgpt.ai/reference/providers/backend/) r per K8sgpt, usa il seguente comando: AWS CLI <pre>k8sgpt auth add -b amazonbedrock \<br /> -r us-west-2 \<br /> -m anthropic.claude-v2 \<br /> -n endpoint-name <br /></pre>Il comando di esempio utilizza per. `us-west-2` Regione AWS Tuttavia, puoi selezionare un'altra regione, a condizione che sia il cluster Amazon EKS che il modello Amazon Bedrock corrispondente siano disponibili e abilitati nella regione selezionata.Per verificare che `amazonbedrock` sia stato aggiunto all'elenco dei provider di backend AI e sia nello `Active` stato, esegui il comando seguente:<pre>k8sgpt auth list</pre>Di seguito è riportato un esempio dell'output previsto di questo comando:<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 | 

### Scansiona le risorse utilizzando un filtro
<a name="scan-resources-using-a-filter"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Visualizza un elenco di filtri disponibili. | Per visualizzare l'elenco di tutti i filtri disponibili, usa il seguente AWS CLI comando:<pre>k8sgpt filters list</pre>Di seguito è riportato un esempio dell'output previsto di questo comando:<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 | 
| Scansiona un pod in uno spazio dei nomi specifico utilizzando un filtro. | Questo comando è utile per il debug mirato di problemi specifici dei pod all'interno di un cluster Kubernetes, utilizzando le funzionalità AI di Amazon Bedrock per analizzare e spiegare i problemi rilevati.Per scansionare un pod in uno spazio dei nomi specifico utilizzando un filtro, usa il seguente comando: AWS CLI <pre>k8sgpt analyze --backend amazonbedrock --explain --filter Pod -n default</pre>Di seguito è riportato un esempio dell'output previsto di questo comando:<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 | 
| Scansiona una distribuzione in uno spazio dei nomi specifico utilizzando un filtro. | Questo comando è utile per identificare e risolvere problemi specifici della distribuzione, in particolare quando lo stato effettivo non corrisponde allo stato desiderato.Per eseguire la scansione di una distribuzione in uno spazio dei nomi specifico utilizzando un filtro, utilizzare il comando seguente: AWS CLI <pre>k8sgpt analyze --backend amazonbedrock --explain --filter Deployment -n default</pre>Di seguito è riportato un esempio dell'output previsto di questo comando:<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 | 
| Scansiona un nodo in uno spazio dei nomi specifico utilizzando un filtro. | Per eseguire la scansione di un nodo in uno spazio dei nomi specifico utilizzando un filtro, utilizzate il seguente comando: AWS CLI <pre>k8sgpt analyze --backend amazonbedrock --explain --filter Node -n default </pre>Di seguito è riportato un esempio dell'output previsto di questo comando:<pre>AI Provider: amazonbedrock<br /><br />No problems detected</pre> | AWS DevOps | 

### Analizza gli output dettagliati
<a name="analyze-detailed-outputs"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Ottieni risultati dettagliati. |  Per ottenere risultati dettagliati, usa il seguente comando: AWS CLI <pre>k8sgpt analyze --backend amazonbedrock --explain --ouput json</pre>Di seguito è riportato un esempio dell'output previsto di questo comando:<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 | 
| Controlla i pod problematici. | Per verificare la presenza di pod problematici specifici, utilizzate il seguente comando: AWS CLI <pre>kubectl get pods --all-namespaces | grep -v Running</pre>Di seguito è riportato un esempio dell'output previsto di questo comando:<pre>NAMESPACE    NAME      READY    STATUS          RESTARTS      AGE                                       <br />default     crashme     0/1   CrashLoopBackOff   260(91s ago)   21h</pre> | AWS DevOps | 
| Ottieni approfondimenti specifici per le applicazioni. | Questo comando è particolarmente utile quando:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/implement-ai-powered-kubernetes-diagnostics-and-troubleshooting-with-k8sgpt-and-amazon-bedrock-integration.html)Per ottenere informazioni specifiche sull'applicazione, utilizzate il seguente comando:<pre>k8sgpt analyze --backend amazonbedrock --explain -L app=nginx -n default</pre>Di seguito è riportato un esempio dell'output previsto di questo comando:<pre>AI Provider: amazonbedrock<br /><br />No problems detected</pre> |  | 

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

**Blog AWS**
+ [Automatizza la risoluzione dei problemi di Amazon EKS utilizzando un flusso di lavoro agentico Amazon Bedrock](https://aws.amazon.com/blogs/machine-learning/automate-amazon-eks-troubleshooting-using-an-amazon-bedrock-agentic-workflow/)
+ [Usa K8sgPT e Amazon Bedrock per la manutenzione semplificata del cluster Kubernetes](https://aws.amazon.com/blogs/machine-learning/use-k8sgpt-and-amazon-bedrock-for-simplified-kubernetes-cluster-maintenance/)

**AWS documentazione**
+ AWS CLI [comandi: [create-cluster e 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)
+ [Inizia a usare Amazon EKS](https://docs.aws.amazon.com/eks/latest/userguide/getting-started.html) (documentazione Amazon EKS)
+ [Best practice di sicurezza in IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) (documentazione IAM)

**Altre risorse**
+ [K8sGpt](https://k8sgpt.ai/)