K9s como herramienta de gestión de Kubernetes
Aprende a instalar y trabajar con K9s, una herramienta de línea de comandos para gestionar clústeres de Kubernetes de forma eficiente.
Introducción
Gestionar clústeres de Kubernetes puede ser una tarea compleja, especialmente cuando trabajas con múltiples recursos, namespaces y necesitas realizar acciones rápidas. Aunque kubectl es la herramienta estándar, su uso puede resultar tedioso para tareas cotidianas de monitorización y gestión. K9s surge como una solución que combina la potencia de la línea de comandos con una interfaz interactiva que facilita la gestión y monitorización de tus clústeres Kubernetes de forma más eficiente y visual.
¿Qué es K9s?
K9s es un software de código abierto para gestionar clústeres de Kubernetes desde la línea de comandos. Permite interactuar con los recursos de Kubernetes de manera eficiente y rápida, proporcionando una interfaz de usuario basada en texto con la cual se puede interactuar mediante atajos de teclado para realizar diversas acciones como ver logs, editar recursos, crear y eliminar objetos, entre otros.
¿Por qué usar K9s?
K9s ofrece varias ventajas sobre el uso directo de kubectl:
- Interfaz visual en terminal
- Proporciona una interfaz TUI (Text User Interface) que facilita la navegación y visualización de recursos sin necesidad de memorizar comandos complejos.
- Navegación rápida
- Permite cambiar entre diferentes tipos de recursos y namespaces de forma instantánea con atajos de teclado.
- Monitorización en tiempo real
- Actualiza automáticamente la información de los recursos, permitiendo ver cambios en tiempo real.
- Operaciones comunes simplificadas
- Ver logs, describir recursos, editar configuraciones y ejecutar shells en contenedores son acciones que se realizan con pocas teclas.
- Búsqueda y filtrado eficiente
- Permite buscar y filtrar recursos rápidamente, algo especialmente útil en clústeres grandes.
Instalación de K9s
Existen varios métodos para instalar K9s según tu sistema operativo. Te recomiendo leer el README.md del proyecto en GitHub para ver la opción que mejor se adapte a tu caso.
Instalación en Debian/Ubuntu
En Debian o Ubuntu, puedes instalar K9s descargando el paquete .deb desde GitHub:
1
wget https://github.com/derailed/k9s/releases/latest/download/k9s_linux_amd64.deb && sudo apt install ./k9s_linux_amd64.deb && rm k9s_linux_amd64.deb
Otras formas de instalación
También puedes instalarlo mediante gestores de paquetes:
En macOS con Homebrew:
1
brew install k9s
Desde binarios:
Puedes descargar el binario directamente desde la página de releases y moverlo a tu PATH.
Uso de K9s
Una vez instalado, puedes iniciar K9s simplemente ejecutando el comando k9s en tu terminal. Esto abrirá la interfaz de usuario de K9s y te mostrará la lista de pods en el clúster de Kubernetes al que estás conectado. Esta conexión se realiza a través del archivo de configuración kubeconfig, que generalmente se encuentra en ~/.kube/config.
Puedes cambiar el archivo de configuración modificando la variable de entorno KUBECONFIG o pasando el archivo como argumento al comando k9s:
1
k9s --kubeconfig /ruta/a/tu/kubeconfig
También puedes especificar un contexto específico:
1
k9s --context nombre-del-contexto
O un namespace por defecto:
1
k9s -n nombre-del-namespace
Navegación en K9s
Una vez dentro de K9s y con el clúster seleccionado, puedes navegar por los diferentes recursos de Kubernetes utilizando las teclas de flecha arriba y abajo para moverte entre los elementos de la lista.
Cambiar de vista de recursos
Para cambiar el tipo de recurso que estás viendo, pulsa : y escribe el nombre del recurso, por ejemplo :pods, :deployments, :services, etc. También puedes usar atajos de teclado para acceder rápidamente a diferentes recursos:
:seguido del tipo de recurso (ej::deployments,:pods,:nodes)0para ver todos los pods en todos los namespacesCtrl-apara ver todos los recursos disponibles
Atajos de teclado principales
K9s utiliza atajos de teclado intuitivos para realizar acciones comunes:
Navegación:
?- Mostrar ayuda con todos los atajos disponibles/- Filtrar/buscar en la vista actualEsc- Volver a la vista anteriorCtrl-c- Salir de K9s
Acciones sobre recursos:
Enter- Ver detalles del recurso seleccionadod- Describir el recurso (equivalente akubectl describe)e- Editar el recursol- Ver logs (solo para pods)Shift-f- Port-forwards- Abrir un shell en el contenedor (solo para pods)Ctrl-d- Eliminar el recursoy- Ver el YAML del recurso
Gestión de namespaces:
Ctrl-n- Cambiar de namespace0- Ver recursos en todos los namespaces
Trabajar con logs
Una de las funcionalidades más útiles de K9s es la visualización de logs. Selecciona un pod y pulsa l para ver sus logs. Dentro de la vista de logs:
/- Buscar en los logsf- Toggle auto-scroll (seguir los logs en tiempo real)w- Toggle wrap (ajustar líneas)Ctrl-c- Limpiar los logss- Guardar los logs en un archivo
Si un pod tiene múltiples contenedores, K9s te preguntará cuál quieres ver.
Filtrado y búsqueda
K9s permite filtrar recursos de forma muy eficiente:
/seguido de un texto filtra los recursos mostrados-l label=valuefiltra por labels!delante del texto excluye los elementos que coincidan
Por ejemplo, /nginx mostrará solo los recursos que contengan “nginx” en su nombre.
Funcionalidades avanzadas
Pulses y XRay
K9s incluye una funcionalidad llamada “Pulses” que te permite monitorizar recursos críticos:
:pulses- Ver el estado de recursos críticos del clúster:xrayseguido de un namespace - Visualizar todas las relaciones entre recursos en un namespace
Edición de recursos
Puedes editar recursos directamente desde K9s:
- Selecciona el recurso
- Pulsa
e - Edita el YAML en tu editor preferido
- Guarda y cierra el editor
- K9s aplicará los cambios automáticamente
K9s utiliza el editor definido en la variable de entorno EDITOR o KUBE_EDITOR.
Benchmarks y análisis
K9s también ofrece herramientas para analizar el rendimiento:
:popeye- Ejecuta un análisis de buenas prácticas en tu clúster (requiere tener Popeye instalado):ctx- Cambiar de contexto de Kubernetes rápidamente
Personalización
K9s es altamente personalizable. Puedes configurar:
- Temas de color: K9s soporta temas personalizados en
~/.config/k9s/skin.yml - Aliases: Define aliases para comandos frecuentes en
~/.config/k9s/alias.yml - Plugins: Crea plugins personalizados en
~/.config/k9s/plugin.yml
Por ejemplo, puedes crear un plugin para ejecutar comandos personalizados sobre los recursos seleccionados.
Consejos útiles
- Usa el modo de ayuda: Pulsa
?en cualquier momento para ver los atajos disponibles para la vista actual. - Modo readonly: Puedes iniciar K9s en modo de solo lectura con
k9s --readonlypara evitar cambios accidentales. - Configuración persistente: K9s guarda tu configuración en
~/.config/k9s/, incluyendo el último namespace usado y preferencias de visualización. - Recursos custom: K9s también soporta CRDs (Custom Resource Definitions), permitiéndote gestionar cualquier tipo de recurso de tu clúster.
Conclusión
K9s es una herramienta indispensable para cualquier persona que trabaje con Kubernetes de forma regular. Su interfaz intuitiva, atajos de teclado eficientes y capacidades de monitorización en tiempo real hacen que las tareas cotidianas de gestión de clústeres sean mucho más ágiles y placenteras. Si trabajas frecuentemente con kubectl, definitivamente deberías darle una oportunidad a K9s.