

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><br />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.<br />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><br />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><br />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.<br />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><br />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.<br />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><br />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><br />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><br />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><br />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:+ Vuoi concentrarti su un'applicazione specifica del tuo cluster.<br />+ Utilizzi le etichette in modo efficace per organizzare le tue risorse Kubernetes.<br />+ È necessario verificare rapidamente lo stato di un particolare componente dell'applicazione.<br />Per ottenere informazioni specifiche sull'applicazione, utilizzate il seguente comando:<pre>k8sgpt analyze --backend amazonbedrock --explain -L app=nginx -n default</pre><br />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/)