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
      相關(guān)咨詢
      選擇下列產(chǎn)品馬上在線溝通
      服務(wù)時間:8:30-17:00
      你可能遇到了下面的問題
      關(guān)閉右側(cè)工具欄

      新聞中心

      這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
      怎樣使用Shipyard部署DockerSwarm集群和跨主機Overlay網(wǎng)絡(luò)

      怎樣使用Shipyard部署Docker Swarm集群和跨主機Overlay網(wǎng)絡(luò),相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

      創(chuàng)新互聯(lián)專注于撫寧企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站開發(fā),商城網(wǎng)站開發(fā)。撫寧網(wǎng)站建設(shè)公司,為撫寧等地區(qū)提供建站服務(wù)。全流程按需求定制網(wǎng)站,專業(yè)設(shè)計,全程項目跟蹤,創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)

      官網(wǎng)上給出了幾種Docker Swarm集群的部署方法,分別是基于Docker ToolBox 以及 Amazon AWS 。

      Shipyard 是一個非常牛逼的docker集群管理系統(tǒng),而且有著非常友好的Web界面。更為變態(tài)的是Shipyard有一個比較牛逼的一鍵自動部署腳本,不過里面的服務(wù)發(fā)現(xiàn)與注冊使用的是 etcd 而不是 consul 的,但是 consul 是 docker 官網(wǎng)推薦的,本文主要介紹使用shipyard以及 consul 來手工部署 Swarm 集群。

      環(huán)境準備

      實驗環(huán)境為三臺服務(wù)器,各個服務(wù)器的角色、配置如下表所示:

      IP操作系統(tǒng)角色
      192.168.0.47Ubuntu 14.04 內(nèi)核3.16.0consul 節(jié)點
      192.168.0.56Ubuntu 14.04 內(nèi)核3.16.0swarm manager節(jié)點
      192.168.0.57Ubuntu 14.04 內(nèi)核3.16.0swarm agent 節(jié)點

      安裝Docker

      官方提供了各個平臺的docker安裝手冊, 讀者可以參考 。為了偷懶方便,在這里我們使用了Docker公司提供的一鍵安裝腳本來進行docker的安裝

      curl -sSL https://get.docker.io/ubuntu/ | sudo sh

      安裝完畢,我們還需要修改 docker 的默認啟動參數(shù), 修改下面的文件:

      vi /etc/default/docker

      添加這么一行:

       DOCKER_OPTS="-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock"

      然后重新啟動Docker服務(wù)

      service start docker

      部署Consul節(jié)點

      在192.168.0.47也就是consul節(jié)點上,運行如下命令來部署服務(wù)發(fā)現(xiàn)模塊

      docker run -d \
          -p 8300:8300 \
          -p 8301:8301 \
          -p 8301:8301/udp \
          -p 8302:8302 \
          -p 8302:8302/udp \
          -p 8400:8400 \
          -p 8500:8500 \
          -p 8600:53 \
          -p 8600:53/udp \
          --restart=always \
          --name=consul progrium/consul -server -bootstrap -ui-dir=/ui -advertise 192.168.0.47 -client 0.0.0.0

      解釋下各個參數(shù):

      • -d 容器在后臺運行, detached mode

      • --restart=always 重啟模式, always 表示永遠

      • -p 8400:8400 映射 consul的 rpc 端口8400

      • -p 8500:8500 映射到公共 IP 這樣方便我們使用 UI 界面

      • -p 53:53/udp 綁定udp 端口53(默認 DNS端口)在 docker0 bridge 地址上

      • -advertise 192.168.0.47 consul服務(wù)對外公布的 IP, 這里特意設(shè)置為0.47, 否則 service 會顯示為內(nèi)部的容器的 IP 地址, 這樣就訪問不到了

      • -client 0.0.0.0 consul 監(jiān)聽的地址

      部署Swarm Manager節(jié)點

      Step 1

      先在192.168.0.56即swarm manager節(jié)點上安裝 rethinkdb 數(shù)據(jù)庫

      docker run -d --restart=always --name shipyard-rethinkdb rethinkdb

      Step 2

      然后繼續(xù)安裝 swarm manager,需要注意的是將192.168.0.47替換為實際上的 consul 節(jié)點的 ip地址

      docker run -d -p 3375:3375 --restart=always --name shipyard-swarm-manager swarm:latest manage --host tcp://0.0.0.0:3375 consul://192.168.0.47:8500

      Step 3

      接著在manager節(jié)點上安裝 swarm agent,這里需要注意的是192.168.0.47是consul節(jié)點的IP地址,192.168.0.56是manager的IP地址,將兩者替換為你實際環(huán)境中的節(jié)點地址

      docker run -d --restart=always --name shipyard-swarm-agent swarm:latest join --addr 192.168.0.56:2375 consul://192.168.0.47:8500

      Step 4

      最后部署 shipyard 管理模塊

      docker run -d --restart=always --name shipyard-controller --link shipyard-rethinkdb:rethinkdb --link shipyard-swarm-manager:swarm -p 9090:8080 shipyard/shipyard:latest    server -d tcp://swarm:3375

      部署完畢后可以在瀏覽器訪問http://192.168.0.56:9090 , 就能看到 shipyard 的登錄頁面, 默認賬戶是 admin,密碼shipyard。

      部署Swam Agent節(jié)點

      節(jié)點agent的部署比較簡單,只需要參考manager節(jié)點上的步驟3

      docker run -d --restart=always --name shipyard-swarm-agent swarm:latest join --addr 192.168.0.57:2375 consul://192.168.0.47:8500

      類似的,192.168.0.47是consul節(jié)點的IP地址,192.168.0.57是agent節(jié)點的IP地址,將兩者替換為你實際環(huán)境中的節(jié)點地址

      部署Overlay網(wǎng)絡(luò)

      為了能夠在Docker Swarm集群上使用跨主機Overlay網(wǎng)絡(luò),還需要做一些配置修改。在manager節(jié)點和agent節(jié)點上,

      vi /etc/default/docker

      將這一行

       DOCKER_OPTS="-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock"

      修改為

      DOCKER_OPTS="-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock --cluster-store=consul://192.168.0.47:8500 --cluster-advertise=eth0:2375"

      這里192.168.0.47為consul節(jié)點的IP地址,eth0為manager/agent節(jié)點上192.168.0.56/57所在的網(wǎng)卡名。然后重新啟動Docker服務(wù)

      service start docker

      下面創(chuàng)建一個overlay網(wǎng)絡(luò)

      docker -H 192.168.0.56:3375 network create -d overlay test-net

      注意:使用docker客戶端對docker swarm 集群進行操作時需要指定集群的地址,我們實驗中創(chuàng)建的集群對外暴露的IP和端口是192.168.0.56:3375,而使用端口2375則是對單個docker主機進行操作。

      查看swarm集群中所有的網(wǎng)絡(luò)

       $ docker -H 192.168.0.56:3375 network ls
       NETWORK ID          NAME                    DRIVER
       1abc3888c68f        node1/bridge            bridge              
       7c21108c289f        node1/docker_gwbridge   bridge              
       fd7873463f44        node1/host              host                
       61808ed752b3        node1/none              null                
       3239dd516cb5        node2/bridge            bridge              
       049b996b6ec0        node2/docker_gwbridge   bridge              
       045824d9569c        node2/host              host                
       2a0ec5e15ce8        node2/none              null                
       33df13f850c5        test-net                overlay

      可以看到test-net網(wǎng)絡(luò)同時在56和57上創(chuàng)建,下面我們在此網(wǎng)絡(luò)上創(chuàng)建容器

      $ docker -H 192.168.0.56:3375 run -itd --net test-net --name test4 ubuntu:14.04 
      db7113bae6d06922a133cef92f01701c0f35156b374ae14e31e13ac54500e979
      $ docker -H 192.168.0.56:3375 run -itd --net test-net --name test5 ubuntu:14.04 
      dbea32bd623ce225af426470f1f30f5f76d5f5148a63893e2f9f84b4628cb171

      看到兩個容器分別分布在兩個節(jié)點上

      docker -H 192.168.0.56:3375 ps -a
      CONTAINER ID        IMAGE                      COMMAND                  CREATED             STATUS              PORTS                                   NAMES
      dbea32bd623c        ubuntu:14.04               "/bin/bash"              2 minutes ago       Up About a minute                                           node1/test5
      db7113bae6d0        ubuntu:14.04               "/bin/bash"              2 minutes ago       Up 2 minutes                                                node2/test4
      da671da259ce        swarm:latest               "/swarm join --addr 1"   2 hours ago         Up 2 hours          2375/tcp                                node2/shipyard-swarm-agent
      4d9725a9f0de        shipyard/shipyard:latest   "/bin/controller serv"   2 hours ago         Up 2 hours          192.168.0.56:9090->8080/tcp             node1/shipyard-controller
      d994169e39c7        rethinkdb                  "rethinkdb --bind all"   2 hours ago         Up 2 hours          8080/tcp, 28015/tcp, 29015/tcp          node1/shipyard-rethinkdb,node1/shipyard-controller/rethinkdb
      5f5b793a358d        swarm:latest               "/swarm join --addr 1"   2 hours ago         Up 2 hours          2375/tcp                                node1/shipyard-swarm-agent
      7f20411fc504        swarm:latest               "/swarm manage --host"   2 hours ago         Up 2 hours          2375/tcp, 192.168.0.56:3375->3375/tcp   node1/shipyard-swarm-manager,node1/shipyard-controller/swarm

      下面我們測試跨主機網(wǎng)絡(luò)的連通性,我們通過attach到test4容器上ping test5來驗證分散在不同節(jié)點上的容器的網(wǎng)絡(luò)連通性

      $ docker -H 192.168.0.56:3375 attach test4
      root@db7113bae6d0:/# 
      root@db7113bae6d0:/# ping -c 4 test5
      PING test5 (10.0.0.8) 56(84) bytes of data.
      64 bytes from test5.test-net (10.0.0.8): icmp_seq=1 ttl=64 time=0.283 ms
      64 bytes from test5.test-net (10.0.0.8): icmp_seq=2 ttl=64 time=0.285 ms
      64 bytes from test5.test-net (10.0.0.8): icmp_seq=3 ttl=64 time=0.295 ms
      64 bytes from test5.test-net (10.0.0.8): icmp_seq=4 ttl=64 time=0.221 ms
      
      --- test5 ping statistics ---
      4 packets transmitted, 4 received, 0% packet loss, time 2998ms
      rtt min/avg/max/mdev = 0.221/0.271/0.295/0.029 ms

      看完上述內(nèi)容,你們掌握怎樣使用Shipyard部署Docker Swarm集群和跨主機Overlay網(wǎng)絡(luò)的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!


      分享標題:怎樣使用Shipyard部署DockerSwarm集群和跨主機Overlay網(wǎng)絡(luò)
      文章URL:http://ef60e0e.cn/article/pgojpo.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>

        南宫市| 枣阳市| 泗水县| 宁波市| 玉田县| 桐梓县| 太保市| 望江县| 林周县| 南开区| 乌拉特中旗| 凤凰县| 溧阳市| 阳春市| 武夷山市| 鄂托克前旗| 息烽县| 阿坝县| 正宁县| 察雅县| 左权县| 湘潭县| 东至县| 镇江市| 芜湖市| 平阴县| 万宁市| 镇江市| 正蓝旗| 连云港市| 万年县| 东平县| 太白县| 芜湖市| 玉树县| 益阳市| 裕民县| 西丰县| 沈阳市| 内黄县| 雅江县|