Soy nuevo en GCP así que disculpen la ignorancia.
Tengo un clúster GKE de 3 nodos que ejecuta una aplicación de base de datos. Cada nodo tiene asignado un disco persistente estándar de 100 GB. Sin embargo, de vez en cuando (ha sucedido al menos 3 veces desde agosto) inicio y los datos se pierden y las reglas de firewall que se habían implementado se restablecen a sus valores predeterminados.
¿Cómo puedo:
- Evitar que se borren los datos de la base de datos
- evitar que se restablezcan las reglas del firewall
¿Se debe esto a la mejora de la infraestructura?
Respuesta1
Publicar esta respuesta en la wiki de la comunidad como tema subyacente de la pregunta podría ser un poco amplio.
No dudes en ampliarlo.
¿Por qué un GKE
clúster puede perder datos?
Sin información específica sobre cómo se implementó exactamente la aplicación/carga de trabajo en un GKE
clúster, podría ser difícil identificar el problema real.
Vale la pena mencionar las siguientes cosas:
- Las cargas de trabajo que tienen la expectativa de almacenar datos (como bases de datos) deberían usar
Persistent Volumes
. En caso de falla de un nodo, los datos almacenados en unPV
no se perderán, ya que se almacenarán en una entidad diferente.
PersistentVolume
Los recursos se utilizan para gestionar el almacenamiento duradero en un clúster. EnGKE
, aPersistentVolume
suele estar respaldado por un disco persistente.Cloud.google.com: Kubernetes Engine: Docs: Conceptos: Volúmenes persistentes
Existe una guía para implementar WordPress en GKE con discos persistentes y Cloud SQL. Podría usarse como ejemplo para implementar cargas de trabajo con PVC
(Disco persistente):
Los datos almacenados
Pods
que no tengan ningunoVolumes
configurado se perderán en caso de recreación del pod.Los datos almacenados en un
GKE
disco de inicio de nodo no persisten entre las actualizaciones.
Las modificaciones en el disco de arranque de una máquina virtual de nodo no persisten en las recreaciones de nodos. Para preservar las modificaciones durante la recreación de nodos, utilice un DaemonSet.
Refiriéndose a la pregunta formulada
Soy nuevo en GCP así que disculpen la ignorancia.
Os animo a visitar la documentación oficial de GCP
y GKE
. Puede encontrar que hay mucha información/guías y ejemplos a seguir:
Cada nodo tiene asignado un disco persistente estándar de 100 GB.
Estos discos se usan específicamente como discos de arranque para un GKE
nodo y no deben usarse como lugar para almacenar datos. Puede utilizarlo Persistent Volumes
como se mencionó anteriormente u optar por un SSD local sobre el cual puede leer más siguiendo el siguiente enlace:
Sin embargo, de vez en cuando (ha sucedido al menos 3 veces desde agosto) inicio y los datos se pierden.
GKE
El clúster y los nodos no se pueden desactivar. Lo que puede hacer es reducir (escalar) la cantidad de nodos en un grupo de nodos. ¿Quieres decir que te conectas a él?
cualquier regla de firewall que se haya implementado se restablece a sus valores predeterminados.
No deberías reconfigurar las reglas del firewall de un GKE
nodo. En su lugar, debería utilizar el Firewall de GCP ubicado en Cloud Console
(UI web) -> VPC Network
-> Firewall
. Una recreación de nodo debido a una actualización o falla del nodo restablecerá las reglas del firewall.
¿Cómo puedo:
- Evitar que se borren los datos de la base de datos
- evitar que se restablezcan las reglas del firewall
¿Se debe esto a la mejora de la infraestructura?
Podría considerar (dependiendo de su caso de uso exacto) usar la GCE
instancia en lugar de un GKE
clúster. GKE
es un clúster de Kubernetes administrado diseñado para ejecutar cargas de trabajo en contenedores y algunas de sus partes están administradas por Google (como, por ejemplo, el plano de control).
En cuanto a la actualización de la infraestructura, puede ver lo que sucede cuando se actualiza un clúster siguiendo los enlaces a continuación:
- Cloud.google.com: Kubernetes Engine: Docs: Conceptos: Actualizaciones del clúster
- Cloud.google.com: Kubernetes Engine: Docs: Conceptos: Cómo: Actualizar un clúster
Referencia adicional:
- Kubernetes.io
- Nube.google.com: SQL<- solución alternativa para ejecutar
DB
en GCP