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 節點的行為:
| 執行工作負載 | 管理工作負載 | 管理使用者叢集 | 管理管理員叢集 | |
|---|---|---|---|---|
| 中斷 (時間長度) | 可能中斷 (幾秒) | 不中斷 | 不中斷 | 不中斷 |
| 說明 | 在故障節點上執行的 如果使用者應用程式有閒置的工作負載容量,且分散在多個節點,則實作重試的用戶端不會觀察到中斷情形。
|
— | — | — |
| 恢復 | 如果叢集沒有備用容量,您必須部署更多節點,並分散在多個故障可用區,然後將失敗的工作負載移至新節點。 | — | — | — |
| 預防 | 部署分散在多個故障可用區的節點。 部署工作負載時,將多個副本分散在多個故障可用區,盡可能降低中斷的可能性。 |
— | — | — |
儲存空間故障
Google Distributed Cloud 中的儲存空間可能會停止運作,或無法透過網路連線。視故障的儲存空間而定,故障模式有幾種。
etcd
如果節點不正常關機或儲存空間發生基礎故障,/var/lib/etcd 和 /var/lib/etcd-events 目錄的內容可能會損毀。下表概述 etcd 失敗時,核心功能的行為:
| 執行工作負載 | 管理工作負載 | 管理使用者叢集 | 管理管理員叢集 | |
|---|---|---|---|---|
| 中斷 (時間長度) | 不中斷 | 可能中斷 (不明) | 可能中斷 (不明) | 可能中斷 (不明) |
| 說明 | 如果現有工作負載不依賴 Kubernetes 控制層,則會繼續運作,不會中斷。 | 如果 etcd 在單一控制層使用者叢集上失敗,或是在 HA 使用者叢集中至少一半的控制層節點上失敗,就會發生中斷。使用者叢集的控制層仲裁機制已失效。 |
如果 etcd 在單一控制層管理員叢集上失敗,或是在高可用性管理員叢集中至少一半的控制層節點上失敗,就會發生中斷。管理員叢集的控制層仲裁已遺失。 |
如果 etcd 在單一控制層管理員叢集上失敗,或是在高可用性管理員叢集中至少一半的控制層節點上失敗,就會發生中斷。管理員叢集的控制層仲裁已遺失。 |
| 恢復 | — | 詳情請參閱「如何從仲裁遺失中復原」。 | 詳情請參閱「如何從仲裁遺失中復原」。 | 詳情請參閱「如何從仲裁遺失中復原」。 |
| 預防 | — | 如要盡可能降低服務中斷的可能性,請以高可用性模式部署使用者叢集。 | 為盡可能降低服務中斷的可能性,請以高可用性模式部署管理員叢集。 | 為盡可能降低中斷的可能性,請以高可用性模式部署管理員叢集。 |
使用者應用程式 PersistentVolume
下表列出 PersistentVolume 失敗時,核心功能的行為:
| 執行工作負載 | 管理工作負載 | 管理使用者叢集 | 管理管理員叢集 | |
|---|---|---|---|---|
| 中斷 (時間長度) | 可能中斷 (不明) | 不中斷 | 不中斷 | 不中斷 |
| 說明 | 使用失敗 PersistentVolume 的工作負載 |
— | — | — |
| 恢復 | — | — | — | — |
| 預防 | 為盡可能降低服務中斷的可能性,請在高可用性模式下部署使用者工作負載。 | — | — | — |
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 團隊聯絡。您也可以參閱「取得支援」,進一步瞭解支援資源,包括: