
k8sgpt ist ein Werkzeug zum Scannen Ihrer Kubernetes -Cluster, Diagnose und Triaging -Probleme in einfachem Englisch.
Es verfügt über eine SRE -Erfahrung, die in seine Analysatoren kodifiziert wurde, und hilft, die relevantesten Informationen zu erreichen, um sie mit KI zu bereichern.
Aus dem Kasten integriert mit OpenAI, Azure, Cohere, Amazon Bedrock, Google Gemini und lokalen Modellen.

$ brew install k8sgptoder
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.
Wenn Sie GCC wie vorgeschlagen installieren, bleibt das Problem bestehen. Daher müssen Sie das Build-Wesential-Paket installieren.
sudo apt-get update
sudo apt-get install build-essential
Um in k8sgpt-operator Kubernetes-Cluster zu installieren
Diese Betriebsart ist ideal für die kontinuierliche Überwachung Ihres Clusters und kann in Ihre vorhandene Überwachung wie Prometheus und AlertManager integriert werden.
k8sgpt generate , um einen Browser -Link zu öffnen, um ihn zu generierenk8sgpt auth add , um es in K8SGPT einzustellen.--password angeben.k8sgpt filters aus, um die vom Analysator verwendeten aktiven Filter zu verwalten. Standardmäßig werden alle Filter während der Analyse ausgeführt.k8sgpt analyze aus, um einen Scan auszuführen.k8sgpt analyze --explain Sie eine detailliertere Erklärung der Probleme.k8sgpt analyze --with-doc (mit oder ohne Erklärungsflag), um die offizielle Dokumentation von Kubernetes zu erhalten. K8SGPT verwendet Analysatoren, um Probleme in Ihrem Cluster zu diagnostizieren und zu diagnostizieren. Es verfügt über eine Reihe von Analysatoren, die eingebaut sind, aber Sie können Ihre eigenen Analysatoren schreiben.
Führen Sie einen Scan mit den Standardanalysatoren aus
k8sgpt generate
k8sgpt auth add
k8sgpt analyze --explain
k8sgpt analyze --explain --with-doc
Filtern auf Ressource
k8sgpt analyze --explain --filter=Service
Filter per Namespace
k8sgpt analyze --explain --filter=Pod --namespace=default
Ausgabe an JSON
k8sgpt analyze --explain --filter=Service --output=json
Anonymisieren während der Erklärung
k8sgpt analyze --explain --filter=Service --output=json --anonymize
Listenfilter
k8sgpt filters list
Fügen Sie Standardfilter hinzu
k8sgpt filters add [filter(s)]
k8sgpt filters add Servicek8sgpt filters add Ingress,PodStandardfilter entfernen
k8sgpt filters remove [filter(s)]
k8sgpt filters remove Servicek8sgpt filters remove Ingress,PodListe konfigurierte Backends
k8sgpt auth list
Aktualisieren Sie konfigurierte Backends
k8sgpt auth update $MY_BACKEND1,$MY_BACKEND2..
Entfernen Sie konfigurierte Backends
k8sgpt auth remove -b $MY_BACKEND1,$MY_BACKEND2..
Integrationen auflisten
k8sgpt integrations list
Integrationen aktivieren
k8sgpt integrations activate [integration(s)]
Verwenden Sie die Integration
k8sgpt analyze --filter=[integration(s)]
Integrationen deaktivieren
k8sgpt integrations deactivate [integration(s)]
Serve -Modus
k8sgpt serve
Analyse mit Serve -Modus
grpcurl -plaintext -d '{"namespace": "k8sgpt", "explain" : "true"}' localhost:8080 schema.v1.ServerAnalyzerService/Analyze
{
"status": "OK"
}
Analyse mit benutzerdefinierten Headern
k8sgpt analyze --explain --custom-headers CustomHeaderKey:CustomHeaderValue
Druckanalyse -Statistiken
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
Diagnoseinformationen
Um diagnostische Informationen zu sammeln, verwenden Sie den folgenden Befehl, um in Ihrem lokalen Verzeichnis eine dump_<timestamp>_json zu erstellen.
k8sgpt dump
K8SGPT verwendet den ausgewählten LLM, generativen AI -Anbieter, wenn Sie die Analyseergebnisse mithilfe von FLAG -EXGAIN -EG k8sgpt analyze --explain erklären möchten. Sie können --backend Flag verwenden, um einen konfigurierten Anbieter anzugeben (es ist standardmäßig openai ).
Sie können verfügbare Anbieter mit k8sgpt auth list auflisten:
Default:
> openai
Active:
Unused:
> openai
> localai
> ollama
> azureopenai
> cohere
> amazonbedrock
> amazonsagemaker
> google
> huggingface
> noopai
> googlevertexai
> ibmwatsonxai
Eine detaillierte Dokumentation zum Konfigurieren und Verwenden von jedem Anbieter finden Sie hier.
Einen neuen Standardanbieter festlegen
k8sgpt auth default -p azureopenai
Default provider set to azureopenai
Mit dieser Option werden die Daten anonymisiert, bevor sie an das KI -Backend gesendet werden. Während der Analyseausführung holt k8sgpt sensible Daten (Kubernetes -Objektnamen, Beschriftungen usw.). Diese Daten werden maskiert, wenn sie an das KI-Backend gesendet und durch einen Schlüssel ersetzt werden, mit dem die Daten anononymisiert werden können, wenn die Lösung an den Benutzer zurückgegeben wird.
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.Hinweis: Die Anonymisierung gilt derzeit nicht für Ereignisse.
Die Anonymisierung gilt derzeit nicht für Ereignisse.
In einigen Analysatoren wie POD ernähren wir uns mit dem KI -Backend die Ereignismeldungen, die vorher nicht bekannt sind. Daher maskieren wir sie vorerst nicht.
Das Folgende ist die Liste der Analysatoren, in denen Daten maskiert werden:-
Das Folgende ist die Liste der Analysatoren, in denen Daten nicht maskiert werden :-
*Notiz :
K8GPT wird die obigen Analysatoren nicht maskieren, da sie keine identifizierenden Informationen außer Ereignisanalysators senden.
Die Maskierung des Ereignisanalysators ist in naher Zukunft geplant, wie in dieser Ausgabe zu sehen ist. Weitere Untersuchungen müssen durchgeführt werden, um die Muster zu verstehen und die empfindlichen Teile eines Ereignisses wie Pod -Namen, Namespace usw. maskieren zu können.
Das Folgende ist die Liste der Felder, die nicht maskiert werden :-
*Notiz :
k8sgpt speichert Konfigurationsdaten in der Datei $XDG_CONFIG_HOME/k8sgpt/k8sgpt.yaml . Die Daten werden in einfachem Text gespeichert, einschließlich Ihres OpenAI -Schlüssels.
Konfigurationsdateiorte:
| Betriebssystem | Weg |
|---|---|
| Macos | ~/Bibliothek/Anwendungsunterstützung/K8SGPT/K8SGPT.YAML |
| Linux | ~/.config/k8sgpt/k8sgpt.yaml |
| Fenster | %LocalAppdata%/K8SGPT/K8SGPT.YAML |
Hinzufügen eines Remote -Cache
AWS_ACCESS_KEY_ID und AWS_SECRET_ACCESS_KEY als Umgebungsvariablen erforderlich.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 als Umgebungsvariablen erforderlich.k8sgpt cache add gcs --region <gcp region> --bucket <name> --projectid <project id>Cache -Elemente auflisten
k8sgpt cache list
Durch das Reinigen eines Objekts aus dem Cache -Hinweis: Durch das Löschen eines Objekts mit diesem Befehl werden Upstream -Dateien gelöscht, sodass geeignete Berechtigungen erforderlich sind.
k8sgpt cache purge $OBJECT_NAME
Entfernen des Remote -Cache -Hinweis
k8sgpt cache remove
Es kann Szenarien geben, in denen Sie Ihren eigenen Analysator in einer Sprache Ihrer Wahl schreiben möchten. K8SGPT unterstützt nun die Fähigkeit, dies zu tun, indem sie sich an das Schema einbleiben und dem Analysator für den Konsum dienen. Definieren Sie dazu den Analysator innerhalb der K8SGPT -Konfiguration und fügt ihn in den Scanprozess hinzu. Darüber hinaus müssen Sie bei der Analyse das folgende Flag aktivieren:
k8sgpt analyze --custom-analysis
Hier ist ein Beispiel für einen lokalen Host -Analysator in Rust, wenn dies auf localhost:8080 ausgeführt wird. Die K8SGPT -Konfiguration kann sie mit den folgenden Ergänzungen aufnehmen:
custom_analyzers:
- name: host-analyzer
connection:
url: localhost
port: 8080
Dies gibt nun die Möglichkeit, Hostos -Informationen (aus diesem Analysator -Beispiel) an K8SGPT zu übergeben, um mit normaler Analyse als Kontext zu verwenden.
Sehen Sie sich die Dokumente zum Schreiben eines benutzerdefinierten Analysators an
Auflistung benutzerdefinierter Analysatoren konfiguriert
k8sgpt custom-analyzer list
Hinzufügen eines benutzerdefinierten Analysators ohne Installation
k8sgpt custom-analyzer add --name my-custom-analyzer --port 8085
Entfernen von benutzerdefiniertem Analysator
k8sgpt custom-analyzer remove --names "my-custom-analyzer,my-custom-analyzer-2"
Hier finden Sie unsere offiziellen Dokumentation hier verfügbar
Bitte lesen Sie unseren beitragenden Leitfaden.
Finden Sie uns auf Slack