這篇文章主要介紹“Cilium多集群詳細介紹”,在日常操作中,相信很多人在Cilium多集群詳細介紹問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Cilium多集群詳細介紹”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!
創(chuàng)新互聯(lián)是網(wǎng)站建設(shè)專家,致力于互聯(lián)網(wǎng)品牌建設(shè)與網(wǎng)絡(luò)營銷,專業(yè)領(lǐng)域包括成都網(wǎng)站設(shè)計、網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè)、電商網(wǎng)站制作開發(fā)、微信平臺小程序開發(fā)、微信營銷、系統(tǒng)平臺開發(fā),與其他網(wǎng)站設(shè)計及系統(tǒng)開發(fā)公司不同,我們的整合解決方案結(jié)合了恒基網(wǎng)絡(luò)品牌建設(shè)經(jīng)驗和互聯(lián)網(wǎng)整合營銷的理念,并將策略和執(zhí)行緊密結(jié)合,且不斷評估并優(yōu)化我們的方案,為客戶提供全方位的互聯(lián)網(wǎng)品牌整合方案!
本文是對ClusterMesh(Cilium的多集群實現(xiàn))的深入研究。簡而言之,ClusterMesh 提供:
通過隧道或直接路由,以本地性能對多個Kubernetes集群進行Pod IP路由,而無需任何網(wǎng)關(guān)或代理。
使用標準Kubernetes服務(wù)和coreDNS/kube-dns的透明服務(wù)發(fā)現(xiàn)。
跨多個集群的網(wǎng)絡(luò)策略實施。 策略可以指定為Kubernetes NetworkPolicy資源或擴展的CiliumNetworkPolicy CRD。
透明加密,用于本地集群中的節(jié)點之間以及跨集群邊界的所有通信。
多集群功能以層為單位構(gòu)建,您可以選擇使用所有層,也可以僅選擇和使用所需的層。
在深入研究實現(xiàn)細節(jié)之前,讓我們回顧一下連接多個Kubernetes集群的一些用例。
基于Kubernetes的平臺的最初趨勢是構(gòu)建大型多租戶Kubernetes集群。 為每個租戶構(gòu)建單個集群或為不同類別的服務(wù)構(gòu)建集群越來越普遍,例如, 不同級別的安全敏感度。 但是,某些服務(wù)(如密鑰管理,日志記錄,監(jiān)控或DNS)通常仍在所有集群之間共享。 這避免了在每個租戶集群中維護這些服務(wù)的操作開銷。
此模型的主要動機是租戶集群之間的隔離,為了維持該目標,租戶集群連接到共享服務(wù)集群但未連接到其他租戶集群。
運行有狀態(tài)或無狀態(tài)服務(wù)的操作復(fù)雜性是非常不同的。 無狀態(tài)服務(wù)易于擴展,遷移和升級。 完全使用無狀態(tài)服務(wù)運行集群可使集群保持靈活和敏捷。 從一個云提供商遷移到另一個云提供商非常簡單。
有狀態(tài)服務(wù)可能會引入潛在的復(fù)雜依賴鏈。 遷移服務(wù)通常涉及存儲遷移。
pod IP路由是多集群能力的基礎(chǔ)。 它允許跨集群的pod通過其pod IP相互聯(lián)系。 Cilium可以在多種模式下運行以執(zhí)行pod IP路由。 所有這些模式都能夠執(zhí)行多集群pod IP路由。
優(yōu)點:pod IP在底層網(wǎng)絡(luò)上永遠不可見。 網(wǎng)絡(luò)只能看到工作節(jié)點的IP地址。 這可以簡化安裝和防火墻規(guī)則。
缺點:所需的額外網(wǎng)絡(luò)標頭將降低網(wǎng)絡(luò)的理論最大吞吐量。 確切的成本取決于配置的MTU,與使用MTU 9000的巨型幀相比,使用1500的傳統(tǒng)MTU時會更加明顯。
缺點:為了不消耗過多CPU,包括底層硬件在內(nèi)的整個網(wǎng)絡(luò)堆棧必須支持校驗和和分段卸載,以計算校驗和并在硬件中執(zhí)行分段,就像對“常規(guī)”網(wǎng)絡(luò)數(shù)據(jù)包所做的那樣。如今,這種卸載功能的可用性非常常見。
在直接路由模式中,所有網(wǎng)絡(luò)數(shù)據(jù)包都直接路由到網(wǎng)絡(luò)。 這要求網(wǎng)絡(luò)能夠路由pod IP。 可以使用多個選項實現(xiàn)跨節(jié)點傳播pod IP路由信息:
使用--auto-direct-node-routes
選項,這是通過kvstore的超輕量級路由傳播方法,如果所有工作節(jié)點共享一個單一的2層網(wǎng)絡(luò),該選項將起作用。 對于所有形式的基于云提供商的虛擬網(wǎng)絡(luò),通常都滿足此要求。
使用kube-router集成運行BGP路由守護進程。
使用任何其他路由守護進程將路由注入標準Linux路由表(bird,quagga,…)
當網(wǎng)絡(luò)不再理解pod IP時,網(wǎng)絡(luò)數(shù)據(jù)包地址需要偽裝。
優(yōu)點:減少的網(wǎng)絡(luò)數(shù)據(jù)包標頭可以優(yōu)化網(wǎng)絡(luò)吞吐量和延遲。
缺點:整個網(wǎng)絡(luò)必須能夠路由pod IP,這會增加操作的復(fù)雜性。
混合路由模式允許在可用時使用直接路由,這通常在本地集群或同一VPC中的其他集群中,而當跨越VPC或云提供商時可以回退到隧道模式。 這可以限制操作復(fù)雜性并且允許僅在需要時支付優(yōu)化成本。
Cilium的多集群模型的服務(wù)發(fā)現(xiàn)是使用標準的Kubernetes services 構(gòu)建的,旨在對現(xiàn)有的Kubernetes應(yīng)用程序部署完全透明:
apiVersion: v1 kind: Service metadata: name: rebel-base annotations: io.cilium/global-service: "true" spec: type: ClusterIP ports: - port: 80 selector: name: rebel-base
Cilium通過一個注釋io.cilium/global-service: "true"
來監(jiān)控Kubernetes服務(wù)和端點以及監(jiān)聽服務(wù)。 對于此類服務(wù),具有相同名稱和命名空間信息的所有服務(wù)將自動合并在一起,并形成跨集群可用的全局服務(wù)。
根據(jù)標準Kubernetes運行狀況檢查邏輯,任何到全局服務(wù)的ClusterIP的流量都將自動負載平衡到所有集群中的端點。
每個集群繼續(xù)為每個服務(wù)維護自己的ClusterIP,這意味著Kubernetes和kube-dns / coredns不知道其他集群。 DNS服務(wù)器繼續(xù)返回僅在本地集群中有效的ClusterIP,Cilium將透明地執(zhí)行負載平衡。
對于細粒度控制存在若干附加注釋,例如單向暴露或親和策略。
從frontend-1
到ClusterIP 30.1.1.1
的所有流量將自動負載均衡到集群1 的后端pod IP[10.0.0.1,10.0.0.2]
以及集群2的后端pod IP[20.0.0.1,20.0.0.2]
。 每個集群將執(zhí)行本地后端實例的運行狀況檢查,并在容器創(chuàng)建,銷毀或變得不健康時通知其他集群。
Cilium 1.4中引入的透明加密與多集群兼容。確保使用公共密鑰配置所有集群中的所有節(jié)點,如此節(jié)點之間的所有通信都會自動加密。
簡單版本是您從單個集群中熟悉的策略實施將簡單地擴展并跨集群工作。 由于策略是使用pod標簽指定的,因此允許frontend
與backend
通信的策略將應(yīng)用于集群流量,就像流量跨越集群一樣。
Cilium不會跨集群自動傳播NetworkPolicy或CiliumNetworkPolicy。 用戶有責任將策略導(dǎo)入所有集群。 這是有意為之,因為這意味著每個集群都可以決定是否允許集群接收來自遠程集群的通信或者發(fā)出到遠程集群的通信。
可以僅建立適用于特定集群中的pod的策略。 集群名稱由Cilium表示為每個pod上的標簽,允許匹配的集群名稱可以是endpointSelector
或者是由toEndpoints
和fromEndpoints
構(gòu)造的matchLabels
標簽:
apiVersion: "cilium.io/v2" kind: CiliumNetworkPolicy metadata: name: "allow-cross-cluster" description: "Allow x-wing in cluster1 to contact rebel-base in cluster2" spec: endpointSelector: matchLabels: name: x-wing io.cilium.k8s.policy.cluster: cluster1 egress: - toEndpoints: - matchLabels: name: rebel-base io.cilium.k8s.policy.cluster: cluster2
上面的示例策略將允許cluster1中的x-wing
與cluster2中的rebel-base
對話。 除非存在將通信列入白名單的附加策略,否則x-wing將無法與本地集群中的rebel-base通信。
這兩個項目都是獨立的,但可以很好地相互補充。 組合Cilium和Istio多集群的常用方法是使用Cilium的多集群Pod IP路由層來滿足Istio多集群指南的以下要求:
每個集群中的所有pod CIDR必須可以相互路由。
此外,Cilium策略執(zhí)行功能可用于保護與Istio控制平面之間的通信,以及通過不支持的協(xié)議(如UDP或IPV6)保護sidecar的旁路嘗試,以及防止受損的sidecar代理。
還可以同時運行全局Istio服務(wù)和Cilium全局服務(wù)。 所有Istio托管服務(wù)都可以獲得Cilium的全局服務(wù),因為它們可以像常規(guī)服務(wù)一樣通過DNS發(fā)現(xiàn)。
到此,關(guān)于“Cilium多集群詳細介紹”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>
網(wǎng)頁題目:Cilium多集群詳細介紹
鏈接分享:http://aaarwkj.com/article24/gjcsje.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃、Google、面包屑導(dǎo)航、商城網(wǎng)站、App設(shè)計、微信公眾號
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)