1. <ul id="0c1fb"></ul>

      <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
      <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区

      RELATEED CONSULTING
      相關咨詢
      選擇下列產品馬上在線溝通
      服務時間:8:30-17:00
      你可能遇到了下面的問題
      關閉右側工具欄

      新聞中心

      這里有您想知道的互聯(lián)網營銷解決方案
      Dockerswarm集群的搭建部署

      一. Docker Swarm 的概念和原理

      Docker Swarm 簡介

      Swarm 是使用 Objective C語言開發(fā)的,在早期的版本中編寫Swarm的應用程序也使Objective C,從Swarm 2.0版開始提供了對Java語言的支持,將來可能支持JavaScript、C++、Python、Perl等語言。Swarm的最新版本 Swarm 2.1.1可以在不同版本的Unix、Linux、Windows95、Windows98、WindowsNT、Windows2000環(huán)境下運行。

      創(chuàng)新互聯(lián)建站服務項目包括昭平網站建設、昭平網站制作、昭平網頁制作以及昭平網絡營銷策劃等。多年來,我們專注于互聯(lián)網行業(yè),利用自身積累的技術優(yōu)勢、行業(yè)經驗、深度合作伙伴關系等,向廣大中小型企業(yè)、政府機構等提供互聯(lián)網行業(yè)的解決方案,昭平網站推廣取得了明顯的社會效益與經濟效益。目前,我們服務的客戶以成都為中心已經輻射到昭平省份的部分城市,未來相信會繼續(xù)擴大服務區(qū)域并繼續(xù)獲得客戶的支持與信任!

      社會經濟系統(tǒng)的仿真,是建立在復雜適應系統(tǒng)(Complex Adaptive System 簡稱CAS)理論研究基礎上的。通過"相對簡單的微觀個體活動可以突現(xiàn)出宏觀層面的復雜行為",給社會科學的研究與實踐乘上當代新技術的航班打開了通路。

      Docker Swarm 工作原理

      Docker 客戶端通過 Docker API 向 Swarm 管理端發(fā)送請求,Swarm Manager 通過守護進程調用集群中的某個節(jié)點來執(zhí)行任務。因為容器都是運行在節(jié)點上,Swarm 作為一個獨立的集群管理工具,故并不會因某些原因導致不能正常工作而影響集群內所有節(jié)點的正常運行。當服務恢復正常后,Swarm 會讀取日志來執(zhí)行集群的恢復動作。架構圖如圖 1:

      圖 1.Docker Swarm 架構圖
      Docker swarm集群的搭建部署

      作用

      從1994年開始,桑塔費研究所(SFI)開展了一個研究項目,以開發(fā)一個工具集用來幫助科學家們分析復雜適應系統(tǒng),這個模擬工具集就叫做Swarm。1995年,SFI發(fā)布了Swarm的beta版。

      用戶可以使用Swarm提供的類庫構建模擬系統(tǒng),使系統(tǒng)中的主體和元素通過離散事件進行交互。由于Swarm沒有對模型和模型要素之間的交互作任何約束,Swarm應當可以模擬任何物理系統(tǒng)或社會系統(tǒng)。事實上,在各個廣泛的研究領域都有人在用Swarm編寫程序,這些領域包括生物學、經濟學、物理學、化學和生態(tài)學等。

      Swarm項目的目的就是通過科學家和軟件工程師的合作制造一個高效率的、可信的、可重用的軟件實驗儀器。它能給予科學家們一個標準的軟件工具集,就象提供了一個設備精良的軟件實驗室,幫助人們集中精力于研究工作而非制造工具。

      Swarm實際上是一組用Objective-C語言寫成的類庫,這是一種面向對象的C語言。一部分圖形界面,如圖表、按鈕和窗口是用TCL/TK描述的。Swarm最初只能在Unix操作系統(tǒng)和X Windows界面下運行,1998年四月,伴隨著 1.1版的發(fā)布,Swarm推出了可以在Windows 95/98/NT上運行的版本。1999年,Swarm又提供了對Java的支持,從而使Swarm越來越有利于非計算機專業(yè)的人士使用。

      二. Docker Swarm要點

      Swarm的負載非常低。據(jù)我觀察,Swarm進行調度和通信的CPU負載非常低。因此,Swarm的管理節(jié)點(Manager)可以同時作為工作節(jié)點(Worker)。如果你需要搭建一個非常大的集群(1000+ 節(jié)點),管理節(jié)點需要更多資源,但是對于中小型集群來說,管理節(jié)點需要的資源可以忽略不計。

      Swarm集群的網絡通信(服務發(fā)現(xiàn),負載均衡以及容器間通信)非常可靠。當你開啟一個服務的端口之后,在Swarm集群中的任何一個節(jié)點都可以訪問它。負載均衡也是由Swarm提供的。后文會提到一些之前遇到的問題,但是Docker 1.13之后,這些問題都解決了。

      三. 實驗環(huán)境

      主機IP地址服務
      docker01192.168.1.11swarm+overlay+webUI
      docker02192.168.1.13nginx
      docker03192.168.1.20nginx

      三臺主機都關閉防火墻,禁用selinux,修改主機名,時間同步,并添加域名解析。

      docker版本必須是:v1.12版本開始(可使用docker version查看版本)

      1.關閉防火墻,禁用selinux

      [root@localhost ~]# systemctl stop firewalld
      [root@localhost ~]# hostnamectl set-hostname docker03
      [root@localhost ~]# su -

      2.時間同步

      mv /etc/localtime /etc/localtime.bk
      cp /usr/share/zoneinfo/Asia/Shanghai/etc/localtime

      3.修改主機名(三臺都要)

      [root@localhost ~]# hostnamectl set-hostname docker01
      [root@localhost ~]# su -

      4.添加域名解析

      [root@docker01 ~]# vim  /etc/hosts
      
      127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
      ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
      192.168.1.11 docker01
      192.168.1.13 docker02
      192.168.1.20 docker03

      四. swarm原理

      swarm:作用運行docker engin的多個主機組成的集群

      node:每一個docker engin都是一個node(節(jié)點),分為manager和worker。

      manager node:負責執(zhí)行容器的編排和集群的管理工作,保持并維護swarm處于期望的狀態(tài)。swarm可以有多個manager node,他們會自動協(xié)調并選舉一個leader執(zhí)行編排任務。但相反,不能沒有manager node。

      worker node:接受并執(zhí)行由manager node派發(fā)的任務,并且默認manager node也是一個worker node,不過可以將它設置為manager-only node,讓他只負責編排和管理工作。

      service:用來定義worker上執(zhí)行的命令。

      基本命令操作

      docker swarm leave:申請離開一個集群,之后查看節(jié)點狀態(tài)會變成down,然后可通過manager node 將其刪除
      docker node rm xxx:刪除某個節(jié)點

      docker swarm join-token [manager|worker]:生成令牌,可以是manager或worker身份。

      docker node demote(降級):將swarm節(jié)點的為manager降級為worker

      docker node  promote(升級):將swarm節(jié)點的work升級為manager

      docker node ls:查看群集的信息(只可以在manager角色的主機上查看)

      docker service scale web05=6:容器的動態(tài)擴容及縮容

      docker service ps web01: 查看創(chuàng)建的容器運行在哪些節(jié)點

      docker service ls: 查看創(chuàng)建的服務

      docker swarm leave: 脫離這個群集

      docker node rm docker03: 在manager角色的服務器上移除docker03

      docker node update --availability drain docker01: 設置主機docker01以后不運行容器,但已經運行的容器并不會停止

      docker node update --label-add mem=max docker03: 更改docker03主機的標簽為mem=max

      docker service update --replicas 8 --image 192.168.20.6:5000/lvjianzhao:v2.0 --container-label-add 'node.labels.mem==max' lvjianzhao05: 將服務升級為8個容器,并且指定在mem=max標簽的主機上運行

      五. docker01 初始化集群

      [root@docker01 ~]# docker swarm init --advertise-addr 192.168.1.11

      --advertise-addr:指定與其它docker通信的地址。

      上邊返回的結果告訴我們:初始化成功,并且,如果想要添加work節(jié)點運行下面的命令:

      Docker swarm集群的搭建部署

      注意:token令牌只有24小時的有效期

      上面命令執(zhí)行后,該機器自動加入到swarm集群。這個會創(chuàng)建一個集群token,獲取全球唯一的 token,作為集群唯一標識。后續(xù)將其他節(jié)點加入集群都會用到這個token值。 其中,--advertise-addr參數(shù)表示其它swarm中的worker節(jié)點使用此ip地址與manager聯(lián)系。命令的輸出包含了其它節(jié)點如何加入集群的命令。

      如果想要添加manager節(jié)點:運行下面命令

      Docker swarm集群的搭建部署

      六.swarm集群的簡單操作

      1.docker02和docker03以worker加入集群

      [root@docker03 ~]# docker swarm join --token SWMTKN-1-5kxn9wloh7npnytklwbfciesr9di7uvu521gwnqm9h2n0pbokj-1e60wt0yr5583e4mzwbxnn3a8 192.168.1.11:2377
      docker01查看集群
      [root@docker01 ~]# docker node ls

      Docker swarm集群的搭建部署

      注意:這里的”*****“代表的是當前所屬的節(jié)點

      2.刪除集群中節(jié)點

      docker02和docker03申請離開一個集群
      [root@docker02 ~]# docker swarm leave 
      docker刪除docker02和docker03節(jié)點
      [root@docker01 ~]# docker node rm docker02 
      [root@docker01 ~]# docker node rm docker03
      docker01查看集群
      [root@docker01 ~]# docker node ls

      Docker swarm集群的搭建部署

      3.docker02和docker03以manager加入集群

      docker01生成manager令牌
      [root@docker01 ~]# docker swarm join-token manager 

      Docker swarm集群的搭建部署

      docker02和docker03加入集群
      docker swarm join --token SWMTKN-1-5kxn9wloh7npnytklwbfciesr9di7uvu521gwnqm9h2n0pbokj-cz6hbyv9r5htyqwj5tfol65aa 192.168.1.11:2377
      docker01查看集群
      [root@docker01 ~]# docker node ls

      Docker swarm集群的搭建部署

      4.docker02和docker03降級

      docker01(manager)把docker02和docker03降級成worker
      [root@docker01 ~]# docker node  demote docker02
      [root@docker01 ~]# docker node  demote docker03
      查看集群
      [root@docker01 ~]# docker node ls

      Docker swarm集群的搭建部署

      七. 部署docker swarm集群網絡

      overlay:覆蓋型網絡

      overlay networks 管理Swarm中docker守護進程間的通信。可以將容器附加到一個或多個已存在的overlay網絡上,使容器與容器之間能夠通信;

      [root@docker01 ~]# docker network create -d overlay --attachable docker
      //attachable:這個參數(shù)必須要加,否則不能用于容器。

      在創(chuàng)建網絡的時候,我們并沒有部署一個存儲服務,比如consul,那是因為docker swarm自帶存儲。

      docker01查看網絡

      但是會發(fā)現(xiàn)其他兩臺并不會發(fā)現(xiàn)此網絡,需等基于此網絡創(chuàng)建service服務就可以看到了

      [root@docker01 ~]# docker network ls

      Docker swarm集群的搭建部署

      八. docker01部署一個圖形化webUI界面

      1.docker01 導入鏡像

      [root@docker01~]# docker pull dockersamples/visualizer

      2.基于鏡像啟動一臺容器

      [root@docker01 ~]# docker run -d -p 8080:8080 -e HOST=192.168.1.100 -e PORT=8080 -v /var/run/docker.sock:/var/run/docker.sock --name visualiaer  dockersamples/visualizer

      3.通過瀏覽器訪問驗證http://192.168.1.11:8080/

      Docker swarm集群的搭建部署

      如果訪問不到網頁,需開啟路由轉發(fā)

      [root@docker01 ~]# echo net.ipv4.ip_forward = 1 >> /etc/sysctl.conf 
      [root@docker01 ~]# sysctl -p

      九. 創(chuàng)建service(服務)

      1. 基于nginx容器創(chuàng)建一個service服務
      [root@docker01 ~]#docker pull nginx
      //下載nginx鏡像(三臺都要)
      [root@docker01 ~]# docker service create --replicas 1 --network  docker --name web1 -p 80:80 nginx:latest 
      [root@docker01 ~]# docker service create --replicas 1 --network  docker --name web2 -p 80 nginx:latest 

      //--replicas:副本數(shù)量

      大概可以理解為一個副本等于一個容器

      2. 查看創(chuàng)建的service服務
      [root@docker01 ~]# docker service ls

      Docker swarm集群的搭建部署

      單獨查看一個servicefuw
      [root@docker01 ~]# docker service  ps web1

      Docker swarm集群的搭建部署

      [root@docker01 ~]# docker service  ps web2

      Docker swarm集群的搭建部署

      3. web界面查看

      Docker swarm集群的搭建部署

      4. 基于nginx容器創(chuàng)建五個service服務
      [root@docker01 ~]# docker service create --replicas 5 --network  docker --name web -p 80 nginx:latest 
      web界面查看

      Docker swarm集群的搭建部署

      5. 掛起docker02
      web查看(發(fā)現(xiàn)服務都分配到其他服務器了)

      Docker swarm集群的搭建部署

      6. 恢復docker02
      web查看(發(fā)現(xiàn)服務沒有回到docker02)

      Docker swarm集群的搭建部署

      十、實現(xiàn)docker容器的擴容及縮容

      1. 刪除web1和web2服務

      [root@docker01 ~]# docker service rm web1 web2

      2. 容器的擴容和縮減

      (1)擴容

      [root@docker01 ~]# docker service scale web=8

      Docker swarm集群的搭建部署

      (2)縮減

      [root@docker01 ~]# docker service scale web=3

      Docker swarm集群的搭建部署

      3.設置manager node不參加工作

      [root@docker01 ~]# docker node update docker01 --availability drain

      設置主機docker01以后不運行容器,但已經運行的容器并不會停止
      “--availability”選項后面共有三個選項可配置,如下:
      “active”:工作;“pause”:暫時不工作;“drain”:永久性的不工作

      [root@docker01 ~]# docker node ls

      Docker swarm集群的搭建部署

      web界面查看

      Docker swarm集群的搭建部署


      文章標題:Dockerswarm集群的搭建部署
      網頁地址:http://www.ef60e0e.cn/article/gcjjgo.html
      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区
      1. <ul id="0c1fb"></ul>

        <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
        <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

        尉犁县| 城固县| 泸水县| 商都县| 泗阳县| 葵青区| 平江县| 伊吾县| 葫芦岛市| 玉龙| 洞头县| 遂昌县| 嫩江县| 定西市| 泸西县| 景宁| 莱州市| 颍上县| 陇川县| 鸡泽县| 海城市| 安庆市| 娄底市| 汨罗市| 广西| 昔阳县| 凯里市| 富川| 松江区| 东乡族自治县| 锦屏县| 怀集县| 凌云县| 卓尼县| 开阳县| 宁陵县| 修武县| 满城县| 威海市| 安国市| 西青区|