kubectl
指令列工具的基本知識。
總覽
您可以指示 AlloyDB Omni Kubernetes 運算子為主要資料庫執行個體建立待命副本,在資料庫叢集中啟用 HA。AlloyDB Omni 運算子會設定資料庫叢集,持續更新這個副本上的資料,與主要執行個體上的所有資料變更保持一致。
啟用高可用性
在資料庫叢集上啟用高可用性之前,請確認 Kubernetes 叢集具備下列條件:
- 儲存兩份完整的資料副本
- 並行執行的兩個資料庫執行個體的運算資源
如要啟用 HA,請按照下列步驟操作:
修改資料庫叢集的資訊清單,在
spec
區段下方加入availability
區段。本節會設定numberOfStandbys
參數,定義要新增的備援數量。spec: availability: numberOfStandbys: NUMBER_OF_STANDBYS
將
NUMBER_OF_STANDBYS
替換為要新增的待命節點數量。上限為5
。如果您要設定 HA,但不確定需要多少備援,請先將值設為1
或2
。重新套用資訊清單。
停用高可用性
如要停用 HA,請按照下列步驟操作:
在叢集的資訊清單中,將
numberOfStandbys
設為0
:spec: availability: numberOfStandbys: 0
重新套用資訊清單。
驗證資料庫叢集的高可用性
如要查看資料庫叢集目前的 HA 狀態,請檢查該叢集狀態的 HAReady
條件。如果這個值設為 status
,則表示已設定高可用性,且資料庫叢集正在運作。True
如要在指令列中檢查這個值,請執行下列指令:
kubectl get dbcluster.alloydbomni.dbadmin.goog DB_CLUSTER_NAME -o jsonpath={.status.conditions[?(@.type == \'HAReady\')]} -n NAMESPACE
更改下列內容:
DB_CLUSTER_NAME
:資料庫叢集的名稱。NAMESPACE
:資料庫叢集的命名空間。
容錯移轉至待機執行個體
如果主要執行個體在可設定的時間內無法使用,AlloyDB Omni 運算子會自動從主要資料庫執行個體容錯移轉至待命執行個體。觸發自動容錯移轉的預設時間為 90 秒。
如果主要資料庫在備份完全更新前無法使用,即使可能遺失少量資料,您仍可選擇容錯移轉,從意外故障中快速復原並盡量縮短停機時間。
AlloyDB Omni 運算子支援自動和手動容錯移轉。自動容錯移轉功能預設為啟用。
容錯移轉會導致下列事件順序:
AlloyDB Omni 運算子會將主要資料庫執行個體離線。
AlloyDB Omni 運算子會將待機副本升級為新的主要資料庫執行個體。
AlloyDB Omni 運算子會刪除先前的主要資料庫執行個體。
AlloyDB Omni 運算子會建立新的待命副本。
停用自動容錯移轉
資料庫叢集預設會啟用自動容錯移轉功能。
如要停用容錯移轉,請按照下列步驟操作:
在叢集的資訊清單中,將
enableAutoFailover
設為false
:spec: availability: enableAutoFailover: false
調整自動容錯移轉觸發條件設定
您可以透過設定,調整每個資料庫叢集的自動容錯移轉功能。
AlloyDB Omni 運算子每 30 秒會定期發出健康狀態檢查。如果執行個體達到自動容錯移轉觸發門檻,AlloyDB Omni 運算子就會觸發自動容錯移轉。
自動容錯移轉觸發門檻的預設值為 3
。門檻值是指健康狀態檢查連續失敗的次數,超過這個次數就會觸發容錯移轉。如要變更門檻值,請在叢集的資訊清單中,將 autoFailoverTriggerThreshold
設為整數值:
```yaml
spec:
availability:
autoFailoverTriggerThreshold: TRIGGER_THRESHOLD
```
更改下列內容:
TRIGGER_THRESHOLD
:整數值,代表觸發容錯移轉前,健康狀態檢查連續失敗的次數。預設值為3
。
觸發手動容錯移轉
如要觸發手動容錯移轉,請建立並套用新容錯移轉資源的資訊清單:
apiVersion: alloydbomni.dbadmin.goog/v1
kind: Failover
metadata:
name: FAILOVER_NAME
namespace: NAMESPACE
spec:
dbclusterRef: DB_CLUSTER_NAME
更改下列內容:
FAILOVER_NAME
:這個資源的名稱,例如failover-1
。NAMESPACE
:這個容錯移轉資源的命名空間,必須與其適用的資料庫叢集命名空間相符。DB_CLUSTER_NAME
:要容錯移轉的資料庫叢集名稱。
如要監控容錯移轉,請執行下列指令:
kubectl get failover FAILOVER_NAME -o jsonpath={.status.state} -n NAMESPACE
更改下列內容:
FAILOVER_NAME
:您在建立容錯移轉資源時指派的名稱。NAMESPACE
:資料庫叢集的命名空間。
新的主要資料庫執行個體準備就緒後,指令會傳回 Success
。如要監控新待命執行個體的狀態,請參閱下一節。
切換至待命執行個體
如要測試災難復原設定,或執行任何其他需要切換主要資料庫和待命副本角色的計畫活動,請執行切換作業。
切換完成後,主要資料庫執行個體和待命副本的角色會反轉,複製方向也會反轉。如要更妥善地控管測試災害復原設定的程序,並確保資料不會遺失,請務必選擇切換。
AlloyDB Omni 運算子支援手動切換。
切換作業會導致下列事件依序發生:
AlloyDB Omni 運算子會將主要資料庫執行個體離線。
AlloyDB Omni 運算子會將待機副本升級為新的主要資料庫執行個體。
AlloyDB Omni 運算子會將先前的主要資料庫執行個體切換為待命副本。
執行切換作業
執行切換作業前,請確認下列事項:
- 確認主要資料庫執行個體和待命副本都處於正常狀態。詳情請參閱「管理及監控 AlloyDB Omni」。
- 確認目前的 HA 狀態為
HAReady
。詳情請參閱「驗證資料庫叢集上的高可用性」。
如要執行切換作業,請建立並套用新切換資源的資訊清單:
apiVersion: alloydbomni.dbadmin.goog/v1
kind: Switchover
metadata:
name: SWITCHOVER_NAME
spec:
dbclusterRef: DB_CLUSTER_NAME
newPrimary: STANDBY_REPLICA_NAME
更改下列內容:
SWITCHOVER_NAME
:這個切換資源的名稱,例如switchover-1
。DB_CLUSTER_NAME
:切換作業套用的主要資料庫執行個體名稱。STANDBY_REPLICA_NAME
:要升級為新主資料庫的資料庫執行個體名稱。如要找出待命副本名稱,請執行下列指令:
posix-terminal kubectl get instances.alloydbomni.internal.dbadmin.goog
將待命備用資源做為唯讀執行個體使用
如要將待命副本做為唯讀執行個體,請完成下列步驟:
修改資料庫叢集的資訊清單,將
enableStandbyAsReadReplica
參數設為true
。spec: availability: enableStandbyAsReadReplica: true
重新套用資訊清單。
確認唯讀端點是否回報在
DBCluster
物件的status
欄位中:kubectl describe dbcluster -n NAMESPACE DB_CLUSTER_NAME
下列範例回應顯示唯讀執行個體的端點:
Status: [...] Primary: [...] Endpoints: Name: Read-Write Value: 10.128.0.81:5432 Name: Read-Only Value: 10.128.0.82:5432