Las workloads o cargas de trabajo en Kubernetes hacen referencia a las aplicaciones ejecutadas en la plataforma que le ofrecen al usuario una serie de funcionalidades nuevas, como, por ejemplo, la opción de no administrar cada uno de los pods de Kubernetes de forma directa, sino usar los recursos de estas cargas de trabajo para que gestionen un conjunto de pods.
Los recursos propios de las cargas de trabajo en Kubernetes se encargan también de la configuración de los controladores en el sistema, que garantizan la ejecución del número y tipo adecuado de pod para que el estado real del sistema pueda coincidir con el estado deseado de este.
Las workloads o cargas de trabajo de Kubernetes también llevan a cabo las tareas relacionadas con el autoescalado de los pods (con herramientas como Horizontal Pod Autoscaling) y el autoescalado de clúster (con opciones como Cluster Autoscaling).
Recursos de cargas de trabajo en Kubernetes
Kubernetes ofrece una serie de recursos integrados para sus cargas de trabajo. Estos permiten realizar labores como la ejecución de pods que rastrean el estado del sistema o la definición de tareas a ejecutarse y luego detenerse, entre otras.
Algunos ejemplos de estos recursos de las cargas de trabajo en Kubernetes son:
- Deployment: se trata de una herramienta de implementación que se encarga de proporcionar actualizaciones declarativas, al tiempo que gestiona las cargas de trabajo en Kubernetes de aplicaciones que no tengan un estado definido en su clúster.
- Replicaset: esta herramienta de las cargas de trabajo en Kubernetes cumple la función de mantener un conjunto estable de los pods de réplica del sistema siendo ejecutados en los momentos en los que le sea indicado. Además, suele utilizarse con el objetivo de asegurar la disponibilidad de una cantidad determinada de pods replicados.
- StatefulSet: esta opción se relaciona con la gestión de las aplicaciones de Kubernetes que sí tengan un estado definido en el clúster. Además de esto, el recurso de cargas de trabajo en Kubernetes StatesfulSet tiene la capacidad de mantener una identidad fija para cada uno de los pods que administra y que tienen como base una especificación de contenedor idéntica.
- DaemonSet: es una herramienta de las cargas de trabajo en Kubernetes que se encarga de garantizar la ejecución de los nodos para una copia de un pod en el sistema, por lo que, cada vez que se van agregando nodos al clúster de Kubernetes, DaemonSet cumple la función de añadir más pods. Además, una vez que se elimina esta opción, se limpian los pods que haya creado durante su ejecución en la plataforma.
- Job: este recurso se utiliza para crear uno o más pods y seguir reintentando la ejecución de estos, hasta que un determinado número de pods pueda finalizar con éxito. A medida que estos pods se completan, la opción job lleva a cabo un registro y seguimiento de las finalizaciones en el sistema. Además, este recurso permite que, una vez alcanzada la cantidad específica de finalizaciones exitosas, la tarea o job se marca como completada.
- CronJob: se encarga de la creación de jobs o tareas de forma repetitiva en un determinado horario.
En este artículo has podido conocer qué son las cargas de trabajo en Kubernetes, cuáles son sus funciones y características principales, así como algunos recursos para su implementación. Ahora, no dudes en dar el siguiente paso y continuar con tu aprendizaje acerca de esta y otras herramientas de Kubernetes a través del DevOps & Cloud Computing Full Stack Bootcamp, donde en tan solo 6 meses podrás conocer todo lo necesario para convertirte en un experto del sector IT y mejorar tus procesos de desarrollo tecnológico. ¡Anímate a inscribirte en nuestro bootcamp y continúa con tu proceso de formación!