k8sgpt offline
Installazione dal registry OCI
Sezione intitolata “Installazione dal registry OCI”helm show values oci://registry.internal/ai/charts/k8sgpt-operator > k8sgpt-operator-values.yamlIndividua le chiavi dell’immagine dell’operator e i pull secret:
grep -n -A3 -E 'image:|repository:|imagePullSecrets' k8sgpt-operator-values.yamlkubectl create namespace k8sgpt-operator-systemkubectl -n k8sgpt-operator-system create secret docker-registry registry-internal --docker-server=registry.internal --docker-username=<user> --docker-password=<token>helm upgrade --install k8sgpt-operator oci://registry.internal/ai/charts/k8sgpt-operator -n k8sgpt-operator-system --set controllerManager.manager.image.repository=registry.internal/ai/k8sgpt-operator --set serviceMonitor.enabled=trueSe il nome della chiave è diverso nella tua versione, usa quello trovato con il grep sopra. Su OpenShift con IDMS applicato non serve cambiare repository.
CR verso l’LLM interno
Sezione intitolata “CR verso l’LLM interno”cat > k8sgpt-offline.yaml <<'EOF2'apiVersion: core.k8sgpt.ai/v1alpha1kind: K8sGPTmetadata: name: k8sgpt-offline namespace: k8sgpt-operator-systemspec: ai: enabled: true backend: localai model: qwen2.5:14b-instruct baseUrl: http://ollama.ai-llm.svc:11434/v1 noCache: false repository: registry.internal/ai/k8sgpt version: v0.4.1 filters: - Pod - Service - PersistentVolumeClaim - Deployment - StatefulSet - CronJob - Ingress - NodeEOF2Con vLLM: baseUrl: http://vllm.ai-llm.svc:8000/v1 e model: qwen2.5-14b-instruct.
kubectl explain k8sgpt.speckubectl apply -f k8sgpt-offline.yamlEtichetta il namespace per la NetworkPolicy di ai-llm (vedi RBAC e sicurezza):
kubectl label namespace k8sgpt-operator-system ai-llm-access=trueVerifica
Sezione intitolata “Verifica”kubectl -n k8sgpt-operator-system get podskubectl -n k8sgpt-operator-system logs deploy/k8sgpt-offline --tail=50kubectl -n k8sgpt-operator-system get results -o custom-columns=KIND:.spec.kind,NAME:.spec.name,PARENT:.spec.parentObjectLimitare lo scope
Sezione intitolata “Limitare lo scope”Su cluster grandi i Result possono essere centinaia. Riduci i filtri ai tipi utili al tuo team e usa l’analisi CLI mirata per i namespace applicativi:
k8sgpt analyze --namespace <app-namespace> --filter Pod,Service --explainDal bastion, la CLI punta allo stesso LLM interno tramite port-forward:
kubectl -n ai-llm port-forward svc/ollama 11434:11434k8sgpt auth add --backend localai --model qwen2.5:14b-instruct --baseurl http://localhost:11434/v1