
k8sgpt es una herramienta para escanear sus grupos de Kubernetes, diagnóstico y problemas de triamiento en inglés simple.
Tiene una experiencia SRE codificada en sus analizadores y ayuda a extraer la información más relevante para enriquecerla con IA.
Integración fuera de la caja con Operai, Azure, Cohere, Amazon Bedrock, Google Gemini y modelos locales.

$ brew install k8sgpto
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.
Si instala GCC como se sugiere, el problema persistirá. Por lo tanto, debe instalar el paquete de construcción.
sudo apt-get update
sudo apt-get install build-essential
Para instalar dentro de un clúster Kubernetes, utilice nuestro k8sgpt-operator con instrucciones de instalación disponibles aquí
Este modo de operación es ideal para el monitoreo continuo de su clúster y puede integrarse con su monitoreo existente, como Prometheus y AlertManager.
k8sgpt generate para abrir un enlace de navegador para generarlok8sgpt auth add para configurarlo en K8SGPT.--password .k8sgpt filters para administrar los filtros activos utilizados por el analizador. Por defecto, todos los filtros se ejecutan durante el análisis.k8sgpt analyze para ejecutar un escaneo.k8sgpt analyze --explain para obtener una explicación más detallada de los problemas.k8sgpt analyze --with-doc (con o sin el indicador de explicación) para obtener la documentación oficial de Kubernetes. K8SGPT utiliza analizadores para clasificar y diagnosticar problemas en su grupo. Tiene un conjunto de analizadores que están integrados, pero podrá escribir sus propios analizadores.
Ejecute un escaneo con los analizadores predeterminados
k8sgpt generate
k8sgpt auth add
k8sgpt analyze --explain
k8sgpt analyze --explain --with-doc
Filtrar en el recurso
k8sgpt analyze --explain --filter=Service
Filtrar por espacio de nombres
k8sgpt analyze --explain --filter=Pod --namespace=default
Salida a JSON
k8sgpt analyze --explain --filter=Service --output=json
Anonimizar durante la explicación
k8sgpt analyze --explain --filter=Service --output=json --anonymize
Filtros de lista
k8sgpt filters list
Agregar filtros predeterminados
k8sgpt filters add [filter(s)]
k8sgpt filters add Servicek8sgpt filters add Ingress,PodEliminar filtros predeterminados
k8sgpt filters remove [filter(s)]
k8sgpt filters remove Servicek8sgpt filters remove Ingress,PodLista de backends configurados
k8sgpt auth list
Actualizar backends configurados
k8sgpt auth update $MY_BACKEND1,$MY_BACKEND2..
Eliminar los backends configurados
k8sgpt auth remove -b $MY_BACKEND1,$MY_BACKEND2..
Integraciones de listas
k8sgpt integrations list
Activar integraciones
k8sgpt integrations activate [integration(s)]
Utilice la integración
k8sgpt analyze --filter=[integration(s)]
Desactivar las integraciones
k8sgpt integrations deactivate [integration(s)]
Modo de servicio
k8sgpt serve
Análisis con modo de servicio
grpcurl -plaintext -d '{"namespace": "k8sgpt", "explain" : "true"}' localhost:8080 schema.v1.ServerAnalyzerService/Analyze
{
"status": "OK"
}
Análisis con encabezados personalizados
k8sgpt analyze --explain --custom-headers CustomHeaderKey:CustomHeaderValue
Estadísticas de análisis de impresión
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
Información de diagnóstico
Para recopilar información de diagnóstico, use el siguiente comando para crear un dump_<timestamp>_json en su directorio local.
k8sgpt dump
K8SGPT utiliza el proveedor de IA generativo elegido LLM, cuando desea explicar los resultados del análisis utilizando -Explicar bandera, por ejemplo, k8sgpt analyze --explain . Puede usar el indicador --backend para especificar un proveedor configurado (es openai de forma predeterminada).
Puede enumerar los proveedores disponibles utilizando k8sgpt auth list :
Default:
> openai
Active:
Unused:
> openai
> localai
> ollama
> azureopenai
> cohere
> amazonbedrock
> amazonsagemaker
> google
> huggingface
> noopai
> googlevertexai
> ibmwatsonxai
Para una documentación detallada sobre cómo configurar y usar cada proveedor, ver aquí.
Para establecer un nuevo proveedor predeterminado
k8sgpt auth default -p azureopenai
Default provider set to azureopenai
Con esta opción, los datos se anonimizan antes de ser enviados al backend de la IA. Durante la ejecución del análisis, k8sgpt recupera datos confidenciales (nombres de objetos de Kubernetes, etiquetas, etc.). Estos datos se enmascaran cuando se envían al backend de IA y se reemplazan por una clave que se puede usar para desanonimizar los datos cuando la solución se devuelve al usuario.
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: El anonimización no se aplica actualmente a los eventos.
El anonimización no se aplica actualmente a los eventos.
En algunos analizadores como POD, nos alimentamos al Backend de la IA los mensajes de eventos que no se conocen de antemano, por lo que no los enmascaramos por el momento .
La siguiente es la lista de analizadores en la que se están enmascarando los datos:-
La siguiente es la lista de analizadores en la que los datos no se enmascaran :-
*Nota :
K8GPT no enmascarará los analizadores anteriores porque no envían ninguna información de identificación, excepto el analizador de eventos .
El enmascaramiento para el analizador de eventos está programado en el futuro cercano como se ve en este tema. Se debe hacer más investigación para comprender los patrones y poder enmascarar las partes sensibles de un evento como el nombre de la cápsula, el espacio de nombres, etc.
La siguiente es la lista de campos que no se enmascaran :-
*Nota :
k8sgpt almacena datos de configuración en el archivo $XDG_CONFIG_HOME/k8sgpt/k8sgpt.yaml . Los datos se almacenan en texto plano, incluida su tecla OpenAI.
Ubicaciones de archivos de configuración:
| Sistema operativo | Camino |
|---|---|
| Macosa | ~/Biblioteca/soporte de aplicación/k8sgpt/k8sgpt.yaml |
| Linux | ~/.config/k8sgpt/k8sgpt.yaml |
| Windows | %LocalAppData%/K8SGPT/K8SGPT.YAML |
Agregar un caché remoto
AWS_ACCESS_KEY_ID y AWS_SECRET_ACCESS_KEY se requieren como variables ambientales.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 se requiere como variables ambientales.k8sgpt cache add gcs --region <gcp region> --bucket <name> --projectid <project id>Listado de elementos de caché
k8sgpt cache list
Purgar un objeto desde la caché nota: purgar un objeto usando este comando eliminará los archivos ascendentes, por lo que requiere los permisos apropiados.
k8sgpt cache purge $OBJECT_NAME
Eliminar el caché remoto Nota: Esto no eliminará el cubo S3 aguas arriba o el contenedor de almacenamiento de Azure
k8sgpt cache remove
Puede haber escenarios en los que desee escribir su propio analizador en un lenguaje de su elección. K8SGPT ahora respalda la capacidad de hacerlo permaneciendo con el esquema y sirviendo al analizador para el consumo. Para hacerlo, defina el analizador dentro de la configuración de K8SGPT y lo agregará al proceso de escaneo. Además de esto, deberá habilitar la siguiente bandera en el análisis:
k8sgpt analyze --custom-analysis
Aquí hay un ejemplo de analizador de host local en Rust cuando se ejecuta en localhost:8080 La configuración K8SGPT puede recogerlo con las siguientes adiciones:
custom_analyzers:
- name: host-analyzer
connection:
url: localhost
port: 8080
Esto ahora brinda la capacidad de pasar a través de la información de HOSTOS (desde este ejemplo de analizador) hasta K8SGPT para usar como contexto con análisis normal.
Vea los documentos sobre cómo escribir un analizador personalizado
Listado de analizadores personalizados configurados
k8sgpt custom-analyzer list
Agregar analizador personalizado sin instalación
k8sgpt custom-analyzer add --name my-custom-analyzer --port 8085
Eliminar analizador personalizado
k8sgpt custom-analyzer remove --names "my-custom-analyzer,my-custom-analyzer-2"
Encuentre nuestra documentación oficial disponible aquí
Lea nuestra guía contribuyente.
Encuéntranos en Slack