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
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 adalah 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}
Tetapkan
mode
kemaintenance
di bagianspec
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 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}