暫時中斷與 Google Cloud 的連線會造成什麼影響

Google Kubernetes Engine (GKE) Enterprise 版是 Google Cloud 應用程式現代化 平台。這項服務以 Kubernetes 為基礎,可部署在 Google Cloud、其他雲端和內部部署環境 (透過 Google Distributed Cloud,包括 VMware 和裸機伺服器)。即使 GKE Enterprise 管理的叢集是在地端執行,基於監控和管理等原因,系統仍會設計成與Google Cloud 保持永久連線。不過,您可能需要瞭解如果因任何原因 (例如技術問題) 導致與 Google Cloud 的連線中斷,會發生什麼情況。本文將說明 Google Distributed Cloud 軟體專屬部署 (在裸機或 VMware 上) 中,叢集失去連線造成的影響,以及您在這種情況下可使用的解決方法。

如果架構師需要為非預期或強制中斷連線做好準備,並瞭解其後果,這項資訊就非常實用。 Google Cloud 不過,您不應計畫使用與Google Cloud 中斷連線的純軟體 Google Distributed Cloud 部署作業,做為名義上的工作模式。請注意,我們設計 GKE Enterprise 時,會充分運用Google Cloud 服務的擴充性和可用性。本文根據暫時中斷期間各種 GKE Enterprise 元件的設計和架構編寫而成。我們無法保證這份文件內容完整。

本文假設您已熟悉 GKE Enterprise。如果不是,建議您先閱讀 GKE Enterprise 技術總覽

GKE Enterprise 授權驗證和用量計算

如果您已啟用 GKE Enterprise,表示 Google Cloud 專案已啟用 Anthos API (anthos.googleapis.com),叢集中執行的 GKE Enterprise 計量控制器會定期產生及重新整理 GKE Enterprise 授權。中斷連線的容許時間為 12 小時。 此外,計量和帳單也是透過連線管理。

下表列出暫時與 Google Cloud中斷連線時,授權和用量計量相關功能的行為。

功能 連結行為 暫時中斷連線的行為 斷線容許時間上限 連線中斷的解決方法
GKE Enterprise 授權驗證 只要 Google Cloud 專案中啟用 anthos.googleapis.com,GKE Enterprise 計量控制器就會定期產生及重新整理 GKE Enterprise 授權自訂資源。 使用授權自訂資源的元件支援寬限期:只要在寬限期內重新整理授權自訂資源,元件就能繼續運作。 目前沒有限制。寬限期過後,元件就會開始記錄錯誤。您無法再升級叢集。
用量計算與計費 GKE Enterprise 計量控制器會向 Google Cloud Service Control API 回報叢集的 vCPU 容量,以供計費。 叢集內代理程式會在叢集與 Google Cloud中斷連線時,將帳單記錄保留在叢集中,並在叢集重新連線後擷取記錄。 無限制。不過,根據「進階軟體」的服務專屬條款,您必須提供 GKE Enterprise 計量資訊,才能符合規定。

叢集生命週期

本節涵蓋建立、更新、刪除及調整叢集大小等情境,以及監控這些活動的狀態。

在大多數情況下,您可以使用 bmctlgkectlkubectl 等 CLI 工具,在暫時中斷連線期間執行作業。您也可以使用這些工具監控作業狀態。重新連線後,Google Cloud 控制台會更新,顯示中斷連線期間執行的作業結果。

動作 連結行為 暫時中斷連線的行為 斷線容許時間上限 連線中斷的解決方法
建立叢集 您可以使用 bmctlgkectl CLI 工具建立叢集。這項作業需要連線至 Google Cloud。 無法建立叢集。 未有
升級叢集 您可以使用 bmctlgkectl CLI 工具升級叢集。這項作業需要連線至 Google Cloud。 您無法升級叢集。 未有
刪除叢集 您可以使用 bmctlgkectl CLI 工具刪除叢集。這項作業不需要連線至 Google Cloud。 您可以刪除叢集。 無限制 -
查看叢集狀態 您可以在 Google Cloud 控制台的 Google Kubernetes Engine 叢集清單中,查看叢集相關資訊。 叢集資訊不會顯示在 Google Cloud 控制台中。 無限制 使用 kubectl 直接查詢叢集,取得所需資訊。
從叢集中移除節點 您不需要連線至 Google Cloud ,即可從叢集移除節點。 您可以從叢集中移除節點。 無限制 -
將節點新增至叢集 新節點會從 Container Registry 提取容器映像檔,確保正常運作。 系統會執行預檢,確認與「 Google Cloud」之間有連線。 新增節點時執行的前置檢查會驗證與 Google Cloud的連線。因此,中斷連線時,您無法在叢集中新增節點。 未有

應用程式生命週期

暫時與 Google Cloud中斷連線,對管理內部部署叢集中執行的應用程式影響不大。只有 Connect Gateway 會受到影響。如果您使用 Container RegistryArtifact RegistryCloud BuildCloud Deploy 管理Google Cloud中的容器映像檔或 CI/CD 管道,中斷連線後就無法再使用這些服務。如何處理這些產品的連線中斷問題,不在本文的討論範圍內。

動作 連結行為 暫時中斷連線的行為 斷線容許時間上限 連線中斷的解決方法
應用程式部署 在本機使用 kubectl、透過 CI/CD 工具,或使用 Connect Gateway 完成。 無法使用 Connect Gateway。只要直接連線至 Kubernetes API,其他部署方法仍可正常運作。 無限制 如果使用 Connect Gateway,請改為kubectl在本機使用。
移除應用程式 在本機使用 kubectl、透過 CI/CD 工具,或使用 Connect Gateway 完成。 無法使用 Connect Gateway。只要直接連線至 Kubernetes API,其他部署方法仍可正常運作。 無限制 如果使用 Connect Gateway,請改為kubectl在本機使用。
應用程式向外擴充 在本機使用 kubectl、透過 CI/CD 工具,或使用 Connect Gateway 完成。 無法使用 Connect Gateway。只要直接連線至 Kubernetes API,其他部署方法仍可正常運作。 無限制 如果使用 Connect Gateway,請改為kubectl在本機使用。

記錄和監控

稽核功能可協助貴機構遵守法規要求和法規遵循政策。GKE Enterprise 提供應用程式記錄、Kubernetes 記錄和稽核記錄,有助於稽核。許多客戶選擇使用 Google 的 Cloud LoggingCloud Monitoring,避免管理地端記錄與監控基礎架構。其他客戶則偏好將記錄檔集中管理到內部部署系統進行彙整。為支援這些客戶,GKE Enterprise 直接整合了 PrometheusElasticSplunk 或 Datadog 等服務。在此模式下,暫時中斷與 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 和應用程式工作負載的監控資料 所有指標都可在 Google Cloud 控制台 和 Cloud Monitoring API 中查看。 中斷連線期間,Cloud Monitoring 不會更新指標。 每個節點的系統指標本機緩衝區為 24 小時或 6 GiB,每個節點的應用程式指標本機緩衝區為 1 GiB。緩衝區填滿或連線中斷 24 小時後,系統就會捨棄最舊的項目 使用本機監控解決方案。
指標的快訊規則和呼叫 Cloud Monitoring 支援快訊。您可以為任何指標建立快訊。警報可透過不同管道傳送。 裝置與網路中斷連線時,系統不會觸發快訊。系統只會根據已傳送至 Cloud Monitoring 的指標資料觸發快訊 使用本機監控和快訊解決方案。

設定與政策管理

Config SyncPolicy Controller 可讓您大規模管理所有叢集的設定和政策。您可以在 Git 存放區中儲存設定和政策,並自動同步到叢集。

Config Sync

Config Sync 會使用叢集內代理程式直接連線至 Git 存放區。您可以使用 gcloudkubectl 工具,管理存放區網址或同步處理參數的變更。

如果叢集內代理程式仍可連上 Git 存放區,暫時中斷連線不會影響同步作業。不過,如果您使用 Google Cloud CLI 或 Google Cloud 控制台變更同步處理參數,這些參數不會在叢集連線中斷期間套用至叢集。您可以使用 kubectl 暫時在本地覆寫這些值。重新連線時,系統會覆寫所有本機變更。

Policy Controller

Policy Controller 可為您的叢集強制執行完全程式化的政策。這些政策是「防護機制」,用來防止任何違反安全性、作業或法規遵循控管的變更。

動作 連結行為 暫時中斷連線的行為 斷線容許時間上限 連線中斷的解決方法
從 Git 存放區同步設定 叢內代理程式會直接連線至 Git 存放區。您可以使用 Google Cloud API 變更存放區網址或同步參數。 設定同步不受影響。如果您使用 gcloud 或在 Google Cloud 主控台中變更同步處理參數,這些參數不會在叢集連線中斷期間套用至叢集。您可以使用 kubectl 暫時覆寫這些值。重新連線後,系統會覆寫所有本機變更。 無限制 請勿使用 Fleet API 進行 Config Sync,且只能使用 Kubernetes API 進行設定。
對 Kubernetes API 的要求強制執行政策 叢內代理程式會與 Kubernetes API 整合,因此可強制執行限制。您可以使用本機 Kubernetes API 管理政策。您可以使用 Google Cloud API 管理 Policy Controller 的系統設定。 政策強制執行作業不受影響。政策仍使用本機 Kubernetes API 管理。使用Google Cloud API 變更 Policy Controller 系統設定時,變更不會傳播至叢集,但您可以暫時在本機覆寫這些設定。重新連線後,系統會覆寫所有本機變更。 無限制 請勿使用 Fleet API 設定 Policy Controller,只能透過 Kubernetes API 進行設定
使用 Google Cloud API 安裝、設定或升級 Config Sync 您可以使用 Google Cloud API 管理叢集內代理程式的安裝和升級作業。您也可以使用這個 API (或 gcloud,或 Google Cloud 控制台) 管理這些代理程式的設定。 叢集內代理程式仍會正常運作。您無法使用 Google Cloud API 安裝、升級或設定叢內代理程式。重新連線後,系統會繼續執行所有使用 API 進行的待處理安裝、升級或設定作業。 未有 請勿使用 Fleet API 設定 Policy Controller,只能透過 Kubernetes API 進行設定
在 Google Cloud 控制台中查看系統或同步狀態 您可以使用 Google Cloud API 或 Google Cloud 控制台,查看叢集內代理程式的健康狀態和同步狀態。 Google Cloud API 或 Google Cloud 控制台中的狀態資訊過時。API 顯示連線錯誤。您仍可透過本機 Kubernetes API,取得各叢集的資訊。 未有 使用 nomos CLI 或本機 Kubernetes API。

安全性

身分、驗證和授權

GKE Enterprise 可以直接連線至 Cloud Identity,以取得應用程式和使用者角色、使用 Connect 管理工作負載,或使用 OIDC 進行端點驗證。如果與 Google Cloud中斷連線,與 Cloud Identity 的連線也會中斷,屆時就無法再使用這些功能。如果工作負載需要透過暫時中斷連線來提高復原能力,您可以使用 GKE Identity Service 與 LDAP 或 OIDC 提供者 (包括 ADFS) 整合,設定使用者驗證。

功能 連結行為 暫時中斷連線的行為 斷線容許時間上限 連線中斷的解決方法
Cloud Identity 做為識別資訊提供者,使用 Connect Gateway 您可以透過 Cloud Identity 做為身分識別提供者,並透過 Connect 閘道連線,存取 GKE Enterprise 資源。 Connect 閘道必須連線至 Google Cloud。中斷連線期間,您無法連線至叢集。 未有 使用 GKE Identity Service 與其他身分提供者聯合。
使用第三方識別資訊提供者進行身分驗證 支援 OIDC 和 LDAP。您可以使用 gcloud CLI 登入。如果是 OIDC 提供者,您可以使用 Google Cloud 控制台登入。然後,您就可以照常對叢集 API 進行驗證 (例如使用 kubectl)。 只要您和叢集都能存取身分識別提供者,您還是可以針對叢集 API 進行驗證。您無法透過 Google Cloud 控制台登入。您只能在本機更新叢集的 OIDC 或 LDAP 設定,無法使用 Google Cloud 控制台。 無限制 -
授權 GKE Enterprise 支援角色型存取權控管 (RBAC)。角色可以指派給使用者、群組或服務帳戶。使用者身分和群組可從身分識別提供者擷取。 RBAC 系統位於 Kubernetes 叢集本機,不會受到與 Google Cloud中斷連線的影響。不過,如果服務依賴 Cloud Identity 提供的身分,則在連線中斷時無法使用。 無限制 -

密鑰和金鑰管理

密鑰和金鑰管理是安全狀態的重要環節。如果與 Google Cloud 中斷連線,GKE Enterprise 的行為取決於您使用哪些服務來提供這些功能。

功能 連結行為 暫時中斷連線的行為 斷線容許時間上限 連線中斷的解決方法
使用 Cloud Key Management Service 和 Secret Manager 管理密鑰和金鑰 您可直接使用 Cloud Key Management Service 管理加密編譯金鑰,並使用 Secret Manager 管理密鑰。 Cloud Key Management Service 和 Secret Manager 均無法使用。 未有 請改用本機系統。
使用 Hashicorp Vault 和 Google Cloud 服務管理密鑰和金鑰 您可將 Hashicorp Vault 設定為使用 Cloud Storage 或 Spanner 儲存密碼,並使用 Cloud Key Management Service 管理金鑰。 如果 Hashicorp Vault 在 Anthos 叢集上執行,且也受到連線中斷影響,則連線中斷期間無法使用密鑰儲存和金鑰管理功能。 未有 請改用本機系統。
使用 Hashicorp Vault 和內部部署服務管理密鑰和金鑰 您可設定 Hashicorp Vault,使用密鑰的本機儲存後端,以及本機金鑰管理系統 (例如硬體安全模組)。 與「 Google Cloud 」中斷連線不會造成任何影響。 無限制 -

網路和網路服務

負載平衡

如要向使用者公開內部部署叢集中代管的 Kubernetes 服務,您可以選擇使用隨附的組合式負載平衡器 (裸機上的 MetalLB、VMware 上的 SeesawMetalLB),或是 GKE Enterprise 外部的負載平衡器。如果與 Google Cloud中斷連線,這兩個選項都會繼續運作。

功能 連結行為 暫時中斷連線的行為 斷線容許時間上限 連線中斷的解決方法
L4 套裝組合負載平衡器 完全在本機提供 L4 負載平衡,不依附於Google Cloud API 或網路。 沒有變更 無限制 -
手動或整合式負載平衡器 支援 F5 BIG-IP 和其他地端部署的負載平衡器。 沒有變更 無限制 -

Cloud Service Mesh

您可以透過 Cloud Service Mesh,管理、監控及保護在內部部署叢集中執行的服務通訊。Google Distributed Cloud 不支援所有 Cloud Service Mesh 功能。詳情請參閱支援功能清單

功能 連結行為 暫時中斷連線的行為 斷線容許時間上限 連線中斷的解決方法
部署或更新政策 (轉送、授權、安全性、稽核等) 您可以使用 Google Cloud 控制台、kubectlasmcliistioctl 管理 Cloud Service Mesh 政策。 您只能使用 kubectlistioctl 管理 Cloud Service Mesh 政策。 無限制 使用 kubectlistioctl
憑證授權單位 (CA) 您可以透過叢集內 CA 或 Cloud Service Mesh 憑證授權單位,管理 Cloud Service Mesh 使用的憑證。 如果您使用叢集內 CA,則不會受到影響。
如果您使用 Cloud Service Mesh 憑證授權單位,憑證會在 24 小時後失效。新的服務執行個體無法擷取憑證。
叢集內憑證授權單位無限制。
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 記錄功能。這項行為取決於您為 GKE Enterprise 叢集設定記錄功能的方式。 視您為 GKE Enterprise 叢集設定記錄功能的方式而定。 - -
輸入閘道 您可以使用 Istio Ingress Gateway 定義外部 IP。 沒有影響 無限制 -
Istio 容器網路介面 (CNI) 您可以設定 Cloud Service Mesh 使用 Istio CNI,而非 iptables 管理流量。 沒有影響 無限制 -
網頁應用程式的 Cloud Service Mesh 使用者驗證 您可以透過 Cloud Service Mesh 進入閘道與自己的身分識別提供者 (透過 OIDC) 整合,在網格中的網路應用程式上驗證及授權使用者。 沒有影響 無限制 -

其他網路服務

功能 連結行為 暫時中斷連線的行為 斷線容許時間上限 連線中斷的解決方法
DNS Kubernetes DNS 伺服器會在叢集內執行。 Kubernetes DNS 服務會在叢集內部執行,因此可正常運作。 無限制 -
輸出 Proxy 您可以設定 GKE Enterprise,透過 Proxy 建立輸出連線。 如果 Proxy 在地端執行,GKE Enterprise 仍可在暫時中斷連線期間使用 Proxy。不過,如果 Proxy 失去與 Google Cloud的連線,本文中的所有情境仍適用。 無限制 -

Google Cloud Marketplace

功能 連結行為 暫時中斷連線的行為 斷線容許時間上限 連線中斷的解決方法
從 Cloud Marketplace 部署及管理應用程式和服務 Cloud Marketplace 位於 Google Cloud 控制台中,您可以在這裡探索、取得及部署解決方案。 您無法使用 Cloud Marketplace。Cloud Marketplace 的部分解決方案可能有自己的連線需求,這些需求並未在此文件中說明。 未有

支援

本節說明與 Google Cloud 支援團隊或作業合作夥伴互動時,可能需要處理的 GKE on GDC 叢集相關案件。

功能 連結行為 暫時中斷連線的行為 斷線容許時間上限 連線中斷的解決方法
與支援團隊分享叢集快照 您可以使用 bmctl check clustergkectl diagnose snapshot 指令在本機建立叢集快照。透過一般支援程序分享這張快照。 由於快照是本機作業,因此您仍可產生快照。如果您無法存取 Google Cloud 和支援網頁介面,只要訂閱進階或 Premium 支援方案,即可致電支援團隊。 無限制 -
與支援團隊分享相關記錄資料 您可以從叢集在本機收集記錄,並透過一般支援程序分享記錄。 您還是可以從叢集收集記錄。如果您無法存取 Google Cloud 和支援網頁介面,只要訂閱進階或 Premium 支援方案,即可致電支援團隊。 無限制 -