中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Docker swarm mode有什么用

發布時間:2021-12-13 16:37:15 來源:億速云 閱讀:186 作者:iii 欄目:云計算

這篇文章主要講解了“Docker swarm mode有什么用”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Docker swarm mode有什么用”吧!

    Docker從1.12引入了swarm模式,swarm mode用來管理集群化的docker engines,被稱作swarm。可以使用docker CLI來創建swarm,給swarm上部署應用,管理swarm的行為等等。。你可以創建一個集群包含一個或者多個docker engines,這個被叫做swarm mode。一個swarm包含了多個node,node可以是物理機、虛擬機等等。node包含了兩個角色:managers、workers

manager node:

  1. 維護集群狀態

  2. 調度服務

  3. 服務swarm模式下的HTTP API

    manager之間采用raft協議通訊,所以可以通過部署多臺managers建立manager的高可用,但是manager必須是奇數個

worker node:

  1.  work nodes就是docker engine實例,唯一的用途就是執行容器。你可以創建一個只有一個manager的swarm,但是不能創建一個只有一個node,確沒有manager的swarm集群。

在部署一個app容器鏡像到docker的swarm模式的時候,一般是創建一個service。當你創建一個service的時候,你要指定那個鏡像會被使用,并且要在鏡像里面執行上面命令,你也可以指定這個服務的一些其他選項:

  1. 在swarm模式下,這個service對外暴露的端口

  2. 一個overlay網絡用來連接到swarm下的其他service

  3. cpu和mem的使用配額限制

  4. 一個滾動升級策略

  5. 這個鏡像在運行時的副本個數

有兩種類型的service部署模式:replicated和global

  1. 在replicated service模式下,你可以指定該service你想有多少個task在運行,比如,你可以指定一個http服務有三個replicas,每個都提供相同的內容

  2. 在global service模式下,該service在每一個node上運行一個task,這里不需要預先設定task的數量,任何時候只要你在集群里面加入新的node,調度系統都會在該新node上自動部署該服務,這種場景適合在機器上部署監控客戶端等等。

docker允許你創建service,service可以運行tasks,一個service是一個描述的最終狀態,task是工作的work,work通過swarm來調度到node節點上,服務創建使用的是下面的流程:

  1. 使用docker service create創建服務

  2. 請求到達Docker manager節點上

  3. Docker manager節點調度該請求運行到一個workers node上

  4. 每個service可以啟動多個tasks實例

  5. 每個tasks實例都有自己的生命周期

一個task會一直運行到它的任務完成,如果一個task停止了,該task是不會再次運行的。task會通過一系列狀態最終完成或者失敗,task一般有以下狀態:

  • NEW    初始化task

  • PENDING    阻塞狀態

  • ASSIGNED    分配到node狀態

  • ACCEPTED    被node接收狀態

  • PREPARING    準備狀態

  • STARTING    啟動狀態

  • RUNNING    運行狀態

  • COMPLETE    正常運行完畢狀態

  • FAILED    運行失敗狀態

  • SHUTDOWN    docker關閉該task狀態

  • REJECTED    work node拒絕該task狀態

  • ORPHANED    node節點宕機太長狀態

  • REMOVE

當你第一次安裝并啟動docker engine時,swarm模式是默認被禁止的。當swarm模式打開后,你可以通過swarm service來管理services,有兩種方式可以運行在swarm模式:

  • 創建一個新的swarm

  • 加入現有的swarm

docker engine創建swarm的流程:

  1. 交換當前node到swarm模式

  2. 創建一個名為default的swarm

  3. 指定當前node為當前swarm的leader manager

  4. 命名該node的名稱為該主機名

  5. 配置manager監聽在本機的2377端口

  6. 設置當前node為active狀態,這意味這該node可以接收集群調度來的tasks

  7. 啟動一個內部的分布式數據存儲系統

  8. 默認生成一個自簽名的CA證書

  9. 生成一個tokens,為后面的worker和manager加入到該swarm

  10. 創建一個名為ingress的overlay網絡,對外暴露swarm上的服務

    manager node使用advertise地址來接受其他node訪問Swarmkit API and overlay networking的請求,其他在swarm集群中的node,必須可以訪問manager的advertise地址 ,如果你不指定advertise地址,docker會自動檢查系統是否有一個單ip地址,如果有,則監聽在該地址的2377端口。如果該系統有多個ip地址,你必須通過--advertise-addr來指定一個地址。

    新的node需要一個token才能加入現有swarm集群,worker node使用的token不同于manager node使用的token,node只有使用join-token才能加入swarm,當Rotating join token的時候,是不會影響已經加入swarm集群的node的,rotation token可以確保老的token不能被所有的新node使用來加入swarm集群。

下面是swarm的一些關鍵點:

  1. 一個swarm包含了多個運行在swarm mode下的docker host,分別由manager和workers組成。manager來管理成員和授權,worker來運行swarm service。一個docker host可以是一個manager,也可以是一個worker,或者即是manager也是worker。還有一個大的優勢是,如果swarm service中的容器是standalone模式的,你可以在修改service的配置后(networks、volumes) 不用重啟service。docker會自動處理這些。

  2. 當一個docker host運行在swarm模式,你照樣可以運行standalone模式的容器,但是swarm只能管理swarm service。

  3. node 一個docer engine就是一個node,當你需要部署應用到swarm的時候,需要在manager node上提交部署作業,manager node會派遣task到worker node上。manager node也有編排功能。worker nodes接收并執行task。

  4. service 一個service是定義好的在worker node上執行的task,swarm系統是一個中心結構的系統,當你定義好一個service的時候,你需要制定使用的鏡像以及在鏡像里面執行的命令。 在replicated services模式下,swarm manager分配定義好的replica task的副本數量的task在worker node上 在global services模式下,swarm service只運行一個task在worker node上

  5. tasks 一個task包括一個docker容器和在容器里面運行的命令。task會被swarm自動調度。manager分配task到worker上。一旦task被分配到一個node上,該task就不能移動到其他node上了,除非該node fail。

  6. Load balancing swarm使用 ingress load balancing,swarm manager可以設置一個PublishedPort給service,如果不指定PublishedPort,則是在30000-32767這個范圍內自動選擇。外部的請求,例如LB,可以通過PublishedPort來訪問服務,但是這個LB的服務必須在node集群上,swarm集群中的所有節點都會連接到正在運行的service上,而不論該node上是不是有運行該service服務。在swarm內部有一個DNS,可以自動的分片在swarm中每個service的entry,swarm manager使用內部LB來分發請求到集群內部的service上

感謝各位的閱讀,以上就是“Docker swarm mode有什么用”的內容了,經過本文的學習后,相信大家對Docker swarm mode有什么用這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

秦安县| 沭阳县| 营山县| 株洲县| 仙游县| 资中县| 海兴县| 安平县| 盐城市| 五常市| 洪江市| 邹城市| 盐津县| 松溪县| 正定县| 邯郸市| 嘉峪关市| 和田市| 张家口市| 台东市| 武城县| 昌都县| 年辖:市辖区| 宜都市| 文化| 临邑县| 电白县| 白水县| 井陉县| 桦甸市| 宁武县| 玉龙| 涿州市| 东光县| 红桥区| 东山县| 安化县| 三门峡市| 剑川县| 荆门市| 高邑县|