

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Implementación de diagnósticos y solución de problemas de Kubernetes con tecnología de IA con la integración de K8sGPT y Amazon Bedrock
<a name="implement-ai-powered-kubernetes-diagnostics-and-troubleshooting-with-k8sgpt-and-amazon-bedrock-integration"></a>

*Ishwar Chauthaiwale, Muskan y Prafful Gupta, Amazon Web Services*

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

Este patrón demuestra cómo implementar diagnósticos y solución de problemas de Kubernetes con tecnología de IA mediante la integración de K8sGPT con el modelo Anthropic Claude v2 disponible en Amazon Bedrock. La solución proporciona un análisis en lenguaje natural y pasos para solucionar los problemas de los clústeres de Kubernetes mediante una arquitectura de host bastión segura. Al combinar la experiencia de K8sGPT en Kubernetes con las capacidades lingüísticas avanzadas de Amazon Bedrock DevOps , los equipos pueden identificar y resolver rápidamente los problemas de los clústeres. Con estas funcionalidades, es posible reducir el tiempo medio de resolución (MTTR) hasta en un 50 %. 

Este patrón nativo en la nube utiliza Amazon Elastic Kubernetes Service (Amazon EKS) para la administración de Kubernetes. El patrón implementa las mejores prácticas de seguridad mediante las funciones adecuadas AWS Identity and Access Management (de IAM) y el aislamiento de la red. Esta solución es especialmente valiosa para las organizaciones que desean optimizar sus operaciones de Kubernetes y mejorar sus capacidades de solución de problemas con la ayuda de la IA.

## Requisitos previos y limitaciones
<a name="implement-ai-powered-kubernetes-diagnostics-and-troubleshooting-with-k8sgpt-and-amazon-bedrock-integration-prereqs"></a>

**Requisitos previos **
+ Un activo Cuenta de AWS con los permisos adecuados
+ AWS Command Line Interface (AWS CLI) [instalado](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) y [configurado](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html)
+ Un clúster de Amazon EKS
+ Acceso al modelo Anthropic Claude 2 en [Amazon Bedrock](https://docs.aws.amazon.com/bedrock/latest/userguide/model-access.html)
+ Un host bastión con la configuración de grupo de seguridad requerida
+ K8sGPT [instalado](https://docs.k8sgpt.ai/getting-started/installation/)

**Limitaciones**
+ El análisis de K8sGPT está limitado por el tamaño de la ventana de contexto del modelo Claude v2.
+ Los límites de frecuencia de la API de Amazon Bedrock se aplican en función de las cuotas de su cuenta.
+ Algunas Servicios de AWS no están disponibles en todas Regiones de AWS. Para obtener información sobre la disponibilidad en regiones, consulte [AWS Services by Region](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/). Para ver los puntos de conexión específicos, consulte [Service endpoints and quotas](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html) y elija el enlace del servicio.

**Versiones de producto**
+ Amazon EKS [versión 1.31 o posteriores](https://docs.aws.amazon.com/eks/latest/userguide/kubernetes-versions.html)
+ [Modelo Claude 2](https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html) en Amazon Bedrock
+ K8sGPT [v0.4.2 o posteriores](https://github.com/k8sgpt-ai/k8sgpt/releases)

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

En el siguiente diagrama se muestra la arquitectura para el diagnóstico de Kubernetes con tecnología de IA mediante K8sGPT integrado con Amazon Bedrock en la Nube de AWS.

![\[Flujo de trabajo para el diagnóstico de Kubernetes mediante K8sGPT integrado con Amazon Bedrock.\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/09bc08f6-e191-4cef-b26b-dcb6225b15cc/images/8789891d-4a90-44b0-a108-387f6d96496b.png)


En la arquitectura se muestra el flujo de trabajo siguiente:

1. Los desarrolladores acceden al entorno a través de una conexión segura al host bastión. Esta EC2 instancia de Amazon sirve como punto de entrada seguro y contiene la instalación de la interfaz de línea de comandos (CLI) K8sgpt y las configuraciones necesarias.

1. El host bastión, configurado con roles de IAM específicos, establece conexiones seguras tanto con el clúster de Amazon EKS como con los puntos de conexión de Amazon Bedrock. K8sGPT se instala y configura en el host bastión para analizar los clústeres de Kubernetes.

1. Amazon EKS administra el plano de control de Kubernetes y los nodos de trabajo, lo que proporciona el entorno de destino para el análisis de K8sGPT. El servicio se ejecuta en varias zonas de disponibilidad dentro de una nube privada virtual (VPC), lo que ayuda a proporcionar una alta disponibilidad y resiliencia. Amazon EKS suministra datos operativos a través de la API de Kubernetes, lo que permite un análisis integral de clústeres.

1. K8sGPT envía los datos de análisis a Amazon Bedrock, que proporciona el modelo fundacional (FM) Claude v2 para el procesamiento de lenguaje natural. El servicio procesa el análisis del K8sGPT para generar explicaciones legibles para los humanos y ofrece sugerencias de corrección detalladas basadas en los problemas identificados. Amazon Bedrock funciona como un servicio de IA sin servidor con alta disponibilidad y escalabilidad.

**nota**  
A lo largo de este flujo de trabajo, IAM controla el acceso entre los componentes mediante roles y políticas, y administra la autenticación de las interacciones entre el host bastión, Amazon EKS y Amazon Bedrock. IAM implementa el principio de privilegio mínimo y permite una comunicación segura entre servicios en toda la arquitectura.

**Automatización y escala**

Las operaciones de K8sgpt pueden automatizarse y escalarse en varios clústeres de Amazon EKS a través de diversas herramientas. Servicios de AWS [Esta solución admite la integración continua y la integración del despliegue continuo (CI/CD) mediante [Jenkins](https://www.jenkins.io/), GitHub Actions o para análisis programados. [AWS CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html)](https://docs.github.com/en/actions/get-started/understand-github-actions) El operador K8sGPT permite la supervisión continua en el clúster con funcionalidades automatizadas de detección de problemas y generación de informes. Para despliegues a escala empresarial, puedes usar [Amazon EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-what-is.html) para programar escaneos y activar respuestas automatizadas con scripts personalizados. AWS La integración del SDK permite el control programático en una gran flota de clústeres.

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

**Servicios de AWS**
+ [AWS Command Line Interface (AWS CLI)](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html) es una herramienta de código abierto que le ayuda a interactuar Servicios de AWS mediante los comandos de su consola de línea de comandos.
+ [Amazon Elastic Kubernetes Service (Amazon](https://docs.aws.amazon.com/eks/latest/userguide/getting-started.html) EKS) le ayuda a ejecutar AWS Kubernetes sin necesidad de instalar ni mantener su propio plano de control o nodos de Kubernetes.
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) le ayuda a administrar de forma segura el acceso a sus AWS recursos al controlar quién está autenticado y autorizado a usarlos.

**Otras herramientas**
+ [K8sGPT](https://k8sgpt.ai/) es una herramienta de código abierto con tecnología de IA que transforma la administración de Kubernetes. Actúa como experto virtual en ingeniería de confiabilidad del sitio (SRE) y analiza, diagnostica y soluciona automáticamente los problemas del clúster de Kubernetes. Los administradores pueden interactuar con K8sGPT mediante un lenguaje natural y obtener información clara y práctica sobre el estado del clúster, los fallos de los pods y los fallos del servicio. Los analizadores integrados en la herramienta detectan una amplia gama de problemas, desde componentes mal configurados hasta limitaciones de recursos, y ofrecen easy-to-understand explicaciones y soluciones.

## Prácticas recomendadas
<a name="implement-ai-powered-kubernetes-diagnostics-and-troubleshooting-with-k8sgpt-and-amazon-bedrock-integration-best-practices"></a>
+ Implemente controles de acceso seguros mediante el acceso al AWS Systems Manager Session Manager host [del bastión.](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/access-a-bastion-host-by-using-session-manager-and-amazon-ec2-instance-connect.html)
+ Asegúrese de que la autenticación de K8sGPT utilice roles de IAM dedicados con permisos de privilegio mínimo para las interacciones de Amazon Bedrock y Amazon EKS. Para obtener más información, consulte [Otorgar privilegio mínimo](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#grant-least-priv) y [Prácticas recomendadas de seguridad](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) en la documentación de IAM.
+ Configure el [etiquetado de recursos](https://docs.aws.amazon.com/whitepapers/latest/tagging-best-practices/what-are-tags.html), habilite el CloudWatch [registro de Amazon para las pistas de auditoría](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/monitor-cloudtrail-log-files-with-cloudwatch-logs.html) e implemente la [anonimización de los datos](https://aws.amazon.com/solutions/guidance/data-anonymization-on-aws/) para la información confidencial. 
+ Haga copias de seguridad periódicas de las configuraciones de K8sGPT y, al mismo tiempo, establezca programas de análisis automatizados durante las horas de menor actividad para minimizar el impacto operativo.

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

### Cómo agregar Amazon Bedrock a la lista de proveedores de backend de IA
<a name="add-br-to-ai-backend-provider-list"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Configurar Amazon Bedrock como proveedor de backend de IA para K8sGPT. | Para configurar Amazon Bedrock como el proveedor de [backend de la IA r para](https://docs.k8sgpt.ai/reference/providers/backend/) K8sgpt, utilice el siguiente 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>En el comando de ejemplo se utiliza `us-west-2` para la Región de AWS. Sin embargo, puede seleccionar otra región, siempre que tanto el clúster de Amazon EKS como el modelo de Amazon Bedrock correspondiente estén disponibles y habilitados en la región seleccionada.Para comprobar si `amazonbedrock` se ha agregado a la lista de proveedores de backend de IA y si se encuentra en estado `Active`, ejecute el siguiente comando:<pre>k8sgpt auth list</pre>A continuación, se muestra un ejemplo de la salida esperada de este 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 | 

### Analizar los recursos mediante un filtro
<a name="scan-resources-using-a-filter"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Ver una lista de filtros disponibles. | Para ver la lista de todos los filtros disponibles, utilice el siguiente AWS CLI comando:<pre>k8sgpt filters list</pre>A continuación, se muestra un ejemplo de la salida esperada de este 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 | 
| Analizar un pod en un espacio de nombres específico mediante un filtro. | Este comando es útil para la depuración selectiva de problemas específicos de los pods dentro de un clúster de Kubernetes, utilizando las funcionalidades de IA de Amazon Bedrock para analizar y explicar los problemas que encuentra.Para escanear un pod en un espacio de nombres específico mediante un filtro, utilice el siguiente comando: AWS CLI <pre>k8sgpt analyze --backend amazonbedrock --explain --filter Pod -n default</pre>A continuación, se muestra un ejemplo de la salida esperada de este 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 | 
| Analizar una implementación en un espacio de nombres específico mediante un filtro. | Este comando es útil para identificar y solucionar problemas específicos de la implementación, especialmente cuando el estado real no coincide con el estado deseado.Para escanear una implementación en un espacio de nombres específico mediante un filtro, utilice el siguiente comando: AWS CLI <pre>k8sgpt analyze --backend amazonbedrock --explain --filter Deployment -n default</pre>A continuación, se muestra un ejemplo de la salida esperada de este 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 | 
| Analizar un nodo en un espacio de nombres específico mediante un filtro. | Para escanear un nodo de un espacio de nombres específico mediante un filtro, utilice el siguiente comando: AWS CLI <pre>k8sgpt analyze --backend amazonbedrock --explain --filter Node -n default </pre>A continuación, se muestra un ejemplo de la salida esperada de este comando:<pre>AI Provider: amazonbedrock<br /><br />No problems detected</pre> | AWS DevOps | 

### Analizar las salidas detalladas
<a name="analyze-detailed-outputs"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Obtener salidas detalladas. |  Para obtener resultados detallados, utilice el siguiente AWS CLI comando:<pre>k8sgpt analyze --backend amazonbedrock --explain --ouput json</pre>A continuación, se muestra un ejemplo de la salida esperada de este 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 | 
| Comprobar los pods problemáticos. | Para comprobar si hay pods problemáticos específicos, usa el siguiente AWS CLI comando:<pre>kubectl get pods --all-namespaces | grep -v Running</pre>A continuación, se muestra un ejemplo de la salida esperada de este comando:<pre>NAMESPACE    NAME      READY    STATUS          RESTARTS      AGE                                       <br />default     crashme     0/1   CrashLoopBackOff   260(91s ago)   21h</pre> | AWS DevOps | 
| Obtener información específica de la aplicación. | Este comando resulta especialmente útil cuando:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/implement-ai-powered-kubernetes-diagnostics-and-troubleshooting-with-k8sgpt-and-amazon-bedrock-integration.html)Para obtener información específica de la aplicación, use el siguiente comando:<pre>k8sgpt analyze --backend amazonbedrock --explain -L app=nginx -n default</pre>A continuación, se muestra un ejemplo de la salida esperada de este comando:<pre>AI Provider: amazonbedrock<br /><br />No problems detected</pre> |  | 

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

**Blogs de AWS**
+ [Automate Amazon EKS troubleshooting using an Amazon Bedrock agentic workflow](https://aws.amazon.com/blogs/machine-learning/automate-amazon-eks-troubleshooting-using-an-amazon-bedrock-agentic-workflow/)
+ [Use K8sGPT and Amazon Bedrock for simplified Kubernetes cluster maintenance](https://aws.amazon.com/blogs/machine-learning/use-k8sgpt-and-amazon-bedrock-for-simplified-kubernetes-cluster-maintenance/)

**AWS documentación**
+ AWS CLI [comandos: [create-cluster y 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)
+ [Introducción a Amazon EKS](https://docs.aws.amazon.com/eks/latest/userguide/getting-started.html) (documentación de Amazon EKS)
+ [Prácticas recomendadas de seguridad en IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) (documentación de IAM)

**Otros recursos**
+ [K8sGPT](https://k8sgpt.ai/)