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
mode
im Abschnittspec
Ihres DBCluster-Manifests aufmaintenance
fest: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_NAME
durch den Namen dieses Datenbankclusters, z. B.my-db-cluster
.Wenden Sie das Manifest an:
kubectl apply -f DB_CLUSTER_YAML
Ersetzen Sie
DB_CLUSTER_YAML
durch 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
Liveness
undStartup
im Abschnittspec
IhresPOD_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=merge
Beispielausgaben:
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}