
Kubernetes InnoDBCluster: ¿todos los pods deberían compartir un PersistentVolumeClaim?
Siguiente:https://dev.mysql.com/doc/mysql-operator/en/mysql-operator-innodbcluster-simple-kubectl.html
kubectl create namespace mysql-cluster-test
kubectl create secret generic mypwds \
--from-literal=rootUser=root \
--from-literal=rootHost=% \
--from-literal=rootPassword=123456 -n mysql-cluster-test
kubectl apply -f mycluster.yaml -n mysql-cluster-test
Kubectl obtiene pods -n mysql-cluster-test
NAME READY STATUS RESTARTS AGE
mycluster-0 2/2 Running 0 12m
mycluster-1 2/2 Running 0 12m
mycluster-2 2/2 Running 0 12m
mycluster-router-5d87fbd754-zhsrh 1/1 Running 0 10m
kubectl obtiene pvc -n mysql-cluster-test
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
datadir-mycluster-0 Bound pvc-b3bf5f24-99d0-4497-bd34-fd91eb4adc6c 2Gi RWO hostpath 8m9s
datadir-mycluster-1 Bound pvc-1c042c50-bc3f-43f8-8e16-094042495e6d 2Gi RWO hostpath 8m9s
datadir-mycluster-2 Bound pvc-85fbf9f9-d975-4899-a292-d247644cb2d2 2Gi RWO hostpath 8m9s
Hay 3 POD mysql, cada uno de los cuales tiene su propio PVC y está vinculado a diferentes volúmenes. Los datos de MySQL deben almacenarse en un volumen. ¿Todos los POD deberían compartir un PVC?
Respuesta1
Hay 3 POD mysql, cada uno de los cuales tiene su propio PVC y está vinculado a diferentes volúmenes. Los datos de MySQL deben almacenarse en un volumen. ¿Todos los POD deberían compartir un PVC?
MySQL (y otras bases de datos SQL) no están diseñadas para funcionar con almacenamiento compartido. Si desea más de una instancia, cada instancia necesita su propio almacenamiento dedicado. En una configuración de clúster, cada instancia utiliza alguna forma de replicación para mantener actualizada su copia local con otros miembros del clúster.
Generalmente esto es lo que usted desea, incluso sipodríaSi utiliza un único PV compartido, perder el PV significaría que perdería todos sus datos. Al utilizar la replicación, otra instancia del clúster puede asumir la función principal (o puede continuar proporcionando acceso si tiene varias réplicas de lectura/escritura).
Túpodríause un solo volumen y luego use un directorio separado para cada instancia, pero como se señaló anteriormente, eso hace que su almacenamiento sea un único punto de falla (y también un único punto de contención de E/S).
¿Se eliminará el almacenamiento local cuando se elimine un pod?
Si está utilizando almacenamiento efímero para la base de datos, entonces sí. Si coloca la base de datos almacenada en un (no-compartido) PV, entonces no. Usar un fotovoltaico para almacenamiento suele ser el mejor plan; en el caso de un reinicio del Pod (como al actualizar versiones) que minimiza la cantidad de datos que deben transferirse para resincronizar la réplica.