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
Verifikasi bahwa probe ada di pod database:
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}
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}
Setel
mode
kemaintenance
di bagianspec
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
.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
.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
danStartup
di bagianspec
podPOD_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}