Wartungsmodus für einen Datenbankcluster in Kubernetes verwenden

Wählen Sie eine Dokumentenversion 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 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

  1. Prüfen Sie, ob Prüfungen in einem Datenbankpod 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 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}
      
    2. 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}
      
  2. Setzen Sie mode im Abschnitt spec Ihres DBCluster-Manifests auf maintenance:

    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 der Manifestdatei dieses Datenbankclusters, z. B. alloydb-omni-db-cluster.yaml.

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