Wartungsmodus für einen Datenbankcluster in Kubernetes verwenden

Wählen Sie eine Dokumentationsversion aus:

Auf dieser Seite wird beschrieben, wie Sie die Datenbank in einem Kubernetes-Cluster in den Wartungsmodus versetzen.

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

  1. Prüfen Sie, ob auf einem Datenbank-Pod Probes vorhanden sind:

    1. 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}
      
    2. 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}
      
  2. Legen Sie mode im Abschnitt spec Ihres DBCluster-Manifests auf maintenance 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.

  3. 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.

  4. 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 und Startup im Abschnitt spec Ihres POD_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}