Si votre base de données s'exécute dans un cluster Kubernetes, vous pouvez la mettre en mode maintenance en désactivant les vérifications de l'état et les vérifications de démarrage qui s'exécutent sur votre application conteneurisée. Vous vous assurez ainsi que le pod de la base de données est en bon état. Le mode maintenance vous permet de placer un pod en état d'exécution lorsque vous devez effectuer une mise à jour de maintenance ou réparer le pod.
Activer le mode de maintenance
Vérifiez que des sondes existent sur un pod de base de données :
Vérification de l'activité :
kubectl get po -n NAMESPACE DATABASE_POD_NAME -o jsonpath='{.spec.containers[?(@.name=="database")].livenessProbe}'
Remplacez les éléments suivants :
NAMESPACE
: nom d'un espace de noms utilisé pour exécuter votre base de données (par exemple,db
).DATABASE_POD_NAME
: nom du pod de base de données, par exempleal-4017-dbcluster-sample-0
.
Voici un exemple de résultat avec une sonde de vivacité :
{"failureThreshold":3,"httpGet":{"path":"/healthz?","port":8090,"scheme":"HTTP"},"periodSeconds":10,"successThreshold":1,"timeoutSeconds":3}
Vérification du démarrage :
kubectl get po -n NAMESPACE DATABASE_POD_NAME -o jsonpath='{.spec.containers[?(@.name=="database")].startupProbe}'
Voici un exemple de résultat avec une sonde de démarrage :
{"exec":{"command":["/usr/lib/postgresql/15/bin/psql","-hlocalhost","-Ualloydbadmin","-c","SELECT 1"]},"failureThreshold":180,"periodSeconds":10,"successThreshold":1,"timeoutSeconds":1}
Définissez
mode
surmaintenance
dans la sectionspec
du fichier manifeste DBCluster :apiVersion: alloydbomni.dbadmin.goog/v1 kind: DBCluster metadata: name: DB_CLUSTER_NAME namespace: NAMESPACE spec: allowExternalIncomingTraffic: false isDeleted: false mode: maintenance primarySpec: ...
Remplacez
DB_CLUSTER_NAME
par le nom de ce cluster de bases de données, par exemplemy-db-cluster
.Appliquez le fichier manifeste :
kubectl apply -f DB_CLUSTER_YAML
Remplacez
DB_CLUSTER_YAML
par le nom du fichier manifeste de ce cluster de bases de données, par exemplealloydb-omni-db-cluster.yaml
.Pour vérifier que le mode maintenance est activé, exécutez les commandes suivantes :
Vérification de l'activité :
kubectl get po -n NAMESPACE DATABASE_POD_NAME -o jsonpath='{.spec.containers[?(@.name=="database")].livenessProbe}'
Vérification du démarrage :
kubectl get po -n NAMESPACE DATABASE_POD_NAME -o jsonpath='{.spec.containers[?(@.name=="database")].startupProbe}'
La sortie ne contient pas les champs
Liveness
etStartup
dans la sectionspec
de votre podPOD_NAME
.
Désactiver le mode de maintenance
Pour revenir au comportement standard du cluster de base de données avec des sondes de vivacité et de démarrage en cours d'exécution, utilisez la commande suivante pour supprimer maintenance
de la section spec
de votre fichier manifeste DBCluster :
kubectl patch dbclusters.alloydbomni.dbadmin.goog DB_CLUSTER_NAME -p '{"spec":{"mode":""}}' --type=merge -n DB_CLUSTER_NAMESPACE --type=merge
Exemples de résultats :
Avec une vérification d'activité :
{"failureThreshold":3,"httpGet":{"path":"/healthz?","port":8090,"scheme":"HTTP"},"periodSeconds":10,"successThreshold":1,"timeoutSeconds":3}
Avec une vérification du démarrage :
{"exec":{"command":["/usr/lib/postgresql/15/bin/psql","-hlocalhost","-Ualloydbadmin","-c","SELECT 1"]},"failureThreshold":180, "periodSeconds":10,"successThreshold":1,"timeoutSeconds":1}