En esta página, se muestra cómo poner la base de datos en modo de mantenimiento en un clúster de Kubernetes.
Si tu base de datos se ejecuta en un clúster de Kubernetes, puedes ponerla en modo de mantenimiento inhabilitando los sondeos de estado y los sondeos de inicio, que se ejecutan en tu aplicación contenedorizada, para asegurarte de que el pod de la base de datos esté en buen estado. El modo de mantenimiento te ayuda a colocar un pod en un estado de ejecución cuando necesitas realizar una actualización de mantenimiento o repararlo.
Habilita el modo de mantenimiento
Verifica que los sondeos existan en un pod de base de datos:
Sondeo de estado en funcionamiento:
kubectl get po -n NAMESPACE DATABASE_POD_NAME -o jsonpath='{.spec.containers[?(@.name=="database")].livenessProbe}'
Reemplaza lo siguiente:
NAMESPACE
: Es el nombre de un espacio de nombres que se usa para ejecutar tu base de datos, por ejemplo,db
.DATABASE_POD_NAME
: Es el nombre del pod de la base de datos, por ejemplo,al-4017-dbcluster-sample-0
.
A continuación, se muestra un resultado de muestra con una prueba de estado:
{"failureThreshold":3,"httpGet":{"path":"/healthz?","port":8090,"scheme":"HTTP"},"periodSeconds":10,"successThreshold":1,"timeoutSeconds":3}
Sondeo 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 resultado 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}
Establece
mode
enmaintenance
en la secciónspec
de tu 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: ...
Reemplaza
DB_CLUSTER_NAME
por el nombre de este clúster de bases de datos, por ejemplo,my-db-cluster
.Aplica el manifiesto
kubectl apply -f DB_CLUSTER_YAML
Reemplaza
DB_CLUSTER_YAML
por el nombre de este archivo de manifiesto del clúster de bases de datos, por ejemplo,alloydb-omni-db-cluster.yaml
.Para verificar que el modo de mantenimiento esté habilitado, ejecuta los siguientes comandos:
Sondeo de estado en funcionamiento:
kubectl get po -n NAMESPACE DATABASE_POD_NAME -o jsonpath='{.spec.containers[?(@.name=="database")].livenessProbe}'
Sondeo de inicio:
kubectl get po -n NAMESPACE DATABASE_POD_NAME -o jsonpath='{.spec.containers[?(@.name=="database")].startupProbe}'
El resultado no contiene los campos
Liveness
yStartup
en la secciónspec
de tu podPOD_NAME
.
Inhabilita el modo de mantenimiento
Para volver al comportamiento estándar del clúster de bases de datos con pruebas de inicio y actividad 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
Resultados de muestra:
Con un sondeo de estado en funcionamiento:
{"failureThreshold":3,"httpGet":{"path":"/healthz?","port":8090,"scheme":"HTTP"},"periodSeconds":10,"successThreshold":1,"timeoutSeconds":3}
Con un sondeo de inicio:
{"exec":{"command":["/usr/lib/postgresql/15/bin/psql","-hlocalhost","-Ualloydbadmin","-c","SELECT 1"]},"failureThreshold":180, "periodSeconds":10,"successThreshold":1,"timeoutSeconds":1}