Si tu base de datos se ejecuta en un clúster de Kubernetes, puedes ponerla en modo de mantenimiento inhabilitando las pruebas de actividad y las pruebas de inicio, que se ejecutan en tu aplicación en contenedores, para asegurarte de que el pod de la base de datos esté en buen estado. El modo de mantenimiento te permite poner un pod en estado de ejecución cuando necesites hacer una actualización de mantenimiento o reparar el pod.
Habilitar el modo de mantenimiento
Verifica que haya sondas en un pod de base de datos:
Comprobación de actividad:
kubectl get po -n NAMESPACE DATABASE_POD_NAME -o jsonpath='{.spec.containers[?(@.name=="database")].livenessProbe}'
Haz los cambios siguientes:
NAMESPACE
: el nombre de un espacio de nombres que se usa para ejecutar tu base de datos (por ejemplo,db
).DATABASE_POD_NAME
: el nombre del pod de la base de datos, por ejemplo,al-4017-dbcluster-sample-0
.
A continuación se muestra un ejemplo de salida con una sonda de actividad:
{"failureThreshold":3,"httpGet":{"path":"/healthz?","port":8090,"scheme":"HTTP"},"periodSeconds":10,"successThreshold":1,"timeoutSeconds":3}
Comprobación de inicio:
kubectl get po -n NAMESPACE DATABASE_POD_NAME -o jsonpath='{.spec.containers[?(@.name=="database")].startupProbe}'
A continuación, se muestra un ejemplo de salida con una sonda de inicio:
{"exec":{"command":["/usr/lib/postgresql/15/bin/psql","-hlocalhost","-Ualloydbadmin","-c","SELECT 1"]},"failureThreshold":180,"periodSeconds":10,"successThreshold":1,"timeoutSeconds":1}
Asigna el valor
maintenance
amode
en la secciónspec
del archivo de manifiesto de DBCluster:apiVersion: alloydbomni.dbadmin.goog/v1 kind: DBCluster metadata: name: DB_CLUSTER_NAME namespace: NAMESPACE spec: allowExternalIncomingTraffic: false isDeleted: false mode: maintenance primarySpec: ...
Sustituye
DB_CLUSTER_NAME
por el nombre de este clúster de base de datos; por ejemplo,my-db-cluster
.Aplica el archivo de manifiesto:
kubectl apply -f DB_CLUSTER_YAML
Sustituye
DB_CLUSTER_YAML
por el nombre del archivo de manifiesto de este clúster de base de datos. Por ejemplo,alloydb-omni-db-cluster.yaml
.Para verificar que el modo de mantenimiento está habilitado, ejecuta los siguientes comandos:
Comprobación de actividad:
kubectl get po -n NAMESPACE DATABASE_POD_NAME -o jsonpath='{.spec.containers[?(@.name=="database")].livenessProbe}'
Comprobación de inicio:
kubectl get po -n NAMESPACE DATABASE_POD_NAME -o jsonpath='{.spec.containers[?(@.name=="database")].startupProbe}'
La salida no contiene los campos
Liveness
yStartup
en la secciónspec
de tu podPOD_NAME
.
Inhabilitar el modo de mantenimiento
Para volver al comportamiento estándar del clúster de base de datos con las sondas de actividad y de inicio en ejecución, usa el siguiente comando para quitar maintenance
de la sección spec
del manifiesto de DBCluster:
kubectl patch dbclusters.alloydbomni.dbadmin.goog DB_CLUSTER_NAME -p '{"spec":{"mode":""}}' --type=merge -n DB_CLUSTER_NAMESPACE --type=merge
Ejemplos de resultados:
Con una comprobación de actividad:
{"failureThreshold":3,"httpGet":{"path":"/healthz?","port":8090,"scheme":"HTTP"},"periodSeconds":10,"successThreshold":1,"timeoutSeconds":3}
Con una sonda de inicio:
{"exec":{"command":["/usr/lib/postgresql/15/bin/psql","-hlocalhost","-Ualloydbadmin","-c","SELECT 1"]},"failureThreshold":180, "periodSeconds":10,"successThreshold":1,"timeoutSeconds":1}