Google Distributed Cloud 軟體僅以 Kubernetes 為基礎,您可以在地端部署於 VMware 或裸機伺服器上。雖然 Distributed Cloud 在地端部署環境中執行,但我們設計這項服務時,基於監控和管理等多種原因,讓其與 Google Cloud 保持永久連線。不過,您可能需要瞭解如果因任何原因(例如技術問題) 失去與 Google Cloud 的連線,會發生什麼情況。本文概述 Distributed Cloud 軟體專用部署作業 (在裸機或 VMware 上) 中,叢集連線中斷的影響,以及在這種情況下可採取的解決方法。
如果架構師需要為 Google Cloud 的非預期或強制中斷連線做好準備,並瞭解其後果,這項資訊就非常實用。不過,請勿將與Google Cloud 中斷連線的純軟體 Distributed Cloud 部署作業,視為一般工作模式。請記住,Distributed Cloud 的設計旨在充分利用 Google Cloud 服務的擴充性和可用性。本文說明各種 Google Cloud 元件的設計和架構,這些元件在暫時中斷期間可與 Distributed Cloud 相容運作。我們無法保證這份文件涵蓋所有內容。
本文假設您已熟悉 GKE。如果不是,建議您先閱讀 GKE 總覽。
授權驗證和計量
如果您已在 Google Cloud 專案中啟用 Anthos API (anthos.googleapis.com),叢集中執行的計量控制器會定期產生及重新整理授權。中斷連線的容許時間為 12 小時。此外,系統也需要連線來管理計量和計費。
下表列出與授權和計量相關的功能行為,以防暫時與 Google Cloud中斷連線:
| 功能 | 連結行為 | 暫時中斷連線行為 | 最大斷線容許值 | 連線中斷的解決方法 |
|---|---|---|---|---|
| 授權驗證 | 只要在 Google Cloud 專案中啟用anthos.googleapis.com,計量控制器就會定期產生及重新整理授權自訂資源。 |
使用授權自訂資源的元件支援寬限期:只要在寬限期內重新整理授權自訂資源,元件就會繼續運作。 | 無上限。寬限期過後,元件會開始記錄錯誤。無法再升級叢集。 | 無 |
| 計量和計費 | 計量控制器會將叢集的 vCPU 容量回報給 Google Cloud Service Control API,以便計費。 | 叢集內代理程式會在連線中斷期間,將帳單記錄保留在叢集中,並在叢集重新連線至 Google Cloud後擷取記錄。 | 無限制。 però, per conformità, è necessario fornire informazioni di misurazione, come indicato nei Termini specifici del servizio per il "Software Premium". | 無 |
叢集生命週期
本節涵蓋的情境包括建立、更新、刪除及調整叢集大小,以及監控這些活動的狀態。
在大多數情況下,您可以使用 bmctl、gkectl 和 kubectl 等 CLI 工具,在暫時中斷連線期間執行作業。您也可以使用這些工具監控這些作業的狀態。重新連線後,Google Cloud 控制台會更新,顯示中斷連線期間執行的作業結果。
| 動作 | 連結行為 | 暫時中斷連線行為 | 最大斷線容許值 | 連線中斷的解決方法 |
|---|---|---|---|---|
| 建立叢集 | 您可以使用 bmctl 或 gkectl CLI 工具建立叢集。這項作業必須連線至 Google Cloud。 |
無法建立叢集。 | 未有 | 無 |
| 升級叢集 | 您可以使用 bmctl 或 gkectl CLI 工具升級叢集。這項作業必須連線至 Google Cloud。 |
無法升級叢集。 | 未有 | 無 |
| 刪除叢集 | 您可以使用 bmctl 或 gkectl CLI 工具刪除叢集。這項作業不需要連線至 Google Cloud。 |
您可以刪除叢集。 | 無限制 | - |
| 查看叢集狀態 | 您可以在控制台的 Google Kubernetes Engine 叢集清單中,查看叢集相關資訊。 | 控制台不會顯示叢集資訊。 | 無限制 | 使用 kubectl 直接查詢叢集,取得所需資訊。 |
| 從叢集移除節點 | 您不需要連線至 Google Cloud ,即可從叢集移除節點。 | 您可以從叢集移除節點。 | 無限制 | - |
| 將節點新增至叢集 | 新節點會從 Container Registry 提取容器映像檔,以便正常運作。系統會執行預檢,驗證是否能連線至 Google Cloud。 | 新增節點時執行的預檢作業會驗證與 Google Cloud的連線。因此,中斷連線時無法在叢集中新增節點。 | 未有 | 無 |
應用程式生命週期
暫時與 Google Cloud 中斷連線,通常不會影響管理在地端部署叢集中執行的應用程式。只有 Connect 閘道會受到影響。如果您使用 Container Registry、 Artifact Registry、Cloud Build 或 Cloud Deploy,在Google Cloud中管理容器映像檔或 CI/CD 管道,則連線中斷時,這些服務將無法使用。如何處理這些產品的斷線問題,不在本文討論範圍內。
| 動作 | 連結行為 | 暫時中斷連線行為 | 最大斷線容許值 | 連線中斷的解決方法 |
|---|---|---|---|---|
| 應用程式部署 | 您可以使用 kubectl、透過 CI/CD 工具或使用 Connect 閘道,在本機部署應用程式。 |
無法使用連結閘道。只要直接連線至 Kubernetes API,所有其他部署方法仍可運作。 | 無限制 | 如果您使用 Connect 閘道,請改為在本機使用 kubectl。 |
| 移除應用程式 | 您可以使用 kubectl、透過 CI/CD 工具或使用 Connect 閘道,在本機移除應用程式。 |
無法使用連結閘道。只要直接連線至 Kubernetes API,所有其他部署方法仍可運作。 | 無限制 | 如果您使用 Connect 閘道,請改為在本機使用 kubectl。 |
| 應用程式水平擴展 | 您可以使用 kubectl、透過 CI/CD 工具或使用 Connect 閘道,在本機水平擴展應用程式。 |
無法使用連結閘道。只要直接連線至 Kubernetes API,所有其他部署方法仍可運作。 | 無限制 | 如果您使用 Connect 閘道,請改為在本機使用 kubectl。 |
記錄和監控
可稽核性有助於貴組織符合法規要求和法規遵循政策。Distributed Cloud 提供應用程式記錄、Kubernetes 記錄和稽核記錄,有助於稽核。許多客戶選擇使用 Google 的 Cloud Logging 和 Cloud Monitoring,避免在地端部署環境管理記錄和監控基礎架構。其他客戶則偏好將記錄集中到地端部署系統進行匯總。為支援這些客戶,Distributed Cloud 支援直接整合 Prometheus 等服務。在這種模式下,暫時與 Google Cloud中斷連線時,記錄或監控功能不會受到影響。
| 功能 | 連結行為 | 暫時中斷連線行為 | 最大斷線容許值 | 連線中斷的解決方法 |
|---|---|---|---|---|
| 使用 Cloud Logging 記錄應用程式 | 系統會將記錄寫入 Cloud Logging。 | 系統會將記錄緩衝至本機磁碟。 | 每個節點 4.5 小時或 4 GiB 的本機緩衝區。當緩衝區填滿或中斷連線持續 4.5 小時,系統就會捨棄最舊的項目。 | 使用本機記錄解決方案。 |
| 使用 Cloud Logging 記錄系統/Kubernetes | 系統會將記錄寫入 Cloud Logging。 | 系統會將記錄緩衝至本機磁碟。 | 每個節點 4.5 小時或 4 GiB 的本機緩衝區。當緩衝區填滿或中斷連線持續 4.5 小時,系統就會捨棄最舊的項目。 | 使用本機記錄解決方案。 |
| 使用 Cloud 稽核記錄功能 | 系統會將記錄寫入 Cloud Logging。 | 系統會將記錄緩衝至本機磁碟。 | 每個控制層節點有 10 GiB 的本機緩衝區。緩衝區填滿時,系統會捨棄最舊的項目。 | 設定將記錄轉送至本機記錄解決方案。 |
| 使用其他供應商的應用程式記錄 | 您可以使用不同的第三方供應商,例如 Elastic、Splunk、Datadog 或 Loki。 | 沒有影響 | 無限制 | - |
| 使用其他供應商的系統/Kubernetes 記錄 | 您可以使用不同的第三方供應商,例如 Elastic、Splunk 或 Datadog。 | 沒有影響 | 無限制 | - |
| 寫入 Cloud Monitoring 的應用程式和 Kubernetes 指標 | 系統會將指標寫入 Cloud Monitoring。 | 系統會將指標緩衝至本機磁碟。 | 每個節點有 24 小時或 6 GiB 的本機緩衝區,用於系統指標;每個節點有 1 GiB 的本機緩衝區,用於應用程式指標。緩衝區填滿或中斷連線達 24 小時後,系統會捨棄最舊的項目 | 使用本機監控解決方案。 |
| 存取及讀取 Kubernetes 和應用程式工作負載的監控資料 | 所有指標都可透過控制台和 Cloud Monitoring API 取得。 | 中斷連線期間,系統不會更新 Cloud Monitoring 中的指標。 | 每個節點有 24 小時或 6 GiB 的本機緩衝區,用於系統指標;每個節點有 1 GiB 的本機緩衝區,用於應用程式指標。緩衝區填滿或中斷連線達 24 小時後,系統會捨棄最舊的項目 | 使用本機監控解決方案。 |
| 指標的警告規則和呼叫 | Cloud Monitoring 支援警告功能。您可以為任何指標建立快訊。系統可透過不同管道傳送警示。 | 系統不會在連線中斷時觸發警示。系統只會根據已傳送至 Cloud Monitoring 的指標資料觸發警告。 | 使用本機監控和快訊解決方案。 |
設定與政策管理
Config Sync 和 Policy Controller 可讓您大規模管理所有叢集的設定和政策。您將設定和政策儲存在 Git 存放區中,系統會自動將這些設定和政策同步至叢集。
Config Sync
Config Sync 會使用叢集內代理程式,直接連線至 Git 存放區。您可以使用 Google Cloud CLI 或 kubectl 工具,管理存放區網址或同步參數的變更。
暫時中斷連線期間,如果叢集內代理程式仍可連上 Git 存放區,同步作業就不會受到影響。不過,如果您使用 gcloud CLI 或控制台變更同步處理參數,叢集不會在中斷連線期間套用這些參數。您可以使用 kubectl 暫時覆寫本機設定。重新連線會覆寫所有本機變更。
Policy Controller
Policy Controller 可為叢集強制執行完全程式化的政策。這些政策可以做為「防護機制」,用來防止任何異動違反您定義的安全性、作業或法規遵循控管規範。
| 動作 | 連結行為 | 暫時中斷連線行為 | 最大斷線容許值 | 連線中斷的解決方法 |
|---|---|---|---|---|
| 從 Git 存放區同步設定 | 叢集內代理程式會直接連線至 Git 存放區。您可以使用 Google Cloud API 變更存放區網址或同步參數。 | 設定同步功能不受影響。如果您使用 gcloud CLI 或在控制台中變更同步處理參數,叢集不會在中斷連線期間套用這些參數。您可以使用 kubectl 在本機暫時覆寫這些設定。重新連線會覆寫所有本機變更。 |
無限制 | 請勿使用 Fleet API 設定 Config Sync,只能使用 Kubernetes API 設定。 |
| 對 Kubernetes API 要求強制執行政策 | 叢集內代理與 Kubernetes API 整合,因此可強制執行限制。您可以使用本機 Kubernetes API 管理政策。您可以使用 Google CloudAPI 管理 Policy Controller 的系統設定。 | 政策執行不受影響。您仍可使用本機 Kubernetes API 管理政策。系統不會使用 Google Cloud API,將 Policy Controller 系統設定的變更傳播至叢集,但您可以在本機暫時覆寫這些設定。重新連線會覆寫所有本機變更。 | 無限制 | 請勿使用 Fleet API 設定 Policy Controller,一律使用 Kubernetes API。 |
| 使用 Google CloudAPI 安裝、設定或升級 Config Sync | 您可以使用 Google Cloud API 管理叢集內代理程式的安裝和升級作業。您也可以使用這個 API (或 gcloud CLI 或控制台) 管理這些代理程式的設定。 | 叢集內代理程式會繼續正常運作。您無法使用 Google Cloud API 安裝、升級或設定叢集內代理程式。重新連線後,系統會繼續執行透過 API 進行的任何待處理安裝、升級或設定作業。 | 未有 | 請勿將 Fleet API 用於 Policy Controller,且只能使用 Kubernetes API 進行設定。 |
| 在控制台中查看系統或同步處理狀態 | 您可以使用 Google Cloud API 或控制台,查看叢集內代理程式的健康狀態和同步狀態。 | Google Cloud API 或控制台中的狀態資訊會過時。API 顯示連線錯誤。您仍可透過本機 Kubernetes API,查看各叢集的資訊。 | 未有 | 使用 nomos CLI 或本機 Kubernetes API。 |
安全性
本節概述與 Google Cloud暫時中斷連線時,身分、驗證、授權和 Secret Manager 等安全防護功能會受到哪些影響。
身分、驗證和授權
Distributed Cloud 可直接連線至 Cloud Identity,以便管理應用程式和使用者角色、使用 Connect 管理工作負載,或使用 OIDC 進行端點驗證。與 Google Cloud 中斷連線會切斷與 Cloud Identity 的連線,導致這些功能無法使用。如果工作負載需要額外的彈性,以便在暫時中斷連線時使用,您可以使用 GKE 身分認證服務與 LDAP 或 OIDC 供應商 (包括 ADFS) 整合,設定使用者驗證。
| 功能 | 連結行為 | 暫時中斷連線行為 | 最大斷線容許值 | 連線中斷的解決方法 |
|---|---|---|---|---|
| Cloud Identity 做為識別資訊提供者,使用連結閘道 | 您可以使用 Cloud Identity 做為身分識別提供者,並透過連結閘道連線,存取 Distributed Cloud 資源。 | Connect 閘道必須連線至 Google Cloud。中斷連線期間,您無法連線至叢集。 | 未有 | 使用 GKE 身分認證服務與其他身分提供者建立聯合身分。 |
| 使用第三方識別資訊提供者進行身分識別和驗證 | 支援 OIDC 和 LDAP。您會先使用 gcloud CLI 登入。如果是 OIDC 提供者,您可以使用控制台登入。接著,您可以照常對叢集 API 進行驗證 (例如使用 kubectl)。 |
只要您和叢集都能存取識別資訊提供者,您仍可對叢集 API 進行驗證。您無法透過控制台登入。您只能在本機更新叢集的 OIDC 或 LDAP 設定,無法使用控制台。 | 無限制 | - |
| 授權 | Distributed Cloud 支援角色式存取控管 (RBAC)。 角色可以指派給使用者、群組或服務帳戶。系統會從識別資訊提供者擷取使用者身分和群組。 | RBAC 系統位於 Kubernetes 叢集本機,與 Google Cloud 中斷連線不會造成影響。不過,如果應用程式仰賴 Cloud Identity 提供的身分,則在連線中斷時無法使用。 | 無限制 | - |
Secret 和金鑰管理
Secret 和金鑰管理是資安態勢的重要環節。Distributed Cloud 與Google Cloud 中斷連線時的行為,取決於您使用哪些服務來執行這些功能。
| 功能 | 連結行為 | 暫時中斷連線行為 | 最大斷線容許值 | 連線中斷的解決方法 |
|---|---|---|---|---|
| 使用 Cloud Key Management Service 和 Secret Manager 管理 Secret 和金鑰 | 您可直接使用 Cloud Key Management Service 處理加密編譯金鑰,並使用 Secret Manager 處理密鑰。 | Cloud Key Management Service 和 Secret Manager 皆無法使用。 | 未有 | 請改用本機系統。 |
| 使用 Hashicorp Vault 和 Google Cloud 服務管理 Secret 和金鑰 | 您可以設定 Hashicorp Vault,使用 Cloud Storage 或 Spanner 儲存密鑰,並使用 Cloud Key Management Service 管理金鑰。 | 如果 Hashicorp Vault 在地端部署叢集上執行,且連線中斷也影響到該叢集,則在連線中斷期間,密鑰儲存和金鑰管理功能將無法使用。 | 未有 | 請改用本機系統。 |
| 使用 Hashicorp Vault 和地端部署服務管理 Secret 和金鑰 | 您將 Hashicorp Vault 設為使用地端部署儲存空間後端來儲存密鑰,並使用地端部署金鑰管理系統 (例如硬體安全性模組)。 | 與 Google Cloud 中斷連線不會造成任何影響。 | 無限制 | - |
網路和網路服務
本節說明地端部署叢集的網路和網路服務,包括與Google Cloud暫時中斷連線時受到的影響。提供負載平衡、Cloud Service Mesh 和其他網路服務的相關資訊。
負載平衡
如要向使用者公開託管於地端部署叢集的 Kubernetes Service,可以選擇下列做法:
裸機:
使用提供的套裝組合負載平衡器:MetalLB 或與 BGP 搭配的套裝組合。
VMware:
使用隨附的負載平衡器 MetalLB。
即使與Google Cloud中斷連線,這些負載平衡選項仍可運作。
| 功能 | 連結行為 | 暫時中斷連線行為 | 最大斷線容許值 | 連線中斷的解決方法 |
|---|---|---|---|---|
| L4 綁定負載平衡器 | 完全在本機提供 L4 負載平衡,不依賴Google Cloud API 或網路。 | 沒有變更 | 無限制 | - |
| 手動或整合式負載平衡器 | 支援 F5 BIG-IP 和其他同樣託管於地端部署環境的解決方案。 | 沒有變更 | 無限制 | - |
Cloud Service Mesh
您可以使用 Cloud Service Mesh,管理、觀測及保護地端部署叢集中執行的服務通訊。Distributed Cloud 不支援所有 Cloud Service Mesh 功能,詳情請參閱支援的功能清單。
| 功能 | 連結行為 | 暫時中斷連線行為 | 最大斷線容許值 | 連線中斷的解決方法 |
|---|---|---|---|---|
| 部署或更新政策 (轉送、授權、安全性、稽核等) | 您可以使用控制台、kubectl、asmcli 或 istioctl 管理 Cloud Service Mesh 政策。 |
您只能使用 kubectl 或 istioctl 管理 Cloud Service Mesh 政策。 |
無限制 | 使用 kubectl 或 istioctl |
| 憑證授權單位 (CA) | 您可以使用叢集內 CA 或 Cloud Service Mesh 憑證授權單位,管理 Cloud Service Mesh 使用的憑證。 | 如果您使用的是叢集內 CA,則不會受到影響。 如果您使用的是 Cloud Service Mesh 憑證授權單位,憑證會在 24 小時後到期。新的服務執行個體無法擷取憑證。 |
叢集內 CA 無限制。 Cloud Service Mesh 憑證授權單位在 24 小時內服務降級,24 小時後無服務。 |
使用叢集內 CA。 |
| Cloud Service Mesh 適用的 Cloud Monitoring | 您可以使用 Cloud Monitoring 儲存、探索及運用 Cloud Service Mesh 提供的 HTTP 相關指標。 | 系統不會儲存指標。 | 未有 | 使用相容的地端部署監控解決方案,例如 Prometheus。 |
| Cloud Service Mesh 稽核記錄 | Cloud Service Mesh 仰賴本機 Kubernetes 記錄功能。行為取決於您為地端部署叢集設定記錄的方式。 | 取決於您為地端部署叢集設定記錄的方式。 | - | - |
| Ingress 閘道 | 您可以使用 Istio Ingress 閘道定義外部 IP。 | 沒有影響 | 無限制 | - |
| Istio 容器網路介面 (CNI) | 您可以將 Cloud Service Mesh 設為使用 Istio CNI (而非 iptables) 管理流量。 | 沒有影響 | 無限制 | - |
| Cloud Service Mesh 網頁應用程式使用者驗證 | 您可以使用 Cloud Service Mesh 輸入閘道,與自己的識別資訊提供者整合 (透過 OIDC),對網格中網頁應用程式的使用者進行驗證及授權。 | 沒有影響 | 無限制 | - |
其他網路服務
| 功能 | 連結行為 | 暫時中斷連線行為 | 最大斷線容許值 | 連線中斷的解決方法 |
|---|---|---|---|---|
| DNS | Kubernetes DNS 伺服器會在叢集內執行。 | Kubernetes DNS 服務在叢集內運作,因此可正常運作。 | 無限制 | - |
| 輸出 Proxy | 您可以設定地端部署叢集,使用 Proxy 建立輸出連線。 | 如果 Proxy 在地端部署環境中執行,叢集仍可在暫時中斷連線期間使用 Proxy。不過,如果 Proxy 與 Google Cloud中斷連線,則本文中的所有情境仍適用。 | 無限制 | - |
Google Cloud Marketplace
| 功能 | 連結行為 | 暫時中斷連線行為 | 最大斷線容許值 | 連線中斷的解決方法 |
|---|---|---|---|---|
| 從 Cloud Marketplace 部署及管理應用程式和服務 | 您可以在控制台中使用 Cloud Marketplace,探索、取得及部署解決方案。 | 您無法使用 Cloud Marketplace。Cloud Marketplace 的部分解決方案可能有自己的連線需求,此處並未列出。 | 未有 | 無 |
支援
本節說明與 Google Cloud 支援團隊或營運合作夥伴互動時,可能需要處理的 GDC 叢集 GKE 相關案件。
| 功能 | 連結行為 | 暫時中斷連線行為 | 最大斷線容許值 | 連線中斷的解決方法 |
|---|---|---|---|---|
| 與支援團隊共用叢集快照 | 您可以使用 bmctl check
cluster 或 gkectl diagnose snapshot 指令,在本機建立叢集快照。您可以透過一般支援程序提供這份快照。 |
由於快照是在本機操作,因此您仍可產生快照。如果您無法存取 Google Cloud 和支援網頁介面,只要訂閱 Enhanced 或 Premium 支援方案,即可致電支援團隊。 | 無限制 | - |
| 與支援團隊分享相關記錄資料 | 您可以從叢集本機收集記錄,並透過一般支援程序分享。 | 您仍可從叢集收集記錄。如果您無法存取 Google Cloud 和支援網頁介面,只要訂閱 Enhanced 或 Premium 支援方案,即可致電支援團隊。 | 無限制 | - |