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
modekemaintenancedi bagianspecdari 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_NAMEdengan nama cluster database ini—misalnya,my-db-cluster.Terapkan manifes:
kubectl apply -f DB_CLUSTER_YAMLGanti
DB_CLUSTER_YAMLdengan 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
LivenessdanStartupdi bagianspecpodPOD_NAMEAnda.
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=mergeContoh 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}