Wenn Ihre Datenbank in einem Kubernetes-Cluster ausgeführt wird, können Sie sie in den Wartungsmodus versetzen, indem Sie Liveness-Probes und Startup-Probes deaktivieren, die für Ihre containerisierte Anwendung ausgeführt werden, um sicherzustellen, dass sich der Datenbank-Pod in einem fehlerfreien Zustand befindet. Im Wartungsmodus können Sie einen Pod in den Status „Wird ausgeführt“ versetzen, wenn Sie ein Wartungsupdate durchführen oder den Pod reparieren müssen.
Wartungsmodus aktivieren
Prüfen Sie, ob auf einem Datenbank-Pod Probes vorhanden sind:
Aktivitätsprüfung:
kubectl get po -n NAMESPACE DATABASE_POD_NAME -o jsonpath='{.spec.containers[?(@.name=="database")].livenessProbe}'Ersetzen Sie Folgendes:
NAMESPACE: Der Name eines Namespace, der zum Ausführen Ihrer Datenbank verwendet wird, z. B.db.DATABASE_POD_NAME: der Name des Datenbank-Pods, z. B.al-4017-dbcluster-sample-0.
Das Folgende zeigt eine Beispielausgabe mit einem Liveness-Probe:
{"failureThreshold":3,"httpGet":{"path":"/healthz?","port":8090,"scheme":"HTTP"},"periodSeconds":10,"successThreshold":1,"timeoutSeconds":3}Startprüfung:
kubectl get po -n NAMESPACE DATABASE_POD_NAME -o jsonpath='{.spec.containers[?(@.name=="database")].startupProbe}'Das Folgende zeigt ein Beispiel für die Ausgabe mit einem Startup-Probe:
{"exec":{"command":["/usr/lib/postgresql/15/bin/psql","-hlocalhost","-Ualloydbadmin","-c","SELECT 1"]},"failureThreshold":180,"periodSeconds":10,"successThreshold":1,"timeoutSeconds":1}
Legen Sie
modeim AbschnittspecIhres DBCluster-Manifests aufmaintenancefest:apiVersion: alloydbomni.dbadmin.goog/v1 kind: DBCluster metadata: name: DB_CLUSTER_NAME namespace: NAMESPACE spec: allowExternalIncomingTraffic: false isDeleted: false mode: maintenance primarySpec: ...Ersetzen Sie
DB_CLUSTER_NAMEdurch den Namen dieses Datenbankclusters, z. B.my-db-cluster.Wenden Sie das Manifest an:
kubectl apply -f DB_CLUSTER_YAMLErsetzen Sie
DB_CLUSTER_YAMLdurch den Namen dieser Datenbankclustermanifestdatei, z. B.alloydb-omni-db-cluster.yaml.Prüfen Sie mit den folgenden Befehlen, ob der Wartungsmodus aktiviert ist:
Aktivitätsprüfung:
kubectl get po -n NAMESPACE DATABASE_POD_NAME -o jsonpath='{.spec.containers[?(@.name=="database")].livenessProbe}'Startprüfung:
kubectl get po -n NAMESPACE DATABASE_POD_NAME -o jsonpath='{.spec.containers[?(@.name=="database")].startupProbe}'
Die Ausgabe enthält nicht die Felder
LivenessundStartupim AbschnittspecIhresPOD_NAME-Pods.
Wartungsmodus deaktivieren
Wenn Sie zum Standardverhalten von Datenbankclustern mit laufenden Liveness- und Startup-Probes zurückkehren möchten, entfernen Sie maintenance aus dem Abschnitt spec Ihres DBCluster-Manifests:
kubectl patch dbclusters.alloydbomni.dbadmin.goog DB_CLUSTER_NAME -p '{"spec":{"mode":""}}' --type=merge -n DB_CLUSTER_NAMESPACE --type=mergeBeispielausgaben:
Mit einer Aktivitätsprüfung:
{"failureThreshold":3,"httpGet":{"path":"/healthz?","port":8090,"scheme":"HTTP"},"periodSeconds":10,"successThreshold":1,"timeoutSeconds":3}Mit einer Startprüfung:
{"exec":{"command":["/usr/lib/postgresql/15/bin/psql","-hlocalhost","-Ualloydbadmin","-c","SELECT 1"]},"failureThreshold":180, "periodSeconds":10,"successThreshold":1,"timeoutSeconds":1}