Wenn Ihre Datenbank in einem Kubernetes-Cluster ausgeführt wird, können Sie sie in den Wartungsmodus versetzen, indem Sie Aktivitäts- und Startprüfungen deaktivieren, die in Ihrer containerisierten Anwendung ausgeführt werden, um sicherzustellen, dass sich der Datenbankpod in einem fehlerfreien Zustand befindet. Im Wartungsmodus können Sie einen Pod in einen laufenden Zustand versetzen, wenn Sie ein Wartungsupdate durchführen oder den Pod reparieren müssen.
Wartungsmodus aktivieren
Prüfen Sie, ob Prüfungen in einem Datenbankpod 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 Datenbankpods, z. B.al-4017-dbcluster-sample-0.
Im Folgenden sehen Sie eine Beispielausgabe mit einer Aktivitätsprüfung:
{"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}'Im Folgenden sehen Sie eine Beispielausgabe 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}
Setzen Sie
modeim AbschnittspecIhres DBCluster-Manifests aufmaintenance: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 der Manifestdatei dieses Datenbankclusters, z. B.alloydb-omni-db-cluster.yaml.Führen Sie die folgenden Befehle aus, um zu prüfen, 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 die Felder
LivenessundStartupnicht im AbschnittspecIhresPOD_NAME-Pods.
Wartungsmodus deaktivieren
Wenn Sie zum Standardverhalten des Datenbankclusters mit laufenden Aktivitäts- und Startprüfungen zurückkehren möchten, entfernen Sie mit dem folgenden Befehl 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}