¿Qué es StatefulSet en Kubernetes?

Autor: | Última modificación: 26 de mayo de 2022 | Tiempo de Lectura: 3 minutos
Temas en este post:

Kubernetes es una de las plataformas que más destacan en el sector tecnológico gracias a las múltiples labores que permite realizar. Estas funciones las llevan a cabo las diferentes opciones con las que cuenta el sistema, entre las que se incluye StatefulSet, un tipo de objeto que se usa para la persistencia y gestión de aplicaciones con estado. Esta opción se caracteriza, además, por su gran utilidad para el manejo de sistemas distribuidos. Por este motivo, en este post, te enseñaremos qué es StatefulSet, cuáles son sus características y cómo utilizarla dentro de la plataforma.

¿Qué es StatefulSet?

La herramienta de StatefulSet en Kubernetes se refiere a un tipo de objeto de la Interfaz de Programación de Aplicaciones de workload, que se utiliza para el manejo de aplicaciones con estado, además de sistemas distribuidos.

Además de esto, este controlador se caracteriza por encargarse de la gestión de los recursos de pods que tienen su base en una especificación idéntica de un terminado container. Aunque sus funciones pueden ser semejantes a las de un controlador Deployment, la herramienta StatefulSet se diferencia en que mantiene una identidad específica que se asocia a los pods que maneja.

De manera que dichos pods se crean partiendo de una misma especificación, pero no tienen la capacidad de intercambiarse. Esto se debe a que cada uno de los recursos de pods cuenta con su propio identificador que contribuye a mantener la persistencia y que funciona durante cualquier proceso de reprogramación que pueda ocurrir.

Características de StatefulSet

StatefulSet se caracteriza por su gestión de aplicaciones con estado que requieren de persistencia de datos para mantener dicho estado. Además de esto, el controlador de Statefulset realiza sus operaciones igual que el resto de controladores de la plataforma de Kubernetes, es decir, primero se establece el estado deseado en el interior de un objeto de la herramienta y, después, StatefulSet se encarga de realizar las modificaciones y actualizaciones que se necesiten para poder alcanzarlo, partiendo del estado actual en el que se encuentre el recurso.

Otra de las propiedades características de StatefulSet es que, para su funcionamiento, requiere un headless service, es decir, un servicio que, en lugar de realizar un equilibrio de carga, cumple con la labor de devolver las direcciones IP de los pods que se tengan asociados. Este servicio debe ser el responsable de la identidad de los pods y es el usuario quien debe crearlo de manera directa.

Usos de StatefulSet

El controlador StatefulSet puede implementarse en las aplicaciones del sistema que requieran de identificadores de red únicos y estables, es decir, puedan ser persistentes entre las reprogramaciones de los recursos de pod. Esto quiere decir que el controlador garantiza el orden y la unicidad de los pods con identificadores persistentes.

🔴 ¿Quieres entrar de lleno al mundo DevOps & Cloud Computing? 🔴

Descubre el DevOps & Cloud Computing Full Stack Bootcamp de KeepCoding. La formación más completa del mercado y con empleabilidad garantizada

👉 Prueba gratis el Bootcamp en DevOps & Cloud Computing por una semana

Además, StatefulSet suele utilizarse cuando una aplicación necesita de un almacenamiento estable y persistente, debido a que es capaz de transformar su estado actual en el estado ideal deseado por el usuario.

Otro de los usos de esta herramienta se enfoca en los recursos de aplicaciones que necesiten mantener un despliegue y escalado con orden y control.

StatefulSet también es capaz de encargarse de las aplicaciones que necesitan actualizaciones en línea y que se caracterizan por ser ordenadas y automatizadas, por lo que permite disminuir el tiempo que se tardaría en realizar estas acciones si se llevaran a cabo de forma manual.

Limitaciones de StatefulSet

Una de las limitaciones y consideraciones a tener en cuenta en el momento de emplear esta opción es, por ejemplo, que al eliminar o reducir un controlador de StatefulSet no se eliminarán los volúmenes que se encuentren asociados al mismo, pues de esa manera se garantiza la seguridad de la información almacenada en los recursos.

Además de esto, debes tener claro que los controladores de StatefulSet no tienen la capacidad de ofrecer ningún tipo de garantía relacionada con la terminación de los recursos de pods una vez se elimina el controlador.

¿Cuál es el siguiente paso?

En este artículo has podido conocer qué es el controlador StatefulSet, además de cuáles son sus características, usos y limitaciones en la plataforma de Kubernetes. Ahora, si has llegado hasta aquí, es porque te interesa profundizar más acerca de esta y otras herramientas del sector tecnológico. Por esta razón, ha llegado el momento de dar el siguiente paso en tu proceso de formación y, para ello, puedes inscribirte en nuestro DevOps & Cloud Computing Full Stack Bootcamp. Si quieres recibir una formación completa de la mano de los mejores profesores y convertirte en un experto del mundo IT en muy pocos meses, este bootcamp es perfecto para ti. ¡Matricúlate y continúa con tu aprendizaje!

[email protected]