kubernetes – Cómo aumentar el tamaño del disco en un conjunto con estado

Pregunta:

Estoy gestionando una implementación de Elasticsearch en Kubernetes. Veo que el almacenamiento en disco está casi lleno, por lo que me gustaría aumentar el tamaño de los volúmenes persistentes.

Quiero cambiar este valor en el conjunto con estado:

spec. volumeClaimTemplates[0].spec.resources.requests.storage : "10Gi"

Pero cuando hago esto usando el panel de Kubernetes, recibo el siguiente mensaje:

Error de servidor interno

StatefulSet.apps "es-cluster" no es válido: spec: Forbidden: las actualizaciones de statefulset> spec para campos que no sean 'réplicas', 'plantilla' y 'updateStrategy' están prohibidas.

Esto me hace pensar que tendré que eliminar mi conjunto con estado existente e implementar uno nuevo.

¿Es posible aumentar el almacenamiento en disco por pod sin una interrupción del servicio o pérdida de datos?

Detalle adicional

Tengo varios pods de datos de Elasticsearch y estoy usando el recuento de réplicas = 1, por lo que si puedo eliminarlos y actualizar el almacenamiento en disco un pod a la vez, no debería haber ningún problema. Simplemente no veo cómo hacer esto dada la restricción indicada anteriormente.

Respuesta:

Reunió este procedimiento en base a otros comentarios en https://github.com/kubernetes/kubernetes/issues/68737 . Probé esto en kubernetes 1.14:

  1. kubectl edit pvc <name> para cada PVC en StatefulSet, para aumentar su capacidad.
  2. kubectl delete sts --cascade=orphan <name> para eliminar StatefulSet y dejar sus pods.
  3. kubectl apply -f <name> para recrear el StatefulSet.
  4. kubectl rollout restart sts <name> para reiniciar los pods, uno a la vez. Durante el reinicio, el PVC del pod cambiará de tamaño.

Si desea monitorear lo que está sucediendo, ejecute dos ventanas de shell más con estos comandos, antes de cualquiera de los comandos anteriores:

  • kubectl get pod -w
  • kubectl get pvc -w

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım