kubectl
.
Ringkasan
Anda dapat mengaktifkan HA di cluster database dengan mengarahkan Operator Kubernetes AlloyDB Omni untuk membuat replika standby dari instance database utama Anda. Operator AlloyDB Omni mengonfigurasi cluster database Anda untuk terus memperbarui data di replika ini, yang cocok dengan semua perubahan pada data di instance utama Anda.
Aktifkan HA
Sebelum mengaktifkan HA di cluster database, pastikan cluster Kubernetes Anda memiliki hal berikut:
- Penyimpanan untuk dua salinan lengkap data Anda
- Resource komputasi untuk dua instance database yang berjalan secara paralel
Untuk mengaktifkan HA, ikuti langkah-langkah berikut:
Ubah manifes cluster database untuk menyertakan bagian
availability
di bagianspec
-nya. Bagian ini menentukan jumlah standby yang ingin Anda tambahkan dengan menyetel parameternumberOfStandbys
.spec: availability: numberOfStandbys: NUMBER_OF_STANDBYS
Ganti
NUMBER_OF_STANDBYS
dengan jumlah standby yang ingin Anda tambahkan. Nilai maksimumnya adalah5
. Jika Anda menyiapkan HA dan tidak yakin dengan jumlah siaga yang Anda butuhkan, mulailah dengan menetapkan nilai ke1
atau2
.Terapkan kembali manifes.
Nonaktifkan HA
Untuk menonaktifkan HA, ikuti langkah-langkah berikut:
Setel
numberOfStandbys
ke0
di manifes cluster:spec: availability: numberOfStandbys: 0
Terapkan kembali manifes.
Memverifikasi HA di cluster database
Untuk melihat status HA saat ini dari cluster database, periksa HAReady
kondisi status cluster tersebut. Jika nilai ini memiliki status
yang disetel ke True
,
maka HA telah disiapkan dan berfungsi di cluster database.
Untuk memeriksa nilai ini di command line, jalankan perintah berikut:
kubectl get dbcluster.alloydbomni.dbadmin.goog DB_CLUSTER_NAME -o jsonpath={.status.conditions[?(@.type == \'HAReady\')]} -n NAMESPACE
Ganti kode berikut:
DB_CLUSTER_NAME
: nama cluster database.NAMESPACE
: namespace cluster database.
Melakukan failover ke instance standby
Jika instance utama Anda tidak tersedia selama jangka waktu yang dapat dikonfigurasi, maka Operator AlloyDB Omni akan otomatis melakukan failover dari instance database utama ke instance standby. Waktu default untuk memicu failover otomatis adalah 90 detik.
Pengalihan adalah opsi yang baik jika Anda ingin memulihkan diri dengan cepat dari kegagalan yang tidak terduga dan meminimalkan periode nonaktif, meskipun hal ini berpotensi menyebabkan hilangnya sejumlah kecil data, jika database utama menjadi tidak tersedia sebelum cadangan diperbarui sepenuhnya.
Operator AlloyDB Omni mendukung failover otomatis dan manual. Failover otomatis diaktifkan secara default.
Failover menghasilkan urutan peristiwa berikut:
Operator AlloyDB Omni membuat instance database utama offline.
Operator AlloyDB Omni mempromosikan replika standby menjadi instance database utama yang baru.
Operator AlloyDB Omni menghapus instance database utama sebelumnya.
Operator AlloyDB Omni membuat replika standby baru.
Menonaktifkan failover otomatis
Failover otomatis diaktifkan secara default di cluster database.
Untuk menonaktifkan failover, ikuti langkah-langkah berikut:
Setel
enableAutoFailover
kefalse
di manifes cluster:spec: availability: enableAutoFailover: false
Menyesuaikan setelan pemicu pengalihan otomatis
Anda dapat menggunakan setelan untuk menyesuaikan failover otomatis untuk setiap cluster database.
Operator AlloyDB Omni melakukan pemeriksaan kondisi rutin setiap 30 detik. Jika instance telah mencapai nilai minimum pemicu failover otomatis, Operator AlloyDB Omni akan memicu failover otomatis.
Nilai default untuk nilai minimum pemicu failover otomatis adalah 3
. Nilai minimum
adalah jumlah kegagalan berturut-turut
untuk health check sebelum failover dipicu. Untuk mengubah nilai minimum,
tetapkan autoFailoverTriggerThreshold
ke nilai bilangan bulat dalam manifes cluster:
```yaml
spec:
availability:
autoFailoverTriggerThreshold: TRIGGER_THRESHOLD
```
Ganti kode berikut:
TRIGGER_THRESHOLD
: nilai bilangan bulat untuk jumlah kegagalan berturut-turut untuk health check sebelum failover dipicu. Nilai defaultnya adalah3
.
Memicu failover manual
Untuk memicu failover manual, buat dan terapkan manifes untuk resource failover baru:
apiVersion: alloydbomni.dbadmin.goog/v1
kind: Failover
metadata:
name: FAILOVER_NAME
namespace: NAMESPACE
spec:
dbclusterRef: DB_CLUSTER_NAME
Ganti kode berikut:
FAILOVER_NAME
: nama untuk resource ini—misalnya,failover-1
.NAMESPACE
: namespace untuk resource failover ini, yang harus cocok dengan namespace cluster database yang berlaku.DB_CLUSTER_NAME
: nama cluster database yang akan di-failover.
Untuk memantau failover, jalankan perintah berikut:
kubectl get failover FAILOVER_NAME -o jsonpath={.status.state} -n NAMESPACE
Ganti kode berikut:
FAILOVER_NAME
: nama yang Anda tetapkan ke resource failover saat Anda membuatnya.NAMESPACE
: namespace cluster database.
Perintah ini menampilkan Success
setelah instance database utama baru siap
digunakan. Untuk memantau status instance standby baru, lihat bagian berikutnya.
Pengalihan ke instance standby
Pengalihan dilakukan saat Anda ingin menguji penyiapan pemulihan dari bencana atau aktivitas terencana lainnya yang memerlukan pengalihan peran database primer dan replika standby.
Setelah peralihan selesai, peran instance database utama dan replika standby dibalik bersama dengan arah replikasi. Anda harus memilih pengalihan jika ingin kontrol yang lebih baik atas proses pengujian penyiapan pemulihan bencana dengan nol kehilangan data.
Operator AlloyDB Omni mendukung pengalihan manual.
Pengalihan menghasilkan urutan peristiwa berikut:
Operator AlloyDB Omni membuat instance database utama offline.
Operator AlloyDB Omni mempromosikan replika standby menjadi instance database utama yang baru.
Operator AlloyDB Omni mengalihkan instance database utama sebelumnya ke replika standby.
Melakukan pengalihan
Sebelum Anda melakukan pengalihan, pastikan hal berikut:
- Pastikan instance database utama dan replika standby Anda dalam kondisi baik. Untuk mengetahui informasi selengkapnya, lihat Mengelola dan memantau AlloyDB Omni.
- Verifikasi bahwa status HA saat ini dalam kondisi
HAReady
. Untuk mengetahui informasi selengkapnya, lihat Memverifikasi HA pada cluster database.
Untuk melakukan pengalihan, buat dan terapkan manifes untuk resource pengalihan baru:
apiVersion: alloydbomni.dbadmin.goog/v1
kind: Switchover
metadata:
name: SWITCHOVER_NAME
spec:
dbclusterRef: DB_CLUSTER_NAME
newPrimary: STANDBY_REPLICA_NAME
Ganti kode berikut:
SWITCHOVER_NAME
: nama untuk resource pengalihan ini—misalnya,switchover-1
.DB_CLUSTER_NAME
: nama instance database utama yang menjadi tujuan operasi pengalihan.STANDBY_REPLICA_NAME
: nama instance database yang ingin Anda promosikan sebagai instance utama baru.Untuk mengidentifikasi nama replika standby, jalankan perintah berikut:
posix-terminal kubectl get instances.alloydbomni.internal.dbadmin.goog
Menggunakan replika standby sebagai instance hanya baca
Untuk menggunakan replika standby sebagai instance hanya baca, selesaikan langkah-langkah berikut:
Ubah manifes cluster database untuk menyetel parameter
enableStandbyAsReadReplica
ketrue
.spec: availability: enableStandbyAsReadReplica: true
Terapkan kembali manifes.
Pastikan bahwa endpoint hanya baca dilaporkan di kolom
status
objekDBCluster
:kubectl describe dbcluster -n NAMESPACE DB_CLUSTER_NAME
Contoh respons berikut menunjukkan endpoint instance hanya baca:
Status: [...] Primary: [...] Endpoints: Name: Read-Write Value: 10.128.0.81:5432 Name: Read-Only Value: 10.128.0.82:5432