

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Implementação de diagnósticos e solução de problemas com base em IA no Kubernetes usando a integração do K8sGPT e do 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*

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

Este padrão demonstra como implementar diagnósticos e solução de problemas com base em IA no Kubernetes, integrando o K8sGPT ao modelo Claude v2, da Anthropic, disponível no Amazon Bedrock. A solução fornece análise em linguagem natural e etapas de correção para problemas em clusters do Kubernetes por meio de uma arquitetura segura de bastion host. Ao combinar a experiência do K8sGpt Kubernetes com os recursos avançados de linguagem do Amazon Bedrock DevOps , as equipes podem identificar e resolver problemas de cluster rapidamente. Graças a essas funcionalidades, é possível reduzir o tempo médio de resolução (MTTR, na sigla em inglês) em até 50%. 

Este padrão nativo da nuvem usa o Amazon Elastic Kubernetes Service (Amazon EKS) para o gerenciamento do Kubernetes. O padrão implementa as melhores práticas de segurança por meio de funções AWS Identity and Access Management (IAM) adequadas e isolamento de rede. Esta solução é especialmente útil para organizações que desejam otimizar as operações no Kubernetes e aprimorar suas funcionalidades de solução de problemas com assistência de IA.

## Pré-requisitos e limitações
<a name="implement-ai-powered-kubernetes-diagnostics-and-troubleshooting-with-k8sgpt-and-amazon-bedrock-integration-prereqs"></a>

**Pré-requisitos **
+ Um ativo Conta da AWS com as permissões apropriadas
+ AWS Command Line Interface (AWS CLI) [instalado](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) e [configurado](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html)
+ Um cluster do Amazon EKS
+ Acesso ao modelo Claude 2 da Anthropic no [Amazon Bedrock](https://docs.aws.amazon.com/bedrock/latest/userguide/model-access.html)
+ Um bastion host com as configurações de grupo de segurança necessárias
+ K8sGPT [instalado](https://docs.k8sgpt.ai/getting-started/installation/)

**Limitações**
+ A análise do K8sGPT é limitada pelo tamanho da janela de contexto do modelo Claude v2.
+ Os limites de taxa da API do Amazon Bedrock são aplicados com base nas cotas da sua conta.
+ Alguns Serviços da AWS não estão disponíveis em todos Regiões da AWS. Para conferir a disponibilidade de uma região, consulte [AWS Services by Region](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/). Para endpoints específicos, consulte [Service endpoints and quotas](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html) e clique no link correspondente ao serviço desejado.

**Versões do produto**
+ Amazon EKS, [versão 1.31 ou versões 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) no Amazon Bedrock
+ K8sGpt, [v0.4.2 ou versões posteriores](https://github.com/k8sgpt-ai/k8sgpt/releases)

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

O diagrama apresentado a seguir ilustra a arquitetura para diagnósticos com base em IA no Kubernetes, usando o K8sGPT integrado ao Amazon Bedrock na Nuvem AWS.

![\[Fluxo de trabalho para diagnósticos no Kubernetes usando o K8sGPT integrado ao Amazon Bedrock.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/09bc08f6-e191-4cef-b26b-dcb6225b15cc/images/8789891d-4a90-44b0-a108-387f6d96496b.png)


A arquitetura apresenta o seguinte fluxo de trabalho:

1. Os desenvolvedores acessam o ambiente por meio de uma conexão segura com o bastion host. Essa EC2 instância da Amazon serve como ponto de entrada seguro e contém a instalação da interface de linha de comando (CLI) do K8SGpt e as configurações necessárias.

1. O bastion host, configurado com perfis do IAM específicos, estabelece conexões seguras tanto com o cluster do Amazon EKS quanto com os endpoints do Amazon Bedrock. O K8sGPT é instalado e configurado no bastion host para realizar a análise do cluster do Kubernetes.

1. O Amazon EKS gerencia o ambiente de gerenciamento do Kubernetes e os nós de processamento, fornecendo o ambiente de destino para a análise do K8sGPT. O serviço opera em várias zonas de disponibilidade dentro de uma nuvem privada virtual (VPC), o que ajuda a garantir alta disponibilidade e resiliência. O Amazon EKS fornece dados operacionais por meio da API do Kubernetes, permitindo uma análise completa do cluster.

1. O K8sGPT envia os dados de análise para o Amazon Bedrock, que fornece o modelo de base (FM) do Claude v2 para o processamento de linguagem natural. O serviço processa a análise do K8sGPT para gerar explicações legíveis para seres humanos e oferece sugestões detalhadas de correção com base nos problemas identificados. O Amazon Bedrock funciona como um serviço de IA com tecnologia sem servidor, alta disponibilidade e escalabilidade.

**nota**  
Neste fluxo de trabalho, o IAM controla o acesso entre os componentes por meio de perfis e políticas, gerenciando a autenticação das interações entre o bastion host, o Amazon EKS e o Amazon Bedrock. O IAM implementa o princípio de privilégio mínimo e possibilita a comunicação segura entre os serviços em toda a arquitetura.

**Automação e escala**

As operações do K8sGpt podem ser automatizadas e escaladas em vários clusters do Amazon EKS por meio de várias ferramentas. Serviços da AWS Essa solução oferece suporte à integração contínua e à integração de implantação contínua (CI/CD) usando [Jenkins](https://www.jenkins.io/), [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)para análise programada. O operador do K8sGPT possibilita o monitoramento contínuo dentro do cluster, com funcionalidades automatizadas de detecção e de geração de relatório de problemas. Para implantações em escala empresarial, você pode usar a [Amazon EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-what-is.html) para agendar escaneamentos e acionar respostas automatizadas com scripts personalizados. AWS A integração do SDK permite o controle programático em uma grande frota de clusters.

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

**Serviços da AWS**
+ [AWS Command Line Interface (AWS CLI)](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html) é uma ferramenta de código aberto que ajuda você a interagir Serviços da AWS por meio de comandos em seu shell de linha de comando.
+ [O Amazon Elastic Kubernetes Service (Amazon EKS](https://docs.aws.amazon.com/eks/latest/userguide/getting-started.html)) ajuda você a executar o AWS Kubernetes sem precisar instalar ou manter seu próprio plano de controle ou nós do Kubernetes.
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) ajuda você a gerenciar com segurança o acesso aos seus AWS recursos controlando quem está autenticado e autorizado a usá-los.

**Outras ferramentas**
+ O [K8sGPT](https://k8sgpt.ai/) é uma ferramenta de código aberto com base em IA que transforma o gerenciamento do Kubernetes. Essa ferramenta atua como um especialista virtual em engenharia de confiabilidade de sites (SRE), realizando, de forma automática, verificações, diagnósticos e solução de problemas em clusters do Kubernetes. Os administradores podem interagir com o K8sGPT em linguagem natural e obter insights claros e acionáveis sobre o estado do cluster, as falhas relacionadas ao pod e os problemas do serviço. Os analisadores integrados da ferramenta detectam uma ampla variedade de problemas, desde componentes mal configurados até restrições de recursos, e fornecem explicações e soluções. easy-to-understand

## Práticas recomendadas
<a name="implement-ai-powered-kubernetes-diagnostics-and-troubleshooting-with-k8sgpt-and-amazon-bedrock-integration-best-practices"></a>
+ Implemente controles de acesso seguro usando o AWS Systems Manager Session Manager acesso [ao Bastion Host](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/access-a-bastion-host-by-using-session-manager-and-amazon-ec2-instance-connect.html).
+ Certifique-se de que a autenticação do K8sGPT use perfis do IAM dedicados, com permissões de privilégio mínimo, para as interações com o Amazon Bedrock e com o Amazon EKS. Para obter mais informações, consulte [Concessão de privilégio mínimo](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#grant-least-priv) e [nas melhores práticas de segurança](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) na documentação do IAM.
+ Configure a [marcação de recursos](https://docs.aws.amazon.com/whitepapers/latest/tagging-best-practices/what-are-tags.html), habilite o CloudWatch [registro na Amazon para trilhas de auditoria](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/monitor-cloudtrail-log-files-with-cloudwatch-logs.html) e implemente a [anonimização de dados](https://aws.amazon.com/solutions/guidance/data-anonymization-on-aws/) para informações confidenciais. 
+ Mantenha backups regulares das configurações do K8sGPT, ao mesmo tempo em que define agendamentos de verificações automatizadas em horários com demanda reduzida para minimizar o impacto operacional.

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

### Adição do Amazon Bedrock à lista de provedores de backend de IA
<a name="add-br-to-ai-backend-provider-list"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Defina o Amazon Bedrock como o provedor de backend de IA para o K8sGPT. | Para definir o Amazon Bedrock como o provedor de [back-end de IA r para](https://docs.k8sgpt.ai/reference/providers/backend/) o K8SGpt, use o seguinte 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>O comando de exemplo usa `us-west-2` como a Região da AWS. No entanto, é possível selecionar outra região, desde que tanto o cluster do Amazon EKS quanto o modelo correspondente do Amazon Bedrock estejam disponíveis e habilitados nessa região selecionada.Para verificar se `amazonbedrock` foi adicionado à lista de provedores de backend de IA e está no estado `Active`, execute o seguinte comando:<pre>k8sgpt auth list</pre>A seguir, apresentamos um exemplo da saída esperada para 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 | 

### Verificação de recursos com um filtro
<a name="scan-resources-using-a-filter"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Confira uma lista dos filtros disponíveis. | Para ver a lista de todos os filtros disponíveis, use o seguinte AWS CLI comando:<pre>k8sgpt filters list</pre>A seguir, apresentamos um exemplo da saída esperada para 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 | 
| Realize a verificação de um pod em um namespace específico aplicando um filtro. | Este comando é útil para a depuração de problemas específicos de pods em um cluster do Kubernetes, usando as funcionalidades de IA do Amazon Bedrock para analisar e explicar os problemas encontrados.Para escanear um pod em um namespace específico usando um filtro, use o seguinte comando: AWS CLI <pre>k8sgpt analyze --backend amazonbedrock --explain --filter Pod -n default</pre>A seguir, apresentamos um exemplo da saída esperada para 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 | 
| Realize a verificação de uma implantação em um namespace específico aplicando um filtro. | Este comando é útil para identificar e solucionar problemas específicos da implantação, especialmente quando o estado atual não corresponde ao estado desejado.Para verificar uma implantação em um namespace específico usando um filtro, use o seguinte comando: AWS CLI <pre>k8sgpt analyze --backend amazonbedrock --explain --filter Deployment -n default</pre>A seguir, apresentamos um exemplo da saída esperada para 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 | 
| Realize a verificação de um nó em um namespace específico aplicando um filtro. | Para verificar um nó em um namespace específico usando um filtro, use o seguinte comando: AWS CLI <pre>k8sgpt analyze --backend amazonbedrock --explain --filter Node -n default </pre>A seguir, apresentamos um exemplo da saída esperada para este comando:<pre>AI Provider: amazonbedrock<br /><br />No problems detected</pre> | AWS DevOps | 

### Análise das saídas detalhadas
<a name="analyze-detailed-outputs"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Obtenha saídas detalhadas. |  Para obter resultados detalhados, use o seguinte AWS CLI comando:<pre>k8sgpt analyze --backend amazonbedrock --explain --ouput json</pre>A seguir, apresentamos um exemplo da saída esperada para 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 | 
| Verifique os pods com problemas. | Para verificar se há pods problemáticos específicos, use o seguinte comando: AWS CLI <pre>kubectl get pods --all-namespaces | grep -v Running</pre>A seguir, apresentamos um exemplo da saída esperada para este comando:<pre>NAMESPACE    NAME      READY    STATUS          RESTARTS      AGE                                       <br />default     crashme     0/1   CrashLoopBackOff   260(91s ago)   21h</pre> | AWS DevOps | 
| Obtenha insights específicos da aplicação. | Este comando é particularmente útil quando:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/implement-ai-powered-kubernetes-diagnostics-and-troubleshooting-with-k8sgpt-and-amazon-bedrock-integration.html)Para obter insights específicos da aplicação, use o seguinte comando:<pre>k8sgpt analyze --backend amazonbedrock --explain -L app=nginx -n default</pre>A seguir, apresentamos um exemplo da saída esperada para 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 da 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 documentação**
+ AWS CLI [comandos: [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)
+ [Começar a usar o Amazon EKS](https://docs.aws.amazon.com/eks/latest/userguide/getting-started.html) (documentação do Amazon EKS)
+ [Práticas recomendadas de segurança no IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) (documentação do IAM)

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