Se siete arrivati a leggere questo articolo do per scontato conosciate già Kubectl, il non plus ultra della riga di comando per Kubernetes!
Sapevate che Kubectl può acquisire ancora più potenza grazie a Krew?
Krew è uno strumento che semplifica la gestione, l’installazione e l’aggiornamento di tutta una serie di plugin specifici per Kubectl, estendendone di fatto la già ampia funzionalità.
Il suo funzionamento può sembrare molto simile ai tradizionali gestori di pacchetti yum, apt, apk, brew e altri, utilizza un modello basato su repository per distribuire e gestire i plugin. L’installazione di nuovi plugin avviene in modo uniforme, fornendo una procedura standardizzata che semplifica il processo.
Krew semplifica anche il processo di aggiornamento dei plugin, consentendo agli utenti di mantenere facilmente le loro estensioni aggiornate con le ultime funzionalità e correzioni di bug.
Tutto questo avviene direttamente dalla stessa interfaccia di comando Kubectl, gli utenti possono accedere a tutte le funzionalità aggiuntive avendo a disposizione un’ambiente totalmente integrato!
Se è la prima volta che sentite parlare di krew, posso consigliarvi di dare un’occhiata alla documentazione ufficiale QUI
In questo articolo vi mostrerò come installarlo e proveremo alcuni plugin che ho avuto modo di testare.
Prerequisiti
- distribuzione linux
- git installato
Procedimento Basandoci sulla documentazione ufficiale utilizzeremo uno script che si occuperà di installare Krew in autonomia, lo script è il seguente:
(
set -x; cd "$(mktemp -d)" &&
OS="$(uname | tr '[:upper:]' '[:lower:]')" &&
ARCH="$(uname -m | sed -e 's/x86_64/amd64/' -e 's/\(arm\)\(64\)\?.*/\1\2/' -e 's/aarch64$/arm64/')" &&
KREW="krew-${OS}_${ARCH}" &&
curl -fsSLO "https://github.com/kubernetes-sigs/krew/releases/latest/download/${KREW}.tar.gz" &&
tar zxvf "${KREW}.tar.gz" &&
./"${KREW}" install krew
)
dopo che lo script avrà terminato editiamo il file .bashrc inserendo nell’ultima riga l’export path che segue
export PATH="${KREW_ROOT:-$HOME/.krew}/bin:$PATH"
salvate il file e ricaricate la vostra sessione shell, il comando che segue se tutto è andato bene vi restituirà lo stesso output
kubectl krew version
OPTION VALUE
GitTag v0.4.4
GitCommit 343e657
IndexURI https://github.com/kubernetes-sigs/krew-index.git
BasePath /root/.krew
IndexPath /root/.krew/index/default
InstallPath /root/.krew/store
BinPath /root/.krew/bin
DetectedPlatform linux/amd64
Ok a questo punto abbiamo Krew installato, possiamo provare qualche plugin. Testiamo ad’esempio il plugin Tree, come potete vedere per installare il plugin basterà un semplice comando
kubectl krew install tree
La funzione principale del plugin Tree è fornire una rappresentazione visuale ad albero delle risorse all’interno di un cluster Kubernetes. Invece di visualizzare le risorse in un formato tabellare o di elenco, il plugin kubectl tree organizza gerarchicamente le risorse in una struttura ad albero, rendendo più facile comprendere la relazione tra di esse.
Ecco un’esempio con il deployment di Velero
kubectl tree deployment velero -n velero
NAMESPACE NAME READY REASON AGE
velero Deployment/velero - 2y221d
velero ├─ReplicaSet/velero-668d7f99cc - 630d
velero │ └─Pod/velero-668d7f99cc-cqbpf True 287d
velero ├─ReplicaSet/velero-86c77779f6 - 630d
velero └─ReplicaSet/velero-8cb65ddbc - 2y221d
Proviamo poi il plugin Clog che banalmente colora l’output dei logs quando visualizzati da kubectl
kubectl krew install clog
Proviamo il plugin Outdated che come potete immaginare farà una scansione delle immagini utilizzate segnalando tag corrente in utilizzo e versione latest, aiutandoci a individuare quali sarebbe meglio aggiornare…
kubectl krew install outdated
kubectl outdated
Come già scritto, sono presenti una mirade di plugin, al momento ne contiamo 231, vi rimando alla pagina ufficiale e scegliete il plugin che desiderate!