摘要:在當前版本中會注冊和兩個服務(wù),前者開放端口供控制整個系統(tǒng),后者開放端口供控制器使用。
Contiv網(wǎng)絡(luò)結(jié)構(gòu)
上圖為Contiv的網(wǎng)絡(luò)模型,大體上可分為Master和Host Agent兩個組件,其中Master負責管理所有網(wǎng)絡(luò)資源 (IP地址分配租戶管理策略管理等等)
Contiv-Master 組件 Distributed KV StoreDistributed KV Store, 即分布式鍵值存儲, 它是跨主機容器網(wǎng)絡(luò)的重要組成部分, 各個宿主機通過它進行配置數(shù)據(jù)和運行數(shù)據(jù)的同步, Contiv也不例外. Contiv提供Etcd和Consul兩種實現(xiàn). 無論是哪一種, 信息都是以Key-Value Pair的形式存儲,并且Key都是 /contiv.io/ 開頭的形式. 比如 /contiv.io/state/xxx 記錄配置信息, /contiv.io/oper/xxx 記錄運行信息
HA為了實現(xiàn)HA(高可用), Master 通常在多臺宿主機上運行運行多個進程實例, 但同一時刻, 有且只有一個宿主機上的進程以 Leader 角色運行, 其余都以 Follow 角色運行. Master進程啟動后, 首先以Follow 角色運行, 并且嘗試去獲取分布式數(shù)據(jù)庫(Distributed KV Store)中的一把 Leader Lock (路徑為/contiv.io/lock/netmaster/leader), 若能獲取到, 則將角色切換為 Leader , 若不能獲取到,則還是以 Follow 角色運行.
REST ServerService表示Master對外提供的服務(wù),Master進程啟動后, 會將自身運行的Service信息(IP地址 端口號 角色)寫入分布式數(shù)據(jù)庫,這個過程稱為 Service 注冊。在當前版本中Master 會注冊 netmaster 和 netmaster.rpc 兩個服務(wù),前者開放9999端口供netctl 控制整個系統(tǒng),后者開放9001端口供OpenFlow控制器使用。
Policy EnginePolicy Engine用來管理控制容器之間的網(wǎng)絡(luò)流量隔離優(yōu)先級策略. 比如設(shè)置容器A禁止除了容器B以外的其他容器訪問XXXX其端口. Master 的 REST Server在 /api/v1/policys/{keys} 和 /api/v1/rules/{keys} 都設(shè)置了相應(yīng)的Handler, 當用戶通過netctl 的命令添加或刪除策略時, Master會調(diào)用對應(yīng)的Handler, 最終通過設(shè)置 iptable 防火墻完成既定功能.
Contiv-Master 源碼分析 master daemon 初始化Master進程的入口在 netmaster/main.go, 它主要進行命令行參數(shù)的解析, 將解析的結(jié)果放入daemon.MasterDaemon 結(jié)構(gòu), 之后調(diào)用 MasterDaemon 的 Init() 方法初始化進程
接著, Master進程啟動狀態(tài)機, 它只有兩個狀態(tài),即前面提到的Master進程的角色, 啟動之初都是以 Follower 角色運行, 若是能獲得 Leader 鎖, 則調(diào)用becomeLeader()進入 Leader 狀態(tài)
以Leader角色運行時, Master進程首先創(chuàng)建一個APIController, 它創(chuàng)建REST Server提供給netctl , 設(shè)置各個URL對應(yīng)的相應(yīng)的處理函數(shù).
Service 注冊, 注冊 netmaster 和 netmaster.rpc 服務(wù)
初始化策略管理器, 這一步主要是從數(shù)據(jù)庫中恢復(fù)各個Policy
設(shè)置面向plugin的Server, 例如, 當plugin要向Master申請IP時,就會向"plugin/allocAddress"發(fā)送請求.
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/27528.html
摘要:網(wǎng)絡(luò)結(jié)構(gòu)上圖為的網(wǎng)絡(luò)模型,大體上可分為和兩個組件其中運行在每臺宿主機上主要負責與交互實現(xiàn)插件邏輯配置底層進程實現(xiàn)具體的網(wǎng)絡(luò)功能組件是與交互的核心邏輯以常用的為例該邏輯即是實現(xiàn)框架下所規(guī)定的種種接口實現(xiàn)與的消息交互關(guān)于和請查看與框架與實現(xiàn)同 Contiv網(wǎng)絡(luò)結(jié)構(gòu) showImg(https://segmentfault.com/img/remote/1460000017001034?w=...
摘要:網(wǎng)絡(luò)策略的作用可以通過網(wǎng)絡(luò)策略來限制容器之間的訪問行為,以實現(xiàn)用戶對安全性的方面的要求。搭建過程環(huán)境準備參考思科網(wǎng)絡(luò)插件一環(huán)境部署搭建環(huán)境,由于本文并不關(guān)注網(wǎng)絡(luò)的跨主機特性,因此只在一臺宿主機上啟動進程和進程就夠了。 網(wǎng)絡(luò)策略的作用 Contiv可以通過網(wǎng)絡(luò)策略來限制容器之間的訪問行為,以實現(xiàn)用戶對安全性的方面的要求。比如,我可以限制容器僅對源IP在特定范圍的其他容器開放特定的端口,而...
摘要:什么是官網(wǎng)是一個用于跨虛擬機裸機公有云或私有云的異構(gòu)容器部署的開源容器網(wǎng)絡(luò)架構(gòu)。作為業(yè)界最強大的容器網(wǎng)絡(luò)架構(gòu),具有層層和模式,能夠與思科基礎(chǔ)設(shè)施進行本地集成,并使用豐富的網(wǎng)絡(luò)和安全策略將應(yīng)用意圖與基礎(chǔ)設(shè)施功能進行映射。 什么是Contiv Contiv (官網(wǎng))是一個用于跨虛擬機、裸機、公有云或私有云的異構(gòu)容器部署的開源容器網(wǎng)絡(luò)架構(gòu)。作為業(yè)界最強大的容器網(wǎng)絡(luò)架構(gòu),Contiv具有2層、...
摘要:思科云平臺和解決方案高級副總裁解釋說正確配置以在本地和公有云中部署應(yīng)用需要定制集成,這從操作上來說可能是一項挑戰(zhàn)。近年來,容器由于其靈活性已經(jīng)成為部署應(yīng)用的一種流行方式。容器技術(shù)將工作負載捆綁成輕量級的便攜式軟件包,可以在不同類型的基礎(chǔ)設(shè)施之間輕松移動。今天早上公布的Cisco Hybrid Solution for Kubernetes on AWS解決方案旨在消除大規(guī)模使用容器的障礙。 ...
閱讀 1881·2021-11-15 11:39
閱讀 1088·2020-12-03 17:06
閱讀 742·2019-12-27 11:42
閱讀 3277·2019-08-30 13:59
閱讀 1469·2019-08-26 13:22
閱讀 3291·2019-08-26 12:15
閱讀 2479·2019-08-26 10:22
閱讀 1566·2019-08-23 18:40