Menggunakan mode pemeliharaan di cluster database di Kubernetes

Pilih versi dokumentasi:

Halaman ini menunjukkan cara mengaktifkan mode pemeliharaan database di cluster Kubernetes.

Jika database Anda berjalan di cluster Kubernetes, Anda dapat mengaktifkan mode pemeliharaan database dengan menonaktifkan pemeriksaan keaktifan dan pemeriksaan startup, yang berjalan di aplikasi yang di-container, untuk memastikan 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 menunjukkan 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. Setel mode ke maintenance di bagian spec dari 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 pemeriksaan keaktifan dan startup, gunakan perintah berikut untuk menghapus maintenance dari bagian spec 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}