Del curso: Aprende Kubernetes
DaemonSets en Kubernetes - Tutorial de Kubernetes
Del curso: Aprende Kubernetes
DaemonSets en Kubernetes
Un "daemonset" es un tipo de despliegue de Kubernetes que hace que siempre se esté ejecutando un POD determinado en cada uno de los nodos de nuestro clúster. En algunas ocasiones como, por ejemplo, para la monitorización del sistema nos puede interesar este formato. Cuando realizamos un despliegue estándar de Kubernetes, nuestro plano de control lo que hace es buscar sitios libres en los nodos para meter nuestros POD. Ya tengamos una réplica o ya tengamos 10, lo que hace es buscar huecos donde quepan todos los POD que hemos pedido que estén arrancados. Pueden acabar en nodos diferentes o podrían acabar todos en el mismo nodo, dependiendo de los recursos que haya disponibles. Sin embargo, con un "daemonset" lo que hacemos es que exactamente un POD de cada uno de lo que definamos aquí va a ser lanzado en cada uno de los nodos del sistema. La definición de un "daemonset" es prácticamente igual a la de un "deployment". Cambia que las réplicas ya no las definimos, porque solo va a ser una por nodo y podemos borrarlo, y que el tipo de despliegue es un "daemonset". El resto es exactamente igual. Podemos tomar una plantilla de 'deployment' y convertirla de esta manera en un "daemonset". Vamos a lanzar una prueba con este que tenemos aquí, 'kubectl apply -f daemonset'. Y ahora hacemos 'kubectl get daemonsets' y ya lo tenemos disponible. Vemos que sin yo haberle dicho cuántas réplicas tenemos o cuántas réplicas necesitamos de este despliegue, él directamente ha decidido que deseamos cuatro y, por lo tanto, ya están listas cuatro. ¿Por qué? Porque si nosotros hacemos un 'kubectl get nodes', vemos que tenemos cuatro nodos en nuestro clúster. Por lo tanto, lo que ha hecho es lanzar de los POD de Fluentd, que es un recolector de logs, una unidad en cada uno de los nodos que tenemos. Si hacemos 'kubectl get pods', vemos que tenemos cuatro unidades y ahora es cuando podemos ver algo de información adicional. Si nos fijamos, este sería nuestro 'daemonset', que, como hemos visto ahora hace un momento, tiene desplegados cuatro POD. Si vemos los detalles de cada uno de los POD, vemos que este está en el "host IP" 03, que el "host IP" sería la dirección IP del servidor del nodo de Kubernetes, no la dirección IP del POD, este está en la 05, este está en la 04 y este está en la 02. Quiere decir que automáticamente se ha lanzado uno en cada uno de los nodos. Esto va a continuar así siempre que esté el "daemonset" levantado. Si se levanta un nuevo nodo, aparecerá un nuevo POD. Si borramos, claro, alguno del clúster, desaparecerán esos POD junto con el nodo. Si borramos a mano alguno de los POD, volverá a aparecer. Por ejemplo, este que termina en 'nlvzw', vamos a hacer un 'kubectl delete pod nlv zw'. El POD ha desaparecido y automáticamente se ha sustituido por este que termina en '8wdqj'. Por lo tanto, ocurra lo que ocurra dentro de nuestro clúster, se aumente, reduzca, se rompan los POD, los eliminemos a mano o automáticamente, este "daemonset" se va a encargar de que siempre haya uno en cada uno de nuestros nodos. ¿Para qué es útil esto? Pues, por ejemplo, el ejemplo que os estaba enseñando que es para recolectar logs. Cuando recolectamos logs, lo que intentamos es hacerlo en todos los nuevos del sistema y queremos que haya un POD o una aplicación en cada uno de los nodos del sistema que recoja esos logs para nosotros. Puede ser para conectar VPN, puede ser para realizar copias de seguridad. Por ejemplo, que necesitemos un POD en cada uno de los nodos que haga una operativa de realizar una copia de seguridad todos los días. Puede ser para base de datos porque necesitemos un nodo de base de datos en cada uno de los nodos de Kubernetes que tenemos. Por lo tanto, es una especie de despliegue con las mismas características de un despliegue pero que nos puede servir para esas ocasiones especiales que necesitamos específicamente que un POD viva siempre en cada uno de nuestros nodos.
Practica mientras aprendes con los archivos de ejercicios.
Descarga los archivos que el instructor utiliza para enseñar el curso. Sigue las instrucciones y aprende viendo, escuchando y practicando.