您好,登錄后才能下訂單哦!
怎么理解Docker中的Swarm,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
Swarm是去中心化的,并集成進了Docker Engine,通過Docker CLI管理。
swarm
集群包含兩類節(jié)點
Manager Node
—— 負責調(diào)度Task(不推薦超過7個,其有兩種狀態(tài):leader、reachable,集群操作需在管理節(jié)點)
Worker Node
—— 接受Manager Node調(diào)度并指派的Task
每個swarm node
的availability
包括:
Active:接受task
Pause:不接受task,已有task仍運轉
Drain:不接受task,已有task被交接
通過routing mesh策略(基于lvs),swarm集群所有節(jié)點都會監(jiān)聽服務端口(沒有啟動服務的節(jié)點會自動將流量路由到服務駐留節(jié)點)
集群內(nèi)服務開放到外部端口后,節(jié)點由preparing轉為running狀態(tài)
一個集群節(jié)點上可以駐留多個重復服務
Docker1.6引入Swarm
獨立于Docker engine
使用Docker CLI
Docker 1.12前幾周發(fā)布了Swarm Kit
使用自己的CLI(swarmd負責管理,swarmctl用于控制)
是Swarm mode的基礎
Docker 1.12發(fā)布了Swarm Mode(功能較完整的容器編排工具)
集成到了Docker engine中(docker swarm子命令)
使用Docker CLI,引入服務的概念
基于Swarmkit編寫
# 轉入SwarmMode(當前機即作為集群管理節(jié)點) docker swarm init --advertise-addr Manager節(jié)點ip:端口 # 新建token docker swarm join-token worker|manager # node加入集群成為一個工作副本 docker swarm join --token 令牌 Manager節(jié)點ip:端口 # 查看集群節(jié)點 docker node ls # 檢查指定節(jié)點 docker node inspect self|NODE # 節(jié)點狀態(tài)變更 docker node update --availability drain manager # 設置Manager Node只具有管理功能 # 節(jié)點打標簽 docker node update --label-add 鍵名稱=值 # 節(jié)點提權/降權 docker node promote 節(jié)點 # 升級為manager node docker node demote 節(jié)點 # 降級為worker node # 節(jié)點退出集群 docker swarm node leave [--force]
集群構建時,節(jié)點通信默認2377端口
集群負載均衡網(wǎng)絡的服務發(fā)現(xiàn)工作在端口:
7946 TCP/UDP:集群的服務發(fā)現(xiàn)
4789 UDP:集群服務的路由網(wǎng)絡
docker network create --driver overlay 網(wǎng)絡名 #創(chuàng)建網(wǎng)絡(網(wǎng)絡是隔離和安全加密的,同一網(wǎng)絡節(jié)點才能互訪) docker network ls #列表網(wǎng)絡 docker network inspect 網(wǎng)絡名 #監(jiān)控網(wǎng)絡
看完上述內(nèi)容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業(yè)資訊頻道,感謝您對億速云的支持。
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。