Saltar al contenido principal

Perfiles, clientes y dashboards en Kubernetes

Para cerrar la parte común del curso, vamos a ver el ecosistema de herramientas que hacen el día a día con Kubernetes mucho más cómodo: gestión de varios clusters, clientes de terminal, interfaces gráficas y plugins.

Aviso para certificaciones: en los exámenes CKA, CKAD y CKS solo tendrás kubectl (con autocompletado y el alias k). Estas herramientas son para tu día a día profesional; no te apoyes en ellas para preparar el examen.

Perfiles y gestión de múltiples clusters

En cuanto trabajes en serio con Kubernetes, acabarás teniendo varios clusters: el de desarrollo, el de producción, el minikube local... Como vimos en el capítulo de manifiestos, kubectl gestiona esto mediante contextos en el kubeconfig.

Un truco muy útil es que la variable KUBECONFIG admite varios ficheros, y kubectl los fusiona:

export KUBECONFIG=~/.kube/config:~/.kube/cluster-produccion.yaml

# Ver la configuración fusionada y los contextos disponibles
kubectl config view
kubectl config get-contexts
kubectl config use-context produccion

Esto nos permite mantener un fichero por cluster en lugar de un único kubeconfig gigante, y combinarlos cuando lo necesitemos.

kubectx y kubens

Cambiar de contexto y de namespace con kubectl config se hace pesado. Las herramientas kubectx y kubens lo reducen a un comando:

kubectx # Listar contextos
kubectx produccion # Cambiar de cluster
kubectx - # Volver al contexto anterior

kubens # Listar namespaces
kubens kube-system # Cambiar de namespace

k9s: el cliente de terminal

k9s es probablemente la herramienta más querida por la comunidad. Es una interfaz de terminal (TUI) que muestra los recursos del cluster en tiempo real y permite navegar entre ellos con atajos de teclado, al estilo Vim.

k9s # Abre la vista de pods del namespace actual

Una vez dentro, escribe : seguido del recurso (:deploy, :svc, :ns...) para cambiar de vista. Sobre cualquier recurso puedes pulsar l para ver logs, d para describirlo, e para editarlo o s para abrir una shell en el contenedor. Todo lo que harías con varios comandos de kubectl, a golpe de tecla.

Si pasas muchas horas administrando clusters, k9s amortiza su curva de aprendizaje el primer día.

Lens y las GUIs de escritorio

Si prefieres una aplicación gráfica de escritorio, Lens es la más conocida: muestra múltiples clusters, métricas, logs y permite editar recursos desde una interfaz muy pulida. Existe también OpenLens, su variante totalmente open source, y alternativas como Headlamp (proyecto sandbox de la CNCF) o Aptakube.

Y recuerda que el Dashboard oficial de Kubernetes que instalamos en el capítulo anterior cubre el caso de una interfaz web desplegada en el propio cluster.

Krew: plugins para kubectl

Krew es el gestor de plugins de kubectl. Una vez instalado, da acceso a un catálogo de más de doscientos plugins que se integran como subcomandos de kubectl:

kubectl krew install ctx # kubectx como plugin
kubectl krew install ns # kubens como plugin
kubectl krew install tree # Ver jerarquías de objetos (deployment -> rs -> pods)
kubectl krew install neat # Limpiar manifiestos exportados de campos autogenerados
kubectl krew install access-matrix # Matriz de permisos RBAC, muy útil para seguridad

Por ejemplo, kubectl tree deployment nginx-deployment muestra el árbol completo de objetos que cuelga del deployment, algo buenísimo para entender (y enseñar) cómo se relacionan los recursos.

Productividad con kubectl a pelo

Por último, no subestimes lo lejos que se llega solo con la terminal bien configurada. Esto sí aplica a los exámenes:

# Alias k (los simuladores de examen ya lo traen)
alias k=kubectl
complete -o default -F __start_kubectl k # Que el autocompletado funcione con el alias

# Variables de entorno para generar YAML rápido
export do="--dry-run=client -o yaml"
k run nginx --image=nginx $do > pod.yaml

# Borrar recursos sin esperar (ahorra minutos en el examen)
export now="--force --grace-period=0"
k delete pod nginx $now

Resumen

  • Gestiona múltiples clusters con contextos y la variable KUBECONFIG; kubectx/kubens agilizan el cambio.
  • k9s es la navaja suiza en la terminal; Lens/OpenLens/Headlamp las opciones gráficas de escritorio.
  • Krew extiende kubectl con plugins como tree, neat o access-matrix.
  • Para los exámenes: alias k, autocompletado y --dry-run=client -o yaml. Nada más, pero tampoco nada menos.

Con esto cerramos la parte común del curso. A partir de aquí, elige tu especialización: CKA (administración), CKAD (desarrollo) o CKS (seguridad).


Volver al índice