Menggunakan mode pemeliharaan di cluster database di Kubernetes

Halaman ini menunjukkan cara menempatkan database dalam mode pemeliharaan di cluster Kubernetes.

Jika database berjalan di cluster Kubernetes, Anda dapat menempatkan database dalam mode pemeliharaan dengan menonaktifkan pemeriksaan keaktifan dan pemeriksaan startup, yang berjalan di aplikasi container, untuk memastikan bahwa pod database dalam kondisi baik. Mode pemeliharaan membantu Anda menempatkan pod dalam status berjalan saat Anda perlu melakukan update pemeliharaan atau memperbaiki pod.

Mengaktifkan mode pemeliharaan

  1. Verifikasi bahwa probe ada di pod database:

    1. Pemeriksaan keaktifan:

      kubectl get po -n NAMESPACE DATABASE_POD_NAME  -o jsonpath='{.spec.containers[?(@.name=="database")].livenessProbe}'

      Ganti kode berikut:

      • NAMESPACE: nama namespace yang digunakan untuk menjalankan database Anda—misalnya, db.
      • DATABASE_POD_NAME: nama pod database—misalnya, al-4017-dbcluster-sample-0.

      Berikut adalah contoh output dengan pemeriksaan keaktifan:

      {"failureThreshold":3,"httpGet":{"path":"/healthz?","port":8090,"scheme":"HTTP"},"periodSeconds":10,"successThreshold":1,"timeoutSeconds":3}
      
    2. Pemeriksaan startup:

      kubectl get po -n NAMESPACE DATABASE_POD_NAME -o jsonpath='{.spec.containers[?(@.name=="database")].startupProbe}'

      Berikut ini contoh output dengan probe startup:

      {"exec":{"command":["/usr/lib/postgresql/15/bin/psql","-hlocalhost","-Ualloydbadmin","-c","SELECT 1"]},"failureThreshold":180,"periodSeconds":10,"successThreshold":1,"timeoutSeconds":1}
      
  2. Tetapkan mode ke maintenance di bagian spec manifes DBCluster Anda:

    apiVersion: alloydbomni.dbadmin.goog/v1
    kind: DBCluster
    metadata:
      name: DB_CLUSTER_NAME
      namespace: NAMESPACE
    spec:
      allowExternalIncomingTraffic: false
      isDeleted: false
      mode: maintenance
      primarySpec:
      ...
    

    Ganti DB_CLUSTER_NAME dengan nama cluster database ini—misalnya, my-db-cluster.

  3. Terapkan manifes:

    kubectl apply -f DB_CLUSTER_YAML

    Ganti DB_CLUSTER_YAML dengan nama file manifes cluster database ini—misalnya, alloydb-omni-db-cluster.yaml.

  4. Untuk memverifikasi bahwa mode pemeliharaan diaktifkan, jalankan perintah berikut:

    • Pemeriksaan keaktifan:

      kubectl get po -n NAMESPACE DATABASE_POD_NAME  -o jsonpath='{.spec.containers[?(@.name=="database")].livenessProbe}'
    • Pemeriksaan startup:

      kubectl get po -n NAMESPACE DATABASE_POD_NAME  -o jsonpath='{.spec.containers[?(@.name=="database")].startupProbe}'

    Output tidak berisi kolom Liveness dan Startup di bagian spec pod POD_NAME Anda.

Menonaktifkan mode pemeliharaan

Untuk kembali ke perilaku cluster database standar dengan menjalankan probe startup dan keaktifan, gunakan perintah berikut untuk menghapus maintenance dari bagian spec dalam manifes DBCluster Anda:

kubectl patch dbclusters.alloydbomni.dbadmin.goog DB_CLUSTER_NAME -p '{"spec":{"mode":""}}' --type=merge -n DB_CLUSTER_NAMESPACE --type=merge

Contoh output:

  • Dengan pemeriksaan keaktifan:

    {"failureThreshold":3,"httpGet":{"path":"/healthz?","port":8090,"scheme":"HTTP"},"periodSeconds":10,"successThreshold":1,"timeoutSeconds":3}
    
  • Dengan pemeriksaan startup:

    {"exec":{"command":["/usr/lib/postgresql/15/bin/psql","-hlocalhost","-Ualloydbadmin","-c","SELECT 1"]},"failureThreshold":180,  "periodSeconds":10,"successThreshold":1,"timeoutSeconds":1}