Kubectx: gestire i contesti
Ti sarà capitato in passato di avere a che fare con i contesti in Kubernetes: questi semplificano notevolmente la vita di chi ha bisogno di interfacciarsi con cluster e namespace diversi e vuole risparmiare qualche comando per passare dall’uno all’altro, invece di eseguire ogni volta comandi come il seguente.
kubectl config set-context --current --namespace=test
Se vuoi approfondire il tema e vedere la differenza con i namespace, ne abbiamo parlato in [questo] (https://theredcode.it/kubernetes/kubectl-namespace-vs-context) articolo.
kubectx è un ottimo strumento per la gestione e la manipolazione dei contesti tramite kubectl, agendo essenzialmente come un tool intuitivo per gestire i file di configurazione Kubernetes e facilitando il cambiamento di contesto.
Per installarlo, è sufficiente seguire quanto riportato nella documentazione ufficiale a seconda del proprio sistema operativo: nel caso di Linux, è possibile eseguire i comandi riportati di seguito.
sudo git clone https://github.com/ahmetb/kubectx /opt/kubectx
sudo ln -s /opt/kubectx/kubectx /usr/local/bin/kubectx
sudo ln -s /opt/kubectx/kubens /usr/local/bin/kubens
Le istruzioni per l’uso sono piuttosto semplici: per cambiare contesto, è sufficiente eseguire il comando seguente:
kubectx [CONTEXT-NAME]
Ad esempio, kubectx demo-context imposta il contesto corrente su “demo-context”, ricercando le informazioni relative alla configurazione nel file ~/.kube/config.
Invece, per elencare tutti i contesti attualmente configurati, è possibile eseguire il solo comando kubectx senza parametri, così che vengano mostrati tutti quelli disponibili.
Con kubectx è possibile anche rinominare dei contesti: per identificare facilmente il contesto e assegnare un nuovo nome, utilizzare il simbolo = ed eseguire il comando seguente:
kubectx demo-context=dev-context
>>>
Context "dev-context" renamed to "demo-context".
In questo esempio, dev-context rappresenta il vecchio nome, mentre demo-context quello che assumerà d’ora in poi il contesto.
Pensavi fosse finita qui? Ovviamente con kubectx puoi anche eliminare dei contesti: per rimuovere un contesto, utilizza l’opzione -d, seguita dal nome del contesto, in questo modo:
kubectx -d demo-context
>>>
Deleting context "demo-context"...
deleted context demo-context from /home/ssensini/.kube/config