Krew: En qué consiste y para qué sirve

Actualmente los entornos de contenedores, también llamados microservicios, tienen en Kubernetes su principal baluarte, sobre todo en lo que respecta a nivel empresarial. La herramienta de la que vamos a hablar hoy, llamada krew, busca facilitarnos la vida con la gestión de los complementos que funcionan con kubectl, la herramienta principal para trabajar con Kubernetes.

Simplificando, podemos decir que krew es un gestor que facilita el uso de complementos de kubectl. Esto es, nos ayuda a descubrir complementos, instalarlos y administrarlos. Es similar en su funcionamiento a herramientas de paquetería como apt, dnf o brew. Actualmente existen más de 200 complementos de kubectl disponibles desde krew.

Su instalación es bien sencilla, podemos encontrar las instrucciones para GNU/Linux y macOS desde su página web.  Eso sí, debemos tener en cuenta que es compatible únicamente con versiones de kubectl 1.12 o superior, además de necesitar para su instalación git y shells como Bash o ZSH. A partir de aquí ya podemos disponer de los cientos de complementos que ofrece kubectl.

Logo de krew

Trabajando con Krew

Una vez instalado, ya podemos empezar a trabajar. Lo primero que haremos es actualizar los datos de los complementos, para más tarde buscar el complemento que nos interese e instalarlo:

kubectl krew update
kubectl krew search
kubectl krew install nombre-de-complemento

Si nos interesa subir de versión un complemento ya en uso:

kubectl krew upgrade nombre-de-complemento

Y para eliminar complementos:

kubectl krew uninstall nombre-de-complemento

Y para listar los que ya tenemos instalados en el sistema:

kubectl krew list

Algunos ejemplos de complementos

Por ejemplo, el complemento «change-ns«, permite cambiar fácilmente de namespace:

kubectl change-ns nombre-de-namespace

Otro interesante es «view-secret«, podemos ver el valor de los secrets sin hace la decodificación de los hash en formato base64. De esta manera:

kubectl view-secret secret-name
kubectl view-secret "secret-name" "key"

Por último, otro complemento interesante, similar al anterior, llamado «modify-secret«, que nos permite modificar los secretos, desde el editor vi.

kubectl modify-secret secret-name

Si nos interesa ver toda la lista de complementos, hemos de escribir lo siguiente:

kubectl get-all

Y esto es todo. Esta herramienta la iremos viendo en entradas que estoy preparando, en la que trabajaremos en un entorno con Kubernetes.

Fuentes consultadas y para saber más

Documentación de Krew (en inglés)

Krew en Github (en inglés)

Web donde se comentan los plugins que he mencionado