Cette page vous explique comment mettre la base de données en mode maintenance dans un cluster Kubernetes.
Si votre base de données s'exécute dans un cluster Kubernetes, vous pouvez la mettre en mode maintenance en désactivant les sondes d'activité et les sondes de démarrage, qui s'exécutent sur votre application conteneurisée, pour vous assurer que le pod de base de données est en bon état. Le mode de 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 exemple,al-4017-dbcluster-sample-0
).
Voici un exemple de sortie avec une sonde de disponibilité:
{"failureThreshold":3,"httpGet":{"path":"/healthz?","port":8090,"scheme":"HTTP"},"periodSeconds":10,"successThreshold":1,"timeoutSeconds":3}
Vérification de démarrage:
kubectl get po -n NAMESPACE DATABASE_POD_NAME -o jsonpath='{.spec.containers[?(@.name=="database")].startupProbe}'
Voici un exemple de sortie 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
de votre 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 exemple,my-db-cluster
).Appliquez le fichier manifeste :
kubectl apply -f DB_CLUSTER_YAML
Remplacez
DB_CLUSTER_YAML
par le nom de ce fichier manifeste de cluster de base de données (par exemple,alloydb-omni-db-cluster.yaml
).Pour vérifier que le mode de 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 de 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 vitalité 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 de l'activité:
{"failureThreshold":3,"httpGet":{"path":"/healthz?","port":8090,"scheme":"HTTP"},"periodSeconds":10,"successThreshold":1,"timeoutSeconds":3}
Avec une vérification de démarrage:
{"exec":{"command":["/usr/lib/postgresql/15/bin/psql","-hlocalhost","-Ualloydbadmin","-c","SELECT 1"]},"failureThreshold":180, "periodSeconds":10,"successThreshold":1,"timeoutSeconds":1}