Entrada

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.

K9s como herramienta de gestión de Kubernetes

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

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)
  • 0 para ver todos los pods en todos los namespaces
  • Ctrl-a para 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 actual
  • Esc - Volver a la vista anterior
  • Ctrl-c - Salir de K9s

Acciones sobre recursos:

  • Enter - Ver detalles del recurso seleccionado
  • d - Describir el recurso (equivalente a kubectl describe)
  • e - Editar el recurso
  • l - Ver logs (solo para pods)
  • Shift-f - Port-forward
  • s - Abrir un shell en el contenedor (solo para pods)
  • Ctrl-d - Eliminar el recurso
  • y - Ver el YAML del recurso

Gestión de namespaces:

  • Ctrl-n - Cambiar de namespace
  • 0 - 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 logs
  • f - Toggle auto-scroll (seguir los logs en tiempo real)
  • w - Toggle wrap (ajustar líneas)
  • Ctrl-c - Limpiar los logs
  • s - 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=value filtra 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
  • :xray seguido de un namespace - Visualizar todas las relaciones entre recursos en un namespace

Edición de recursos

Puedes editar recursos directamente desde K9s:

  1. Selecciona el recurso
  2. Pulsa e
  3. Edita el YAML en tu editor preferido
  4. Guarda y cierra el editor
  5. 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 --readonly para 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.

Referencias

Esta entrada está licenciada bajo CC BY 4.0 por el autor.