F5 分散式雲服務既可以與現有 Kubernetes (K8s) Cluster 整合,也可以託管 K8s 工作負載本身。 對此,我們提供了多種架構選擇。 文章將按照複雜程度和所具優勢從低到高為您介紹四種主要架構。
本文將介紹 Kubernetes 架構的前兩種架構,其餘架構將在之後的文章中介紹,敬請關注。
- 架構 1:外部負載均衡器(安全 K8s 閘道)
- 架構 2:CE(Customer Edge) 作為 pod(K8s 網站)
- 架構 3:託管Namespace (vK8s)
- 架構 4:託管 K8s (mK8s)
Kubernetes 架構選項
隨著 K8s 的不斷擴展,運行 K8s 以及與現有 K8s 平臺整合的選擇也越來越多。 F5 分散式雲服務既可以與現有 K8s Cluster 集成,也可以運行託管的 K8s 平臺本身。 這些產品中也有多種架構,所以第一次聽說這些可能性時,我感到很震驚。
使用者:
F5 分散式雲既可以與 K8s 平臺集成,在 K8s 平臺內運行,託管虛擬 K8s (Namespace-aaS),也可以在 F5 分散式雲環境中託管運行 K8s 平臺。
我:
太棒了,這就可以有區分架構選項的思維模式。
為讓更多朋友瞭解並能運用這些架構,本文將給出概覽和介紹,並就如何進行選擇提供初級指導:
名詞解釋 | |
APPSTACK + MESH FUNCT IONAL I TY | 應用棧:用於在多雲或邊緣的分散式基礎設施中部署、保護和操作一系列應用程式。 網格:用於連接、保護、控制和觀察部署在單個雲位置內的應用程式或分散在多個雲和邊緣網站的應用程式。 |
vk8smk8s | 虛擬k8sMangek8s |
分散式雲-managed K8s workloads | 分散式雲管理的K8s工作負載 |
Existing K8s Clusters | 現有K8s Cluster |
什麼是 F5 分散式雲服務
F5 分散式雲服務是一個全球平臺,可提供網路和應用交付服務及計算管理(K8s 工作負載)。 我們將每個全球 PoP 稱為區域邊緣 (RE)。 RE 均高度網格化,構成了全球平臺的骨幹。 它們不僅可以連接您的網站,將您的服務暴露到互聯網上,而且還能夠運行工作負載。
通過在網路中運行一個或多個分散式雲節點(也稱為客戶邊緣(CE)),該平臺可擴展到您的數據中心。CE 是網路中的一個計算節點,它註冊到我們的全球控制平面,然後作為使用者租戶下專有的 SaaS ,由客戶進行管理。
註冊一個或多個 CE 將在 F5 分散式雲中創建一個客戶網站。 CE 可作為虛擬機運行,也可以在硬體上運行(包括硬體,供現場使用),甚至能夠作為一組 K8s pod 運行。 如果適用,CE 可作為 CE Cluster 的一部分運行,從而確保網站的高可用性。
分散式雲 Mesh 功能提供了網站間連接、安全服務和可觀測性。 此外,分散式雲 AppStack 功能(也使用 Mesh 功能)允許將任意數量的託管 Cluster 按邏輯分組到具有單個 K8s 管理介面的虛擬網站(一類具有相同業務負載職能的網站合集)中。
因此,Mesh 服務提供網路,AppStack 服務提供 Kubernetes 計算管理。 我們的前 2 個架構僅需Mesh 服務,而我們的後 2 個架構則需使用 App Stack(以及 Mesh)。
Cluster 之間的服務通訊
經常有人問我如何支援 Cluster 之間的服務相互通信。 分散式雲服務有助於輕鬆地實現這一點。 每個網站均可向其他網站發佈服務,包括 K8s 網站。 這意味著,任何 K8s 服務對於您選擇向其發佈此服務的其他網站都是可用的。
以下任何架構都可以做到這一點,儘管更複雜的架構可能實現更細粒度的控制。 我將在另一篇文章中深入探討這個問題。
架構 1:外部負載均衡器(安全 K8s 閘道)
在安全 Kubernetes 閘道架構中,您可整合現有 K8s 平臺,將分散式雲節點作為 K8s Cluster的外部負載均衡器。 在該場景中,您需要創建一個 ServiceAccount 和 kubeconfig 檔來配置分散式雲。
然後,分散式雲節點對 K8s API 伺服器執行服務發現,其優點是可整合“現有” K8s 平臺。 但也有一個缺點,即只適用於 Node Port 服務,不適用於 ClusterIP 服務。
Consumer | 使用者 |
app | 應用 |
Cluster 1Cluster 2 | Cluster1Cluster2 |
架構 2:在 K8s Cluster 中運行一個網站
創建 K8s 網站很簡單,只需部署一個 manifest 即可。 該檔會在 Cluster 中部署多個資源,這些資源一同提供 CE 的服務,並建立客戶網站。 這被稱為“在 K8s 內部運行 CE”或“將 CE 作為 pod 運行”。
CE 節點通常指的是一個小計算節點,比如一台虛擬機或一個硬體; 該架構實際上是在 K8s 中運行的一組pod 及相關資源,用於創建分散式雲客戶網站。
*如何部署manifest請前往下方連結:
https://gitlab.com/volterra.io/volterra-ce/-/blob/master/k8s/ce_k8s.yml
在現有 Cluster 內運行分散式雲時,您可按 DNS 名稱暴露 Cluster 中的服務,因為網站將從 Cluster 中解析這些服務。 然後,您的服務可以通過 F5 分散式雲平臺暴露在任何地方。
這類似於上述架構 1,但使用此模型,您的網站只是 K8s 中的一組 pod。 這種架構的優勢是能夠暴露其他類型的服務(例如 ClusterIP)。
部署到 K8s Cluster 中的網站僅支援 Mesh 功能,而不支援 AppStack 功能(也就是說,您無法在這些pod 上運行 Cluster)。
在此架構中,分散式雲充當具有內置應用安全性的 K8s ingress controller(ingress 控制器)。 它還支援 Mesh 功能,例如在該網站上發佈其他網站的服務,在其他網站上發佈該網站發現的服務。