
k8sgpt é uma ferramenta para digitalizar seus clusters de Kubernetes, diagnosticar e triar problemas em inglês simples.
Ele tem experiência SRE codificada em seus analisadores e ajuda a extrair as informações mais relevantes para enriquecê -las com a IA.
Fora da integração de caixas com o OpenAi, Azure, Cohere, Amazon Bedrock, Google Gemini e Modelos locais.

$ brew install k8sgptou
brew tap k8sgpt-ai/k8sgpt
brew install k8sgpt32 bit:
sudo rpm -ivh https://github.com/k8sgpt-ai/k8sgpt/releases/download/v0.3.46/k8sgpt_386.rpm
64 bit:
sudo rpm -ivh https://github.com/k8sgpt-ai/k8sgpt/releases/download/v0.3.46/k8sgpt_amd64.rpm
32 bit:
curl -LO https://github.com/k8sgpt-ai/k8sgpt/releases/download/v0.3.46/k8sgpt_386.deb
sudo dpkg -i k8sgpt_386.deb
64 bit:
curl -LO https://github.com/k8sgpt-ai/k8sgpt/releases/download/v0.3.46/k8sgpt_amd64.deb
sudo dpkg -i k8sgpt_amd64.deb
32 bit:
wget https://github.com/k8sgpt-ai/k8sgpt/releases/download/v0.3.46/k8sgpt_386.apk
apk add --allow-untrusted k8sgpt_386.apk
64 bit:
wget https://github.com/k8sgpt-ai/k8sgpt/releases/download/v0.3.46/k8sgpt_amd64.apk
apk add --allow-untrusted k8sgpt_amd64.apk
==> Installing k8sgpt from k8sgpt-ai/k8sgpt Error: The following formula cannot be installed from a bottle and must be
built from the source. k8sgpt Install Clang or run brew install gcc.
Se você instalar o GCC conforme sugerido, o problema persistirá. Portanto, você precisa instalar o pacote essencial de construção.
sudo apt-get update
sudo apt-get install build-essential
Para instalar em um cluster Kubernetes, use nosso k8sgpt-operator com instruções de instalação disponíveis aqui
Esse modo de operação é ideal para o monitoramento contínuo do seu cluster e pode se integrar ao seu monitoramento existente, como Prometheus e AlertManager.
k8sgpt generate para abrir um link do navegador para gerá -lok8sgpt auth add para defini -lo no K8SGPT.--password .k8sgpt filters para gerenciar os filtros ativos usados pelo analisador. Por padrão, todos os filtros são executados durante a análise.k8sgpt analyze para executar uma varredura.k8sgpt analyze --explain para obter uma explicação mais detalhada dos problemas.k8sgpt analyze --with-doc (com ou sem a bandeira de explicação) para obter a documentação oficial da Kubernetes. O K8SGPT usa analisadores para triagem e diagnosticar problemas em seu cluster. Ele possui um conjunto de analisadores que são incorporados, mas você poderá escrever seus próprios analisadores.
Execute uma varredura com os analisadores padrão
k8sgpt generate
k8sgpt auth add
k8sgpt analyze --explain
k8sgpt analyze --explain --with-doc
Filtre no recurso
k8sgpt analyze --explain --filter=Service
Filtre por namespace
k8sgpt analyze --explain --filter=Pod --namespace=default
Saída para JSON
k8sgpt analyze --explain --filter=Service --output=json
Anonimize durante o Explicação
k8sgpt analyze --explain --filter=Service --output=json --anonymize
Filtros de lista
k8sgpt filters list
Adicione filtros padrão
k8sgpt filters add [filter(s)]
k8sgpt filters add Servicek8sgpt filters add Ingress,PodRemova os filtros padrão
k8sgpt filters remove [filter(s)]
k8sgpt filters remove Servicek8sgpt filters remove Ingress,PodLista configurada nos backnds
k8sgpt auth list
Update configurado backnds
k8sgpt auth update $MY_BACKEND1,$MY_BACKEND2..
Remova os backnds configurados
k8sgpt auth remove -b $MY_BACKEND1,$MY_BACKEND2..
Lista integrações
k8sgpt integrations list
Ativar integrações
k8sgpt integrations activate [integration(s)]
Use integração
k8sgpt analyze --filter=[integration(s)]
Desativar integrações
k8sgpt integrations deactivate [integration(s)]
Modo de servir
k8sgpt serve
Análise com o modo de servir
grpcurl -plaintext -d '{"namespace": "k8sgpt", "explain" : "true"}' localhost:8080 schema.v1.ServerAnalyzerService/Analyze
{
"status": "OK"
}
Análise com cabeçalhos personalizados
k8sgpt analyze --explain --custom-headers CustomHeaderKey:CustomHeaderValue
Estatísticas de análise de impressão
k8sgpt analyze -s
The stats mode allows for debugging and understanding the time taken by an analysis by displaying the statistics of each analyzer.
- Analyzer Ingress took 47.125583ms
- Analyzer PersistentVolumeClaim took 53.009167ms
- Analyzer CronJob took 57.517792ms
- Analyzer Deployment took 156.6205ms
- Analyzer Node took 160.109833ms
- Analyzer ReplicaSet took 245.938333ms
- Analyzer StatefulSet took 448.0455ms
- Analyzer Pod took 5.662594708s
- Analyzer Service took 38.583359166s
Informação de diagnóstico
Para coletar informações de diagnóstico, use o seguinte comando para criar um dump_<timestamp>_json no seu diretório local.
k8sgpt dump
O K8SGPT usa o provedor de IA generativo escolhido LLM quando você deseja explicar os resultados da análise usando -Sinalizador de explosão, por exemplo, k8sgpt analyze --explain . Você pode usar o sinalizador --backend para especificar um provedor configurado (é openai por padrão).
Você pode listar os provedores disponíveis usando k8sgpt auth list :
Default:
> openai
Active:
Unused:
> openai
> localai
> ollama
> azureopenai
> cohere
> amazonbedrock
> amazonsagemaker
> google
> huggingface
> noopai
> googlevertexai
> ibmwatsonxai
Para uma documentação detalhada sobre como configurar e usar cada provedor, consulte aqui.
Para definir um novo provedor padrão
k8sgpt auth default -p azureopenai
Default provider set to azureopenai
Com esta opção, os dados são anonimizados antes de serem enviados para o back -end da IA. Durante a execução da análise, k8sgpt recupera dados confidenciais (nomes de objetos Kubernetes, etc.). Esses dados são mascarados quando enviados ao back-end da IA e substituídos por uma chave que pode ser usada para desanimizar os dados quando a solução é retornada ao usuário.
Error: HorizontalPodAutoscaler uses StatefulSet/fake-deployment as ScaleTargetRef which does not exist.Error: HorizontalPodAutoscaler uses StatefulSet/tGLcCRcHa1Ce5Rs as ScaleTargetRef which does not exist.The Kubernetes system is trying to scale a StatefulSet named tGLcCRcHa1Ce5Rs using the HorizontalPodAutoscaler, but it cannot find the StatefulSet. The solution is to verify that the StatefulSet name is spelled correctly and exists in the same namespace as the HorizontalPodAutoscaler.The Kubernetes system is trying to scale a StatefulSet named fake-deployment using the HorizontalPodAutoscaler, but it cannot find the StatefulSet. The solution is to verify that the StatefulSet name is spelled correctly and exists in the same namespace as the HorizontalPodAutoscaler.Nota: Atualmente, o anonimato não se aplica a eventos.
Atualmente, o anonimato não se aplica a eventos.
Em alguns analisadores como o POD, alimentamos o back -end da IA as mensagens de evento que não são conhecidas de antemão, portanto não as estamos mascarando por enquanto .
A seguir, é apresentada a lista de analisadores em que os dados estão sendo mascarados :-
A seguir, é apresentada a lista de analisadores em que os dados não estão sendo mascarados :-
*Observação :
O K8GPT não mascarará os analisadores acima porque eles não enviam nenhuma informação de identificação, exceto o Analyzer de Eventos .
O MASCHO PARA EVENTOS Analisador está agendado em um futuro próximo, como visto nesta edição. Mais pesquisas devem ser feitas para entender os padrões e poder mascarar as partes sensíveis de um evento como nome de pod, espaço para nome etc.
A seguir, a lista de campos que não estão sendo mascarados :-
*Observação :
k8sgpt armazena dados de configuração no arquivo $XDG_CONFIG_HOME/k8sgpt/k8sgpt.yaml . Os dados são armazenados em texto simples, incluindo sua tecla OpenAI.
Locais de arquivo de configuração:
| OS | Caminho |
|---|---|
| Macos | ~/Biblioteca/suporte do aplicativo/k8sgpt/k8sgpt.yaml |
| Linux | ~/.config/k8sgpt/k8sgpt.yaml |
| Windows | %LocalAppData%/k8sgpt/k8sgpt.yaml |
Adicionando um cache remoto
AWS_ACCESS_KEY_ID e AWS_SECRET_ACCESS_KEY são necessários como variáveis ambientais.k8sgpt cache add s3 --region <aws region> --bucket <name>k8sgpt cache add s3 --bucket <name> --endpoint <http://localhost:9000>k8sgpt cache add s3 --bucket <name> --endpoint <https://localhost:9000> --insecurek8sgpt cache add azure --storageacc <storage account name> --container <container name>GOOGLE_APPLICATION_CREDENTIALS são necessários como variáveis ambientais.k8sgpt cache add gcs --region <gcp region> --bucket <name> --projectid <project id>Listando itens de cache
k8sgpt cache list
Purgando um objeto da nota do cache : purgar um objeto usando este comando excluirá arquivos upstream, para que ele requer permissões apropriadas.
k8sgpt cache purge $OBJECT_NAME
Removendo o cache remoto Nota: Isso não excluirá o balde S3 ou contêiner de armazenamento do Azure a montante
k8sgpt cache remove
Pode haver cenários em que você deseja escrever seu próprio analisador em um idioma de sua escolha. O K8SGPT agora suporta a capacidade de fazê -lo cumprindo o esquema e atendendo ao analisador para consumo. Para fazer isso, defina o analisador na configuração do K8SGPT e ele o adicionará ao processo de digitalização. Além disso, você precisará ativar o seguinte sinalizador na análise:
k8sgpt analyze --custom-analysis
Aqui está um exemplo de analisador host local em Rust quando isso é executado no localhost:8080 A configuração K8SGPT pode buscá -la com as seguintes adições:
custom_analyzers:
- name: host-analyzer
connection:
url: localhost
port: 8080
Isso agora oferece a capacidade de passar pelas informações do Hostos (deste exemplo do analisador) para o K8SGPT para usar como contexto com análise normal.
Veja os documentos sobre como escrever um analisador personalizado
Listando analisadores personalizados configurados
k8sgpt custom-analyzer list
Adicionando analisador personalizado sem instalação
k8sgpt custom-analyzer add --name my-custom-analyzer --port 8085
Remoção do analisador personalizado
k8sgpt custom-analyzer remove --names "my-custom-analyzer,my-custom-analyzer-2"
Encontre nossa documentação oficial disponível aqui
Por favor, leia nosso guia contribuinte.
Encontre -nos no Slack