Como correr STATEFULSETS 🐶 en KUBERNETES
ฝัง
- เผยแพร่เมื่อ 7 ก.พ. 2025
- Hoy hablamos de StatefulSets, o PetSets, un tipo especial de deployments en donde se mantienen algunas propiedades, ideales para correr clusters de base de datos. En este caso vemos un cluster de mongo en Kubernetes y deployamos una app en node para usarlo.
PR pidiendo el cambio de nombre: github.com/kub...
--
merch.peladone...
Repo con todos los archivos que uso: github.com/pab...
Link para registrarse en Digital Ocean (50 USD de Regalo!)
bit.ly/digital...
Micrófono: Blue Snowball ICE
Cámara: Canon Rebel SL2
Lente: Canon 50mm f/1.8
Laptop: Macbook Pro 15'' 2017
Kit completo: bit.ly/kit-pel...
Mi canal de vlogs: bit.ly/youtube-...
Comunidad de Reddit: bit.ly/reddit-...
Comunidad en Slack: bit.ly/slack-p...
Comprame un cafecito: bit.ly/kofi-pe...
No se como este video tiene tan pocas views, si es oro puro...
cuando vuelves al video y te das cuenta que esto nuevo ahora es cosas de principiante xd
Tengo horas viendo tus videos jaja, me estas salvando de perder mi empleo de un día a otro me cambiaron a Sre
Muy interesante. Faltó crear un persistent volume claim template, aunque sea autoaprovisionando, en /data/db para mantener los datos si el StatefulSet fuese eliminado.
Excelente, me viene bárbaro para recordar y como material para la clase
Hola Pelado Nerd, tengo un poco de lio con StateFulSets, ReplicaSet, Deployment, DaemonSet... Cuando debo utilizar uno u otro? Y porque utilizar un StateFulSet y no un Deployment con un PV?
Muy bueno el video! tengo una duda igual, si quiero que se persista tengo que crear un volumeClaimTemplates para ese StatefulSet? por que de ese forma me genera 1 volume claim por pod del mongo, esta bien asi? o podria crear un PV y un PVC compartido entre todos los nodos?
Hola, en el caso de los volumenes, es posible conectar un volumen a varios pods, lo he intentado adicionando la configuracion de volumen a mi Deployment, pero me tira un error indicando que no puede montar el volumen en el segundo pod porque ya esta en uso.
Muy bueno el vídeo Calvo. Una pregunta: recomiendas utilizar la base de datos en pods de tipo STATEFULSET con AMAZON EKS o por el contrario, utilizar Amazon Relational Database Service (RDS)?
Ni pensarlo, siempre rds si tenés la posibilidad
Hola amigo consulta como administrar el tema de la redundancia de los datos en eks.
Gracias
Soy defensor de los animales, y rescatista. Y prefiero el nombre PetSets!!!
Sensei, una pregunta por que hay mucha gente que no recomienda correr BD en contenedores ?
Me imagino porque es medio dificil administrar los volumenes, pero una vez que lo entendés bien, deberia ser exactamente igual que correrlo afuera de un contenedor. Asi que mi sugerencia es correrlo en un contenedor una vez que entendiste bien como funcionan los volumenes. Saludos!
Pregunta: le estas asignando los 3 mongo db a la app en tu 05-node-app.yml?, o estoy equivocado?, y si es asi, cada vez que haces un request balancea la carga?, o sea mi pregunta es si los datos se guardan en las 3 db al mismo tiempo y cómo lo hace. me perdi esa parte.
Buenas! Eso depende la librería de conexión a mongo en cada app. Generalmente la app se conecta a uno de ellos y le manda los datos ahí. Y el cluster de mongo replica los datos entre ellos automáticamente
Un Replica Set de MongoDB crea un endpoint de esa manera. Abre una de prueba en el servicio AtlasDB y lo podrás comprobar.
Pregunta tonta, ¿Porque en la variable de entorno LBC_DATABASE_URI le diste ese valor? se supone que si le apuntas solo al nombre del servicio mongo kubernetes debería resolver y balancear la cargo, no?
Otra pregunta boba, ¿Porque corres un sidecar, no se puede configurar todo en el mismo container? ¿consume mas recursos no?
Correcto, se podria apuntar al servicio y se balancearía la carga, pero he visto problemas con mongo y balanceadores, generalmente no se usan y se usa directamente apuntarle a cada ip.
Usando un sidecar, todo es mas simple y no tenes que estar tocando los scripts de inicio de una imagen que ya tiene todo andando (mongo) ... tranquilamente podrias crear tu propia imagen y mantenerla vos, agregando tu script ahi dentro.
Buena! Voy a hacer lo mismo pero con mariadb. Saludos!
Muy bueno el vídeo, a modo de recomendación la música de fondo se me hace una mala elección
Le podemos dar nombre de transformes jajajajjajjajaja
Buenas. Antes de nada agradezco tus vídeos que me han ayudado a empezar con kubernetes. Todos los videos me han gustado pero creo a este le falta contenido, no has explicado bien que significa statefulset. He leído que normalmente se utilizan los statefulset cada uno con su volumen, no todos apuntando a la misma carpeta.
kubernetes.io/blog/2017/01/running-mongodb-on-kubernetes-with-statefulsets/
Yo ando intentando montar esto sin usar nube si no un sistema de archivos en máquinas propias, pero creo que no es tan fácil como usar una carpeta.
Acá esta la doc de statefulset: kubernetes.io/es/docs/concepts/workloads/controllers/statefulset/
Basicamente un statefulset es un pod que siempre va a tener el mismo identificador y siempre va a mantener los archivos por mas que lo mates, usa volumenes para esto, eso es todo.
@@PeladoNerd entonces hay añadir un volumen para cada replica no?
Que te parece 13! (Lyrics)