瞭解 Google Distributed Cloud 故障的影響

Google Distributed Cloud 會優先處理對業務持續性至關重要的功能,藉此限制叢集故障的範圍。瞭解中斷事件對工作負載執行、工作負載管理和生命週期作業的影響,有助於您排定疑難排解的優先順序,並在事件發生時盡可能縮短停機時間。

核心功能類別

Google Distributed Cloud 的核心功能包括下列類別:

  • 執行工作負載:現有工作負載可繼續執行。這是維持業務連續性的最重要考量。即使叢集發生問題,現有工作負載仍可能繼續執行,不會中斷。
  • 管理工作負載:您可以建立、更新及刪除工作負載。即使叢集發生問題,這也是在流量增加時調度工作負載資源的第二重要考量。
  • 管理使用者叢集:您可以管理節點、更新、升級及刪除使用者叢集。這點不如應用程式生命週期考量重要。如果現有節點有可用容量,無法修改使用者叢集就不會影響使用者工作負載。
  • 管理管理員叢集:您可以更新及升級管理員叢集。
    • 如果部署作業使用獨立的管理員和使用者叢集,這項考量最不重要,因為管理員叢集不會託管任何使用者工作負載。如果管理員叢集發生問題,其他叢集上的應用程式工作負載會繼續執行,不會中斷。
    • 如果您使用其他部署模型 (例如混合或獨立),管理員叢集會執行應用程式工作負載。如果管理員叢集發生問題,且控制層故障,您也無法管理應用程式工作負載或使用者叢集元件。

以下各節將使用這些核心功能類別,說明特定類型故障情境的影響。如果故障情境中斷,系統也會盡可能記錄中斷時間長度 (順序)。

節點故障

Google Distributed Cloud 中的節點可能會停止運作,或在網路上無法連線。故障機器所屬的節點集區和叢集不同,故障模式也會有所不同。

控制層節點

下表列出 Google Distributed Cloud 控制層節點的行為:

執行工作負載 管理工作負載 管理使用者叢集 管理管理員叢集
中斷 (時間長度) 不中斷 可能中斷 (不明) 可能中斷 (不明) 可能中斷 (不明)
說明 — 如果節點故障影響非高可用性 (HA) 使用者叢集中的單一控制層節點,或影響 HA 使用者叢集中至少一半的控制層節點,就會發生中斷。使用者叢集的控制層仲裁機制已遺失。 如果節點故障影響非高可用性管理員叢集中的單一控制層節點,或影響高可用性管理員叢集中至少一半的控制層節點,就會造成中斷。管理員叢集的控制層仲裁已遺失。 如果節點故障影響非高可用性管理員叢集中的單一控制層節點,或影響高可用性管理員叢集中至少一半的控制層節點,就會造成中斷。管理員叢集的控制層仲裁已遺失。
恢復 — 詳情請參閱「如何從仲裁遺失中復原」。 詳情請參閱「如何從仲裁遺失中復原」。 詳情請參閱「如何從仲裁遺失中復原」。
預防 — 以高可用性模式部署使用者叢集,盡可能降低服務中斷的可能性。 以高可用性模式部署管理員叢集,盡可能降低服務中斷的可能性。 以高可用性模式部署管理員叢集,盡可能降低服務中斷的可能性。

負載平衡器節點

下表列出 Google Distributed Cloud 中託管負載平衡器的節點行為。本指南僅適用於採用第 2 層模式的套裝組合負載平衡器。如要手動負載平衡,請參閱外部負載平衡器的故障模式:

執行工作負載 管理工作負載 管理使用者叢集 管理管理員叢集
中斷 (時間長度) 可能中斷 (視情況而定) 可能中斷 (視情況而定) 可能中斷 (視情況而定) 可能中斷 (視情況而定)
說明 如果外部工作負載仰賴資料層負載平衡器與叢集中的工作負載通訊,且您只有一個負載平衡器節點,就會發生中斷。 使用者叢集的控制層虛擬 IP 位址位於一個負載平衡器節點上。如果使用者叢集的負載平衡器節點集區不具備高可用性,則會發生中斷。 管理員叢集的控制層虛擬 IP 位址位於一個負載平衡器節點上。如果管理員叢集的負載平衡器節點集區並非高可用性,則會發生中斷。 管理員叢集的控制層虛擬 IP 位址位於一個負載平衡器節點上。如果管理員叢集的負載平衡器節點集區並非高可用性,則會發生中斷。
恢復

如果有多個負載平衡器節點,MetalLB 容錯移轉會在幾秒內發生。

如果不是高可用性,請考慮部署其他負載平衡器節點。

如果是高可用性,容錯移轉會自動執行,且只需幾秒鐘。

如果不是高可用性,請考慮部署其他負載平衡器節點

如果是高可用性,容錯移轉會自動執行,且只需幾秒鐘。

如果不是高可用性,請考慮部署其他負載平衡器節點。

如果是高可用性,容錯移轉會自動執行,且只需幾秒鐘。

如果不是高可用性,請考慮部署其他負載平衡器節點。

預防 為盡可能降低中斷的可能性,請以高可用性模式部署負載平衡器節點集區。 為盡可能降低中斷的可能性,請以高可用性模式部署負載平衡器節點集區。 為盡可能降低中斷的可能性,請以高可用性模式部署負載平衡器節點集區。 如要盡可能降低中斷的可能性,請以高可用性模式部署負載平衡器節點集區。

worker 節點

下表概述 Google Distributed Cloud 中 worker 節點的行為:

執行工作負載 管理工作負載 管理使用者叢集 管理管理員叢集
中斷 (時間長度) 可能中斷 (幾秒) 不中斷 不中斷 不中斷
說明

在故障節點上執行的 Pods 會中斷,並自動重新排程至其他健康狀態良好的節點,預設的淘汰逾時時間為 5 分鐘。

如果使用者應用程式有閒置的工作負載容量,且分散在多個節點,則實作重試的用戶端不會觀察到中斷情形。

Pods 會在健康狀態良好的節點上自動重新啟動。

如果叢集沒有備用容量,中斷情形可能會持續到叢集新增節點為止。

— — —
恢復 如果叢集沒有備用容量,您必須部署更多節點,並分散在多個故障可用區,然後將失敗的工作負載移至新節點。 — — —
預防

部署分散在多個故障可用區的節點。

部署工作負載時,將多個副本分散在多個故障可用區,盡可能降低中斷的可能性。

— — —

儲存空間故障

Google Distributed Cloud 中的儲存空間可能會停止運作,或無法透過網路連線。視故障的儲存空間而定,故障模式有幾種。

etcd

如果節點不正常關機或儲存空間發生基礎故障,/var/lib/etcd 和 /var/lib/etcd-events 目錄的內容可能會損毀。下表概述 etcd 失敗時,核心功能的行為:

執行工作負載 管理工作負載 管理使用者叢集 管理管理員叢集
中斷 (時間長度) 不中斷 可能中斷 (不明) 可能中斷 (不明) 可能中斷 (不明)
說明 如果現有工作負載不依賴 Kubernetes 控制層,則會繼續運作,不會中斷。 如果 etcd 在單一控制層使用者叢集上失敗,或是在 HA 使用者叢集中至少一半的控制層節點上失敗,就會發生中斷。使用者叢集的控制層仲裁機制已失效。 如果 etcd 在單一控制層管理員叢集上失敗,或是在高可用性管理員叢集中至少一半的控制層節點上失敗,就會發生中斷。管理員叢集的控制層仲裁已遺失。 如果 etcd 在單一控制層管理員叢集上失敗,或是在高可用性管理員叢集中至少一半的控制層節點上失敗,就會發生中斷。管理員叢集的控制層仲裁已遺失。
恢復 — 詳情請參閱「如何從仲裁遺失中復原」。 詳情請參閱「如何從仲裁遺失中復原」。 詳情請參閱「如何從仲裁遺失中復原」。
預防 — 如要盡可能降低服務中斷的可能性,請以高可用性模式部署使用者叢集。 為盡可能降低服務中斷的可能性,請以高可用性模式部署管理員叢集。 為盡可能降低中斷的可能性,請以高可用性模式部署管理員叢集。

使用者應用程式 PersistentVolume

下表列出 PersistentVolume 失敗時,核心功能的行為:

執行工作負載 管理工作負載 管理使用者叢集 管理管理員叢集
中斷 (時間長度) 可能中斷 (不明) 不中斷 不中斷 不中斷
說明 使用失敗 PersistentVolume are affected. 的工作負載 — — —
恢復 — — — —
預防 為盡可能降低服務中斷的可能性,請在高可用性模式下部署使用者工作負載。 — — —

Fluent Bit 磁碟損毀

Fluent Bit 磁碟損毀不會影響任何核心功能,但會影響在 Google Cloud收集及檢查記錄檔的能力。

有時可以從 stackdriver-log-forwarder 的記錄中觀察到 SIGSEGV 事件。這項錯誤可能是磁碟上的緩衝記錄損毀所致。

Fluent Bit 設有機制,可篩除及捨棄損壞的區塊。Google Distributed Cloud 使用的 fluent-bit 版本 (v1.8.3) 提供這項功能。

LoadBalancer 個 IP

如果指派集區中的所有 IP 位址目前都已占用,新建立的 LoadBalancer 服務就無法取得 LoadBalancer IP 位址。這種情況會影響服務用戶端與 LoadBalancer 服務通訊的能力。

如要從 IP 位址耗盡的情況中復原,請修改叢集自訂資源,將更多 IP 位址指派給位址集區。

憑證到期

Google Distributed Cloud 會在叢集安裝程序中,產生自行簽署的憑證授權單位 (CA)。CA 的有效期限為 10 年,負責產生有效期限為一年的憑證。請定期輪替憑證,以免叢集停機。您可以升級叢集來輪替憑證,這是建議的做法。如果無法升級叢集,可以隨選執行 CA 輪替。如要進一步瞭解叢集憑證,請參閱 Kubernetes 說明文件中的「PKI 憑證和規定」。

如果叢集憑證已過期,則必須手動更新。

執行工作負載 管理工作負載 管理使用者叢集 管理管理員叢集
中斷 (時間長度) 不中斷 可能中斷 (不明) 可能中斷 (不明) 可能中斷 (不明)
說明 如果使用者工作負載未與 Kubernetes 控制層元件通訊,就不會中斷。 如果使用者叢集的憑證授權單位到期,服務就會中斷。 如果管理員叢集的憑證授權單位到期,服務就會中斷。 如果使用者叢集的憑證授權單位到期,服務就會中斷。
恢復 —

請按照這裡的步驟,手動更新使用者叢集的憑證。

請按照這裡的步驟,手動更新使用者叢集的憑證。

請按照這裡的步驟,手動更新使用者叢集的憑證。

預防 設定憑證到期監控。您可以在指標清單中找到指標範例 kubelet_certificate_manager_server_expiration_seconds。

升級失敗

執行工作負載 管理工作負載 管理使用者叢集 管理管理員叢集
中斷 (時間長度) 不中斷 不中斷 可能中斷 (不明) 可能中斷 (不明)
說明

如果使用者叢集控制層升級失敗,現有工作負載「不會」中斷。

如果特定 worker 節點的升級作業失敗,系統會清空該節點上的工作負載,並在其他健康狀態良好的節點有額外容量時,將工作負載移至這些節點。

如果任何一個控制層節點升級失敗,升級作業就會停止。如果使用者叢集為高可用性,即使升級失敗,叢集仍可正常運作。 如果管理員叢集控制層升級失敗,服務會中斷,直到升級完成。 如果管理員叢集控制層升級失敗,服務會中斷,直到升級完成。
恢復 — — 升級作業可重試。詳情請參閱如何診斷升級問題並繼續升級。 升級作業可重試。詳情請參閱如何診斷升級問題並繼續升級。
預防 — — 詳情請參閱「在升級前建立備份」。 詳情請參閱「在升級前建立備份」。

後續步驟

如要進一步瞭解已知的產品問題和解決方法,請參閱「Google Distributed Cloud 已知問題」。

如需其他協助,請與 Cloud Customer Care 團隊聯絡。您也可以參閱「取得支援」,進一步瞭解支援資源,包括:

  • 建立客服案件的需求條件。
  • 工具:協助您疑難排解,例如您的環境設定、記錄和指標。
  • 支援的元件。