
k8sgpt est un outil pour analyser vos grappes Kubernetes, le diagnostic et le triage des problèmes en anglais simple.
Il a une expérience SRE codifiée dans ses analyseurs et aide à retirer les informations les plus pertinentes pour l'enrichir avec l'IA.
L'intégration de la boîte avec Openai, Azure, Cohere, Amazon Bedrock, Google Gemini et les modèles locaux.

$ brew install k8sgptou
brew tap k8sgpt-ai/k8sgpt
brew install k8sgpt32 bits:
sudo rpm -ivh https://github.com/k8sgpt-ai/k8sgpt/releases/download/v0.3.46/k8sgpt_386.rpm
64 bits:
sudo rpm -ivh https://github.com/k8sgpt-ai/k8sgpt/releases/download/v0.3.46/k8sgpt_amd64.rpm
32 bits:
curl -LO https://github.com/k8sgpt-ai/k8sgpt/releases/download/v0.3.46/k8sgpt_386.deb
sudo dpkg -i k8sgpt_386.deb
64 bits:
curl -LO https://github.com/k8sgpt-ai/k8sgpt/releases/download/v0.3.46/k8sgpt_amd64.deb
sudo dpkg -i k8sgpt_amd64.deb
32 bits:
wget https://github.com/k8sgpt-ai/k8sgpt/releases/download/v0.3.46/k8sgpt_386.apk
apk add --allow-untrusted k8sgpt_386.apk
64 bits:
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 vous installez GCC comme suggéré, le problème persistera. Par conséquent, vous devez installer le package essentiel.
sudo apt-get update
sudo apt-get install build-essential
Pour installer dans un cluster Kubernetes, veuillez utiliser notre k8sgpt-operator avec des instructions d'installation disponibles ici
Ce mode de fonctionnement est idéal pour la surveillance continue de votre cluster et peut s'intégrer à votre surveillance existante telle que Prometheus et AlertManager.
k8sgpt generate pour ouvrir un lien de navigateur pour le générerk8sgpt auth add pour le définir dans K8SGPT.--password Passassword.k8sgpt filters pour gérer les filtres actifs utilisés par l'analyseur. Par défaut, tous les filtres sont exécutés lors de l'analyse.k8sgpt analyze pour exécuter un scan.k8sgpt analyze --explain pour obtenir une explication plus détaillée des problèmes.k8sgpt analyze --with-doc (avec ou sans le drapeau explique) pour obtenir la documentation officielle de Kubernetes. K8SGPT utilise des analyseurs pour triage et diagnostiquer les problèmes dans votre cluster. Il a un ensemble d'analyseurs intégrés, mais vous pourrez écrire vos propres analyseurs.
Exécutez un scan avec les analyseurs par défaut
k8sgpt generate
k8sgpt auth add
k8sgpt analyze --explain
k8sgpt analyze --explain --with-doc
Filtre sur les ressources
k8sgpt analyze --explain --filter=Service
Filtre par espace de noms
k8sgpt analyze --explain --filter=Pod --namespace=default
Sortie à JSON
k8sgpt analyze --explain --filter=Service --output=json
Anonymiser pendant Expliquez
k8sgpt analyze --explain --filter=Service --output=json --anonymize
Filtres de liste
k8sgpt filters list
Ajouter des filtres par défaut
k8sgpt filters add [filter(s)]
k8sgpt filters add Servicek8sgpt filters add Ingress,PodSupprimer les filtres par défaut
k8sgpt filters remove [filter(s)]
k8sgpt filters remove Servicek8sgpt filters remove Ingress,PodListe des backends configurés
k8sgpt auth list
Mettre à jour les backends configurés
k8sgpt auth update $MY_BACKEND1,$MY_BACKEND2..
Supprimer les backends configurés
k8sgpt auth remove -b $MY_BACKEND1,$MY_BACKEND2..
Liste des intégrations
k8sgpt integrations list
Activer les intégrations
k8sgpt integrations activate [integration(s)]
Utiliser l'intégration
k8sgpt analyze --filter=[integration(s)]
Désactiver les intégrations
k8sgpt integrations deactivate [integration(s)]
Mode de service
k8sgpt serve
Analyse avec mode de service
grpcurl -plaintext -d '{"namespace": "k8sgpt", "explain" : "true"}' localhost:8080 schema.v1.ServerAnalyzerService/Analyze
{
"status": "OK"
}
Analyse avec des en-têtes personnalisés
k8sgpt analyze --explain --custom-headers CustomHeaderKey:CustomHeaderValue
Statistiques d'analyse d'impression
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
Informations de diagnostic
Pour collecter des informations de diagnostic, utilisez la commande suivante pour créer un dump_<timestamp>_json dans votre répertoire local.
k8sgpt dump
K8SGPT utilise le fournisseur AI Generative AI choisi lorsque vous souhaitez expliquer les résultats de l'analyse en utilisant - EXPLAINE Flag EG k8sgpt analyze --explain . Vous pouvez utiliser --backend Indicateur pour spécifier un fournisseur configuré (il est openai par défaut).
Vous pouvez répertorier les fournisseurs disponibles à l'aide de k8sgpt auth list :
Default:
> openai
Active:
Unused:
> openai
> localai
> ollama
> azureopenai
> cohere
> amazonbedrock
> amazonsagemaker
> google
> huggingface
> noopai
> googlevertexai
> ibmwatsonxai
Pour une documentation détaillée sur la façon de configurer et d'utiliser chaque fournisseur, consultez ici.
Pour définir un nouveau fournisseur par défaut
k8sgpt auth default -p azureopenai
Default provider set to azureopenai
Avec cette option, les données sont anonymisées avant d'être envoyées au backend IA. Pendant l'exécution de l'analyse, k8sgpt récupère les données sensibles (noms d'objets Kubernetes, étiquettes, etc.). Ces données sont masquées lorsqu'elles sont envoyées au backend AI et remplacées par une clé qui peut être utilisée pour désanoniser les données lorsque la solution est renvoyée à l'utilisateur.
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.Remarque: l'anonymisation ne s'applique pas actuellement aux événements.
L'anonymisation ne s'applique pas actuellement aux événements.
Dans quelques analyseurs comme POD, nous alimentons le backend AI les messages de l'événement qui ne sont pas connus au préalable, donc nous ne les masquons pas pour le moment .
Ce qui suit est la liste des analyseurs dans lesquels les données sont masquées : -
Voici la liste des analyseurs dans lesquels les données ne sont pas masquées : -
*Note :
K8GPT ne masquera pas les analyseurs ci-dessus car ils n'envoient aucune information d'identification à l'exception de l'analyseur d'événements .
Masking for Events Analyzer est prévu dans un avenir proche comme le montre ce numéro. Des recherches supplémentaires doivent être effectuées pour comprendre les modèles et être en mesure de masquer les parties sensibles d'un événement comme le nom de pod, l'espace de noms, etc.
Ce qui suit est la liste des champs qui ne sont pas masqués : -
*Note :
k8sgpt stocke les données de configuration dans le fichier $XDG_CONFIG_HOME/k8sgpt/k8sgpt.yaml . Les données sont stockées en texte brut, y compris votre clé Openai.
Emplacements de fichiers de configuration:
| OS | Chemin |
|---|---|
| Macos | ~ / Bibliothèque / support d'application / K8SGPT / K8SGPT.YAML |
| Linux | ~ / .config / k8sgpt / k8sgpt.yaml |
| Fenêtre | % Localappdata% / k8sgpt / k8sgpt.yaml |
Ajout d'un cache distant
AWS_ACCESS_KEY_ID et AWS_SECRET_ACCESS_KEY sont nécessaires comme variables environnementales.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 sont nécessaires comme variables environnementales.k8sgpt cache add gcs --region <gcp region> --bucket <name> --projectid <project id>Listing des éléments de cache
k8sgpt cache list
La purge d'un objet à partir du cache Remarque: La purge d'un objet à l'aide de cette commande supprimera les fichiers en amont, donc il nécessite des autorisations appropriées.
k8sgpt cache purge $OBJECT_NAME
Suppression du cache distant Remarque: Ceci ne supprimera pas le conteneur de stockage S3 en amont ou Azure
k8sgpt cache remove
Il peut y avoir des scénarios où vous souhaitez écrire votre propre analyseur dans une langue de votre choix. K8SGPT soutient désormais la capacité de le faire en respectant le schéma et en servant l'analyseur pour la consommation. Pour ce faire, définissez l'analyseur dans la configuration K8SGPT et il l'ajoutera dans le processus de balayage. En plus de cela, vous devrez activer le drapeau suivant sur l'analyse:
k8sgpt analyze --custom-analysis
Voici un exemple d'analyseur d'hôtes local dans Rust lorsque cela est exécuté sur localhost:8080 La configuration K8SGPT peut le récupérer avec les ajouts suivants:
custom_analyzers:
- name: host-analyzer
connection:
url: localhost
port: 8080
Cela donne désormais la possibilité de passer par des informations Hostos (de cet exemple d'analyseur) à K8SGPT pour utiliser comme contexte avec une analyse normale.
Voir les documents sur la façon d'écrire un analyseur personnalisé
Listing des analyseurs personnalisés configurés
k8sgpt custom-analyzer list
Ajout d'analyseur personnalisé sans installation
k8sgpt custom-analyzer add --name my-custom-analyzer --port 8085
Suppression de l'analyseur personnalisé
k8sgpt custom-analyzer remove --names "my-custom-analyzer,my-custom-analyzer-2"
Trouvez notre documentation officielle disponible ici
Veuillez lire notre guide de contribution.
Trouvez-nous sur Slack