Superpoteri per Kubernetes con ChatGPT

  • Di
  • 2023-05-16 - 3 minuti
banner

Intro

Se hai provato a chattare con ChatGPT e hai provato delle sensazioni contrastanti dopo le sue fantastiche risposte, allora devi sapere k8sgpt sfrutta ChatGPT per supportarti nel tuo utilizzo di Kubernetes (e anche OpenShift).

Tramite un’analisi delle risorse in esecuzione, consente all’utente di analizzare i problemi del cluster e di fornire suggerimenti più esplicativi -rispetto ai messaggi di errore- per risolvere il problema. Spesso di fronte a un problema ci si trova con pochi indizi, e una soluzione da trovare velocemente: per poter ottenere delle indicazioni più dettagliate su come risolvere il problema, k8sgpt è perfetto.

Installazione

La configurazione è molto semplice: basta scaricare il pacchetto di k8sgpt in base al sistema operativo che verrà usato per eseguire k8sgpt -Linux, Windows o Mac - dalla pagina di rilascio di k8sgpt:

wget https://github.com/k8sgpt-ai/k8sgpt/releases/download/v0.1.1/k8sgpt_Linux_x86_64.tar.gz

tar -xvf k8sgpt_Linux_x86_64.tar.gz

./k8sgpt

In secondo luogo, sarà necessario ottenere una chiave API dal sito web di OpenAI per poter utilizzare questo strumento: tramite il comando sottostante, è possibile ottenere il link per generarla:

k8sgpt generate

Opening: https://beta.openai.com/account/api-keys to generate a key for openaish
Please copy the generated key and run `k8sgpt auth` to add it to your config file

Dopo aver generato e copiato la chiave, possiamo aggiungere questo token al file di configurazione usando il comando seguente:

k8sgpt auth new
>>>
Enter openai Key: MYTOKEN

added to the AI backend provider list

Esempio

Attualmente sono disponibili alcuni analyzer integrati per k8sgpt (come quelli per Pod, PVC, Events, e così via) che permettono di fornire delle descrizioni dettagliate degli oggetti in esecuzione, anche se in futuro sono previste delle ulteriori estensioni.

In altre parole, k8sgpt è in grado di trovare problemi in oggetti Kubernetes come Pod, PVC, Replicaset e Services.

Per tentare un test veloce, è possibile una semplice analisi sarà simile a quella che segue:

# Creazione di un Pod con un'immagine
kubectl run nginx --image=nginx:latest --restart=Never

# Analisi degli eventi prodotti dalle risorse del namespace corrente -di default, risponde in inglese

k8sgpt analyze --explain --filter=Pod
>>>
No problems detected

In effetti, è possibile ottenere la risposta anche in altre lingue. Ad esempio, se si desidera ottenere una risposta in italiano, si può specificare l’opzione in questo modo -attenzione, le traduzioni non sono perfette!:

# Immagine errata
kubectl run nginx --image=nginx:1.2.3 --restart=Never

k8sgpt analyze --explain --language 'Italian'

Every 2,0s: k8sgpt analyze --explain                                                                                                                                                                                                                                                                                                                      edgeblazer-desktop: Tue Mar 28 18:10:56 2023

{   0% |                                                | (0/1, 0 it/hr) [0s:0s]                                                                                   100% |██████████████████████████████████████████████| (1/1, 3182 it/s)
0 default/nginx(nginx): Back-off pulling image "nginx:1.2.3"
I Pod non sono in grado di scaricare e lanciare l'immagine prevista, pertanto è stato attivato un back-off per attendere 
prima di riprovare. La soluzione è assicurarsi che il tag dell'immagine sia specificato correttamente e che non ci siano
problemi di rete che impediscano il download. Verificare inoltre che l'immagine esista e sia accessibile al cluster.

Sviluppi futuri

Il team dietro a k8sgpt ha previsto di aggiungere nuove funzionalità, come ulteriori comandi eseguibili tramite la riga di comando, il supporto ad analyzer personalizzati, e il supporto a modelli di ML.

Quale può essere il vantaggio di uno strumento come questo, anche se ancora in via di sviluppo? Si tratta sicuramente di uno strumento utile che aiuta nella risoluzione dei problemi iniziali, migliorando così l’esperienza operativa di chi lavora su cluster basati su Kubernetes, soprattutto se ci si trova di fronte ad errori imprevisti, o sconosciuti!

Risorse utili

Post correlati

Partners

Community, aziende e persone che supportano attivamente il blog

Logo di Codemotion
Logo di GrUSP
Logo di Python Milano
Logo di Schrodinger Hat
Logo di Python Biella Group
Logo di Fuzzy Brains
Logo di Django Girls
Logo di Improove
Logo del libro open source

Iscriviti alla newsletter

Per non perderti gli ultimi articoli e per vincere biglietti e gadget TheRedCode

Riceverai una volta al mese (o anche meno) gli articoli più interessanti pubblicati sul blog, e potrai provare a vincere un biglietto per uno dei prossimi eventi!

Andiamo!