Optimizando el uso de kubectl usando Krew!
Kubectl es una interfaz de línea de comandos para ejecutar comandos sobre despliegues clusterizados de Kubernetes. Esta interfaz es la manera estándar de comunicación con el clúster ya que permite realizar todo tipo de operaciones sobre el mismo. Desde desplegar servicios, pods o volúmenes hasta conseguir toda la información del clúster de Kubernetes. (fuente: Wikipedia)
Una vez que iniciamos el uso de Kubernetes, encontramos que las opciones que nos brinda kubectl son difíciles de recordar, por ejemplo, trabajar en un namespaces. Estar siempre indicando de cual namespace quiero ver los pods es tedioso y a la larga cansa.
Ahí es donde entran los plugins de kubectl que sirven para extender el uso de este CLI. Para sacar partido a esta plataforma de plugins podemos instalar krew.
Krew
Es una herramienta que hace fácil el uso de los plugins de kubectl, nos ayuda a buscar, instalar y actualizar plugins de una manera fácil.
https://github.com/kubernetes-sigs/krew
- For kubectl users: Krew helps you find, install and manage kubectl plugins in a consistent way.
- For plugin developers: Krew helps you package and distribute your plugins on multiple platforms and makes them discoverable.
Instalando Krew
https://krew.sigs.k8s.io/docs/user-guide/setup/install/
Antes de ejecutar el comando de instalación debemos asegurarnos de tener git instalado. Luego agregamos la ruta con los ejecutables necesarios a nuestro PATH.
export PATH=»${KREW_ROOT:-$HOME/.krew}/bin:$PATH»
Probamos que todo funciona ejecutando kubectl krew
Actualmente sigo explorando que plugins mejoraran el uso de kubectl en mi flujo. Por le momento tengo instalado los siguientes.
En mi caso, los más usados son ns y ctx.
ns Switch between Kubernetes namespaces
ctx Switch between contexts in your kubeconfig
Hasta el momento se cuentan con mas de 90 plugins en krew-index.
https://github.com/kubernetes-sigs/krew-index/blob/master/plugins.md
Espero que otros le saquen partido a esto!