-- Leo's gemini proxy

-- Connecting to thasmanie.fr:1965...

-- Connected

-- Sending request

-- Meta line: 20 text/gemini;lang=fr

K8S : outils kubectl

2020-06-23

retour


Intro

`kubectl` est le client par défaut qui nous interface avec kubernetes, et vu l'ampleur du bousin, quelques plugins et outils peuvent être utiles.

Pour information, j'ai découvert pas mal de choses sur le blog learnk8s.io.

https://learnk8s.io


krew

On commence avec krew, c'est un plugin `kubectl` gestionnaire de plugins, donc c'est lui qui va télécharger les autres, je ne peux pas trop en parler car je ne l'utilise pas :)

En effet je préfère tout télécharger directement, sans aucun mécanisme d'autoupdate car je travaille avec un cluster privé, et quand on un écosystème avec des versions qui marchent ensembles, perso je préfère mettre à jour les outil finement.

https://krew.sigs.k8s.io/


ns et ctx

Ensuite, kubens et kubectx vont permettre de rapidement switcher de cluster ou de namespace, en plus il s'interface avec fzf !

https://github.com/ahmetb/kubectx

https://github.com/junegunn/fzf


k9s

k9s est une interface graphique (dans un terminal) bien pratique

https://raw.githubusercontent.com/derailed/k9s/master/assets/screen_po.png


kubectl-aliases

Je finis avec mon préféré : kubectl-aliases

https://github.com/ahmetb/kubectl-aliases


C'est une collection d'alias bash qui raccourcissent les commandes principales de `kubectl`, quelques exemples :

`kubectl get pods` si on prend les premières lettres devient `kgpo`

`kubectl get svc` pareil pour les services : `kgsvc`

`kubectl describe svc` devient `kdsvc`

`kubectl logs -f <pod name>` devient `klo <pod name>`

`kubectl exec -ti <pod name> -- /bin/bash` devient `kex <pod name> -- /bin/bash`

etc...


C'est plus clair sur le blog learnk8s.

https://learnk8s.io/blog/kubectl-productivity#5-save-typing-with-auto-generated-aliases


Il est même possible de retrouver l'auto-completion (nom de pods avec `kex` par exemple) avec [complete-alias](https://github.com/cykerway/complete-alias)

Voici donc un extrait de mon `.bashrc` :


# alias kubectl from https://github.com/ahmetb/kubectl-aliases
[ -f ~/.kubectl_aliases ] && source ~/.kubectl_aliases
# completion for alias
source ~/.bash_completion
for _a in $(sed '/^alias /!d;s/^alias //;s/=.*$//' ~/.kubectl_aliases); do
  complete -F _complete_alias "$_a"
done

-- Response ended

-- Page fetched on Sun May 5 14:19:35 2024