¿Te resulta más fácil leer con fondo crema, un tono de color, más contraste o un texto más grande? Elige tus colores y tu texto una sola vez, para todas las páginas.

Lección gratuita

Nodos, namespaces y pods en Kubernetes

Después de esta lección: Puedo decir qué son un nodo, un namespace y un pod.

Lección de 50 min10 comandosLaboratorio de Kubernetes: un clúster k3s de un nodo para cada alumno en una VM Ubuntu privada

Kubernetes mantiene programas en marcha

Kubernetes es un programa que mantiene en marcha otros programas dentro de un conjunto de ordenadores. Si sabes leer lo que te cuenta, sabes en qué estado está tu aplicación.

Una librería online vende libros las veinticuatro horas. Su web, su gestor de pedidos y su buscador son tres programas distintos. Alguien tiene que vigilar que los tres sigan funcionando. Hoy aprendes a mirar ese trabajo en un clúster de verdad.

Al final de esta lección

Nota

Puedo decir qué son un nodo, un namespace y un pod.

Palabras clave

PalabraQué significaEjemplo
Clústerel conjunto de máquinas que usa Kubernetes
Nodouna máquina del clúster
Namespaceuna carpeta con nombre que agrupa cosaskube-system
Poduna copia en marcha de un programa
Contenedorun programa y lo que necesita, aislado de los demás
kubectlla orden que habla con el clúster

Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.

Un clúster es un grupo de nodos

Un clúster es el conjunto de máquinas que usa Kubernetes. Cada máquina es un nodo. Una empresa real tiene decenas de nodos. En este laboratorio hay uno solo: la máquina virtual entera.

La orden kubectl habla con el clúster. kubectl get lista cosas de un tipo. Con kubectl get nodes ves los nodos y su estado.

Las columnas de kubectl get nodes

ColumnaQué diceUn valor posible
NAMEEl nombre del nodoel de tu máquina
STATUSSi puede recibir trabajoReady
ROLESSi además dirige el clústercontrol-plane
VERSIONLa versión de k3s que correv1.35.9+k3s1

Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.

Lista los nodos del clúster

Comando
kubectl get nodes

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Lista los namespaces del clúster

Comando
kubectl get namespaces

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

¿Qué hace un namespace?

Un namespace o espacio de nombres agrupa las cosas de una aplicación o de un equipo. Dos equipos pueden usar el mismo nombre sin chocar, porque cada uno trabaja en el suyo.

Kubernetes trae sus namespaces: default, kube-system, kube-public y kube-node-lease. En kube-system viven los pods que el propio Kubernetes necesita, como el que resuelve nombres. La opción -n dice en qué namespace mirar.

Mira los pods propios de Kubernetes

Comando
kubectl get pods -n kube-system

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Un pod envuelve a un contenedor

Un pod es lo más pequeño que Kubernetes ejecuta. Contiene un contenedor, o a veces varios que comparten red. Tiene un nombre y una dirección propia, y vive en un nodo.

Un pod se crea a partir de una imagen, el archivo de partida del contenedor. Esta máquina no puede descargar imágenes de internet. Todos los pods usan busybox:1.37.0, una caja de herramientas diminuta que ya está dentro.

Crea tu propio namespace, almacen

Comando
kubectl create namespace almacen

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Crea un pod llamado caja en ese namespace

Comando
kubectl run caja --image=busybox:1.37.0 -n almacen -- sleep 3600

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Lista los pods de almacen

Comando
kubectl get pods -n almacen

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Pregunta con qué imagen corre caja

Comando
kubectl get pod caja -n almacen -o jsonpath='{.spec.containers[0].image}'

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Un error frecuente

Advertencia

Mucha gente cree que un pod y un contenedor son lo mismo. No lo son: el pod envuelve al contenedor y es lo que Kubernetes cuenta, nombra y reinicia. Como casi todos los pods llevan un solo contenedor, la confusión es fácil. Pregunta siempre por el pod.

READY y STATUS dicen si un pod funciona

kubectl get pods imprime una fila por pod. READY muestra los contenedores listos y los totales: 1/1 está bien y 0/1 no. STATUS dice en qué fase está el pod. RESTARTS cuenta las veces que se reinició sin que lo pidieras.

Mira siempre las dos columnas juntas: un pod puede estar Running y tener 1/2 listos.

Ejemplo: qué significa cada estado

STATUSQué significaQué haces
RunningEl pod funcionaMira READY por si falta algo
ContainerCreatingSe está preparandoEspera unos segundos
PendingTodavía no tiene sitio en un nodoLee la lección 5
CrashLoopBackOffArranca y se cae una y otra vezLee la lección 5

Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.

Borra el pod caja

Comando
kubectl delete pod caja -n almacen --grace-period=1

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Comprueba que no vuelve

Comando
kubectl get pods -n almacen

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Borra el namespace y todo lo que tiene

Comando
kubectl delete namespace almacen

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Sobre este laboratorio y su código: Laboratorio de Kubernetes: un clúster k3s de un nodo para cada alumno en una VM Ubuntu privada

¿Enseñas a una clase? Asigna este módulo a tus alumnos con guía del profesor, tareas con corrección automática y un laboratorio para cada alumno.