Salta ai contenuti

k8sgpt — CLI

k8sgpt esegue analyzer (Pod, Service, PVC, Ingress, Deployment, ReplicaSet, CronJob, Node, NetworkPolicy…) che trovano i problemi in modo deterministico, poi usa l’LLM solo per spiegarli. Per questo funziona bene anche con un 7B.

Finestra del terminale
brew install k8sgpt
Finestra del terminale
k8sgpt version

k8sgpt parla con Ollama tramite il backend localai (API OpenAI-compatible):

Finestra del terminale
k8sgpt auth add --backend localai --model qwen2.5:7b-instruct --baseurl http://localhost:11434/v1
Finestra del terminale
k8sgpt auth default --provider localai
Finestra del terminale
k8sgpt auth list

Cambiare modello (es. il modello k8s-sre del Modelfile):

Finestra del terminale
k8sgpt auth update --backend localai --model k8s-sre --baseurl http://localhost:11434/v1
Finestra del terminale
k8sgpt auth remove --backends localai

Senza LLM, solo analyzer (veloce, nessun token):

Finestra del terminale
k8sgpt analyze --namespace shop-demo

Con spiegazione:

Finestra del terminale
k8sgpt analyze --namespace shop-demo --explain

Spiegazione in italiano:

Finestra del terminale
k8sgpt analyze --namespace shop-demo --explain --language italian

Solo alcuni analyzer:

Finestra del terminale
k8sgpt analyze --namespace shop-demo --explain --filter Pod,Service,PersistentVolumeClaim

Output JSON per script e ticket:

Finestra del terminale
k8sgpt analyze --namespace shop-demo --explain --output json | jq '.results[] | {kind, name, error: [.error[].Text], details}'

Link alla documentazione Kubernetes pertinente:

Finestra del terminale
k8sgpt analyze --namespace shop-demo --with-doc

Rigenerare le spiegazioni ignorando la cache:

Finestra del terminale
k8sgpt analyze --namespace shop-demo --explain --no-cache

Mascherare i nomi delle risorse nel prompt (utile se in futuro usi un endpoint non locale):

Finestra del terminale
k8sgpt analyze --namespace shop-demo --explain --anonymize

Tutto il cluster, escluso il rumore dei namespace di sistema:

Finestra del terminale
k8sgpt analyze --explain --filter Pod,Service,PersistentVolumeClaim,Deployment | grep -v -E 'kube-system|local-path-storage'
Finestra del terminale
k8sgpt filters list
Finestra del terminale
k8sgpt filters add Ingress,NetworkPolicy,HorizontalPodAutoScaler
Finestra del terminale
k8sgpt filters remove Log
Finestra del terminale
k8sgpt cache list
Finestra del terminale
k8sgpt cache purge

La configurazione (backend, filtri) è in:

Finestra del terminale
ls ~/Library/Application\ Support/k8sgpt/
Risorsa Errore riportato dagli analyzer
frontend-* immagine non scaricabile, ErrImagePull/ImagePullBackOff
api-* container terminato per OOMKilled, in CrashLoopBackOff
worker-* configmap "worker-config" not found
checkout-* readiness probe fallita, pod non Ready
checkout-svc nessun endpoint, nessun pod corrisponde al selector
orders-db-data StorageClass fast-ssd non trovata

Se un guasto manca, controlla che il relativo analyzer sia attivo con k8sgpt filters list.