Tengo una aplicación que tiene algunas configuraciones de usuario y se ejecuta en el clúster de kubernetes. Me gustaría que la configuración del usuario sobreviviera al bloqueo de la aplicación/reinicio del pod.
Primero estaba pensando en tener una instancia de base de datos para mantenerla fuera de kubernetes. Entonces pensé, tal vez podría abusar de etcd para almacenar una pequeña cantidad de datos personalizados. ¿Es un buen enfoque mantener las cosas simples?
Otras opciones que veo:
¿Qué usarías? Su muy pequeña cantidad de datos.
puede usar Persistent Volume Persistent Volume claim de volumen persistente. Persistent Volume claim o pvc conservará los datos en caso de que se reinicie o se bloquee el módulo. Creo que esta es la mejor manera de almacenar datos de usuario. puede tener el tipo de almacenamiento y el tamaño de recursos adecuados según sus necesidades. puedes buscar en el documento oficial. Árbitro
Si desea usar etcd, una base de datos integrada de Kubernetes, no es realmente adecuada para este propósito y no debería usarse en la práctica. La aplicación no debería saber acerca de Kubernetes. Debe usar DB o PVC para almacenar objetos relacionados con la aplicación en un disco (por ejemplo, json, yaml u otros archivos).
Podría usar etcd, sin embargo, es probable que sea excesivo para los requisitos que describió anteriormente. Si está seguro de que desea almacenar información con estado en k8s, le sugiero montar un volumen persistente en su implementación y luego usar un almacén de archivos como BoltDB ( https://github.com/boltdb/bolt ) para interactuar con él.
Dicho esto, creo que ejecutar una base de datos SQL simple fuera de k8s es la solución general más simple. Cualquier cosa con estado nunca es simple con kubernetes y de esta manera puede administrar fácilmente la base de datos.