Introducción
En Kubernetes, un DaemonSet es un tipo de controlador que garantiza que una copia de un pod se ejecute en cada nodo del clúster. Este laboratorio lo guiará a través del proceso de creación de un DaemonSet para ejecutar réplicas de un pod en cada nodo del clúster.
Iniciar el clúster de Minikube
Antes de crear recursos, necesitas un clúster de Kubernetes en ejecución. Minikube es un entorno ligero de Kubernetes que se ejecuta en tu máquina local.
Navegar a tu directorio de trabajo:
Abre la terminal y navega hasta la carpeta de proyecto predeterminada:
cd /home/labex/projectIniciar Minikube:
Inicia Minikube para inicializar un clúster de Kubernetes:
minikube start- Este comando configura un clúster de Kubernetes de un solo nodo en tu máquina local.
- Minikube puede tardar unos minutos en iniciarse dependiendo del rendimiento de tu sistema.
Verificar que Minikube esté en ejecución:
Comprueba el estado del clúster de Minikube:
minikube status- Busca componentes como
kubeletyapiserverlistados comoRunning(En ejecución). - Si el clúster no está en ejecución, vuelve a ejecutar
minikube start.
- Busca componentes como
Si encuentras problemas al iniciar Minikube, utiliza minikube delete para restablecer el entorno si es necesario.
Crear un Pod
Crea un pod simple que se utilizará como plantilla para las réplicas. Crea un archivo llamado /home/labex/project/myapp-pod.yaml con el siguiente contenido:
apiVersion: v1
kind: Pod
metadata:
name: myapp-pod
spec:
containers:
- name: myapp-container
image: nginx
ports:
- containerPort: 80
Crea el pod utilizando el siguiente comando:
kubectl apply -f /home/labex/project/myapp-pod.yaml
Crear un DaemonSet
Crea un DaemonSet para ejecutar réplicas del myapp-pod en cada nodo del clúster. Crea un archivo llamado /home/labex/project/myapp-daemonset.yaml con el siguiente contenido:
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: myapp-daemonset
spec:
selector:
matchLabels:
app: myapp
template:
metadata:
labels:
app: myapp
spec:
containers:
- name: myapp-container
image: nginx
ports:
- containerPort: 80
Este DaemonSet utiliza el myapp-pod como plantilla para las réplicas y establece el selector matchLabels en app: myapp para garantizar que las réplicas se creen en cada nodo.
Crea el DaemonSet utilizando el siguiente comando:
kubectl apply -f /home/labex/project/myapp-daemonset.yaml
Verificar el DaemonSet
Verifica que el DaemonSet se haya creado y que las réplicas del myapp-pod estén en ejecución en cada nodo. Utiliza el siguiente comando para listar los nodos del clúster:
kubectl get nodes
Utiliza el siguiente comando para listar los pods creados por el DaemonSet:
kubectl get pods -l app=myapp
Deberías ver un pod para cada nodo del clúster.
Actualizar el DaemonSet
Actualiza el DaemonSet para cambiar la imagen utilizada por el myapp-container. Crea un archivo llamado /home/labex/project/myapp-daemonsett-update.yaml con el siguiente contenido:
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: myapp-daemonset
spec:
selector:
matchLabels:
app: myapp
template:
metadata:
labels:
app: myapp
spec:
containers:
- name: myapp-container
image: busybox
command: ["sleep", "3600"]
Este DaemonSet actualizado cambia la imagen utilizada por el myapp-container a busybox y establece el comando en sleep 3600.
Actualiza el DaemonSet utilizando el siguiente comando:
kubectl apply -f /home/labex/project/myapp-daemonset-update.yaml
Verifica que el DaemonSet se haya actualizado y que las réplicas del myapp-pod estén en ejecución con la nueva imagen. Utiliza el siguiente comando para listar los pods creados por el DaemonSet:
kubectl get pods -l app=myapp
Deberías ver nuevos pods creados con la imagen actualizada.
Resumen
En este laboratorio, aprendiste cómo utilizar un DaemonSet en Kubernetes para ejecutar réplicas de un pod en cada nodo del clúster.


