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
maintenanceamodeen la secciónspecdel 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_NAMEpor 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_YAMLSustituye
DB_CLUSTER_YAMLpor 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
LivenessyStartupen la secciónspecde 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=mergeEjemplos 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}