es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Escala el conjunto de estados con volumen compartido por zona de disponibilidad.

Me gustaría escalar un conjunto de estados de Kubernetes en EKS que sirve datos estáticos. Los datos se deben compartir siempre que sea posible, lo que significa por zona de disponibilidad.

¿Puedo especificar una plantilla de reclamación de volumen para hacer esto posible? ¿O existe otro mecanismo?

También necesito inicializar el volumen (en un contenedor de inicio) cuando el primer nodo se une. ¿Necesito proporcionar algún mecanismo de bloqueo externo en lugar de simplemente verificar si el volumen está vacío?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Sí, puedes especificar una plantilla de reclamación de volumen en tu manifiesto de StatefulSet de Kubernetes para hacer que el volumen de almacenamiento sea compartido entre las zonas de disponibilidad en Amazon EKS. Puedes establecer la storageClassName en tu plantilla de PVC para usar una clase de almacenamiento que admita la replicación entre las zonas de disponibilidad, como EBS con el parámetro multi-az establecido en true, o utilizar un proveedor de volumen externo como Rook, Portworx o OpenEBS.

    Para inicializar el volumen cuando se une el primer nodo, puedes usar un init-container con un script que comprueba si el volumen está vacío antes de inicializarlo. Sin embargo, dependiendo del tipo de proveedor de almacenamiento que estés utilizando, es posible que necesites implementar un mecanismo de bloqueo externo para asegurarte de que solo un init-container actualice el volumen a la vez. Puedes utilizar primitivas de Kubernetes como ConfigMaps o Secrets como bloqueos, o implementar mecanismos de coordinación más avanzados como DLM (Distributed Lock Manager) para volúmenes de EBS o herramientas externas como ZooKeeper.

Comments are closed.