日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

Docker 集群Swarm创建和Swarm Web管理

發(fā)布時(shí)間:2024/1/1 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Docker 集群Swarm创建和Swarm Web管理 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

關(guān)于Docker Swarm更多的介紹請(qǐng)查看《Docker管理工具-Swarm部署記錄》

?

一、環(huán)境配置

1、安裝環(huán)境

# cat /etc/redhat-release CentOS Linux release 7.3.1611 (Core) # docker version Client:Version: 1.12.3API version: 1.24Go version: go1.6.3Git commit: 6b644ecBuilt: OS/Arch: linux/amd64Server:Version: 1.12.3API version: 1.24Go version: go1.6.3Git commit: 6b644ecBuilt: OS/Arch: linux/amd64

2、安裝iptables,并關(guān)閉firewall防火墻,

# yum install iptables-services -y && systemctl enable iptables && service iptables save # systemctl disable firewalld.service # systemctl stop firewalld.service

關(guān)閉firewall防火墻,如果不開啟iptables nat,Docker容器將無(wú)法正常啟動(dòng)。

  • 運(yùn)行?sudo iptables -L | grep DOCKER?若輸出

    DOCKER???? all? --? anywhere???????????? anywhere Chain DOCKER (1 references)

    則沒問題。

  • 否則,運(yùn)行?iptables-save > /etc/sysconfig/iptables?并編輯添加相應(yīng)的內(nèi)容:

    • *nat :PREROUTING ACCEPT [27:11935] :INPUT ACCEPT [0:0] :OUTPUT ACCEPT [598:57368] :POSTROUTING ACCEPT [591:57092] :DOCKER - [0:0] -A PREROUTING -m addrtype --dst-type LOCAL -j DOCKER -A OUTPUT ! -d 127.0.0.0/8 -m addrtype --dst-type LOCAL -j DOCKER -A POSTROUTING -s 172.17.0.0/16 ! -o docker0 -j MASQUERADE COMMIT # Completed on Sun Sep 20 17:35:31 2015 # Generated by iptables-save v1.4.21 on Sun Sep 20 17:35:31 2015 *filter :INPUT ACCEPT [139291:461018923] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [127386:5251162] :DOCKER - [0:0] -A FORWARD -o docker0 -j DOCKER -A FORWARD -o docker0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT -A FORWARD -i docker0 ! -o docker0 -j ACCEPT -A FORWARD -i docker0 -o docker0 -j ACCEPT COMMIT # Completed on Sun Sep 20 17:35:31 2015

?

3、所有主機(jī)節(jié)點(diǎn)docker開啟2375監(jiān)聽,docker版本不同,配置方式不一樣

vim /etc/sysconfig/docker

...... OPTIONS='-H 0.0.0.0:2375 -H unix:///var/run/docker.sock' //在OPTIONS參數(shù)項(xiàng)后面的''里添加內(nèi)容

?

或者

# cat /usr/lib/systemd/system/docker.service |grep ExecStart ExecStart=/usr/bin/dockerd -H 0.0.0.0:2375 -H unix:///var/run/docker.sock

?

重啟docker服務(wù)

systemctl daemon-reload ##使配置文件生效 systemctl restart docker

?

二、Swarm安裝和集群創(chuàng)建

1、Swarm鏡像下載

# docker pull swarm # docker images REPOSITORY TAG IMAGE ID CREATED SIZE docker.io/swarm latest 36b1e23becab 4 months ago 15.85 MB

?

2、創(chuàng)建Swarm

# docker swarm init --advertise-addr 192.168.23.56:2377 Swarm initialized: current node (4cejtuairtof6d0wjq88merwb) is now a manager.To add a worker to this swarm, run the following command:docker swarm join \--token SWMTKN-1-3kntv9pmgo1w2uk4yqk79v0lw0z35uw2k5j6rw7cns2v0xv3tn-2zqnn7e2zf1azaad2teeh9arw \192.168.23.56:2377To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.

上面命令執(zhí)行后,該機(jī)器自動(dòng)加入到swarm集群。這個(gè)會(huì)創(chuàng)建一個(gè)集群token,獲取全球唯一的 token,作為集群唯一標(biāo)識(shí)。后續(xù)將其他節(jié)點(diǎn)加入集群都會(huì)用到這個(gè)token值。

其中,--advertise-addr參數(shù)表示其它swarm中的worker節(jié)點(diǎn)使用此ip地址與manager聯(lián)系。命令的輸出包含了其它節(jié)點(diǎn)如何加入集群的命令。

?

3、添加集群節(jié)點(diǎn)

?

[root@kbsonlong ~]# docker swarm join \ > --token SWMTKN-1-3kntv9pmgo1w2uk4yqk79v0lw0z35uw2k5j6rw7cns2v0xv3tn-2zqnn7e2zf1azaad2teeh9arw \ > 192.168.23.56:2377 This node joined a swarm as a worker.

?

4、查看集群節(jié)點(diǎn)

[root@along ~]# docker node list ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS 4cejtuairtof6d0wjq88merwb * along.party Ready Active Leader 9388mi6e3fnk9l70g24cljhr5 kbsonlong Ready Active [root@along ~]# docker node list ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS 4cejtuairtof6d0wjq88merwb * along.party Ready Active Leader 9388mi6e3fnk9l70g24cljhr5 kbsonlong Ready Active //將kbsonlong 節(jié)點(diǎn)下線。如果要?jiǎng)h除node1節(jié)點(diǎn),命令是"docker node rm --force kbsonlong " [root@along ~]# docker node update --availability drain kbsonlong kbsonlong [root@along ~]# docker node list ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS 4cejtuairtof6d0wjq88merwb * along.party Ready Active Leader 9388mi6e3fnk9l70g24cljhr5 kbsonlong Ready Drain [root@along ~]# //可以看到kbsonlong節(jié)點(diǎn)狀態(tài)變?yōu)镈rain,那么該節(jié)點(diǎn)就不會(huì)接受task任務(wù)分發(fā),就算之前已經(jīng)接受的任務(wù)也會(huì)轉(zhuǎn)移到別的節(jié)點(diǎn)上。//再次修改為active狀態(tài)(及將下線的節(jié)點(diǎn)再次上線) [root@along ~]# docker node update --availability active kbsonlong kbsonlong [root@along ~]# docker node list ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS 4cejtuairtof6d0wjq88merwb * along.party Ready Active Leader 9388mi6e3fnk9l70g24cljhr5 kbsonlong Ready Active [root@along ~]#

?

##關(guān)于Swarm更多的命令行操作,請(qǐng)查看《Docker管理工具-Swarm部署記錄》

?

三、Swarm 的Web管理(Portainer、Shipyard、Docerkui)

1、Portainer安裝

# docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock portainer/portainer -d 參數(shù)以detach方式運(yùn)行 -p 將容器工作端口映射至物理機(jī)端口 HOST端口:容器端口 -v 將容器目錄掛載(映射)到物理機(jī)對(duì)應(yīng)位置,這里指定通訊方式為sock portainer/portainer 為鏡像名稱portainner 也支持用TCP通訊,啟動(dòng)命令 # docker run -d -p 9000:9000 portainer/portainer -H tcp://<REMOTE_HOST>:<REMOTE_PORT>

?

?

?

優(yōu)點(diǎn)
  • 支持容器管理、鏡像管理
  • 輕量級(jí),消耗資源少
  • 基于docker api,安全性高,可指定docker api端口,支持TLS證書認(rèn)證。
  • 支持權(quán)限分配
  • 支持集群
  • 缺點(diǎn)
  • 功能不夠強(qiáng)大。
  • 容器創(chuàng)建后,無(wú)法通過后臺(tái)增加端口。
  • ?

    ?

    2、Shipyard

    一鍵安裝腳本

    curl -sSL https://shipyard-project.com/deploy | bash -s

    注意:由于Shipyard使用shipyard-proxy代理容器,所以需要把docker配置的tcp 0.0.0.0:2375關(guān)閉

    [root@kbsonlong ~]# docker ps -a |grep shi 7122d3f37464 shipyard/shipyard:latest "/bin/controller --de" About an hour ago Up About an hour 0.0.0.0:8080->8080/tcp shipyard-controller b350b117d76d swarm:latest "/swarm j --addr 172." About an hour ago Up About an hour 2375/tcp shipyard-swarm-agent a7feb0759efe swarm:latest "/swarm m --replicati" About an hour ago Up About an hour 2375/tcp shipyard-swarm-manager 3e784b0b2140 shipyard/docker-proxy:latest "/usr/local/bin/run" About an hour ago Up About an hour 0.0.0.0:2375->2375/tcp shipyard-proxy 49f9700f0811 alpine "sh" About an hour ago Up About an hour shipyard-certs 7fe4c0e821c1 microbox/etcd:latest "/bin/etcd -addr 172." About an hour ago Up About an hour 0.0.0.0:4001->4001/tcp, 0.0.0.0:7001->7001/tcp shipyard-discovery e3750c5de7e2 rethinkdb "rethinkdb --bind all" About an hour ago Up About an hour 8080/tcp, 28015/tcp, 29015/tcp shipyard-rethinkdb [root@kbsonlong ~]#

    可以看到啟動(dòng)了7個(gè)Shipyard相關(guān)的容器

    1、shipyard-rethinkdb? :數(shù)據(jù)存放

    2、shipyard-discovery :自動(dòng)發(fā)現(xiàn)

    3、shipyard-certs:認(rèn)證

    4、shipyard-proxy:代理

    5、shipyard-swarm-manager: swarm管理節(jié)點(diǎn)

    6、shipyard-swarm-agent: swarm 工作節(jié)點(diǎn) work

    7、shipyard-controller:shipyard控制臺(tái),即Web頁(yè)面

    ?

    ?

    2、添加Swarm work節(jié)點(diǎn),使用Shipyard時(shí)添加Swarm節(jié)點(diǎn)有點(diǎn)不一樣

    curl -sSL https://shipyard-project.com/deploy | ACTION=node DISCOVERY=etcd://10.0.1.10:4001 bash -s

    ?

    ACTION

    This controls the action for the deployment. Available options are:

    • deploy: Deploy a new Shipyard instance
    • upgrade: Upgrade an existing instance (note: you will need to pass the same environment variables as when you deployed to keep the same configuration)
    • node: Add current Docker engine as a new Swarm node in the cluster
    • remove: Completely removes Shipyard

    ?

    DISCOVERY自動(dòng)發(fā)現(xiàn)

    etcd://10.0.1.10:4001? 管理節(jié)點(diǎn)上的自動(dòng)發(fā)現(xiàn)服務(wù)

    :8080">:8080">:8080">:8080">http://<server_ip>:8080? admin/shipyard

    優(yōu)點(diǎn):
  • 支持鏡像管理、容器管理。
  • 支持控制臺(tái)命令
  • 容器資源消耗監(jiān)控
  • 支持集群swarm,可以隨意增加節(jié)點(diǎn)
  • 支持控制用戶管理權(quán)限,可以設(shè)置某個(gè)容器對(duì)某個(gè)用戶只讀、管理權(quán)限。
  • 有漢化版
  • 缺點(diǎn)
  • 啟動(dòng)容器較多,占用每個(gè)節(jié)點(diǎn)的一部分資源,
  • 創(chuàng)建的Swarm集群無(wú)法使用Swarm service功能

    轉(zhuǎn)載于:https://www.cnblogs.com/adolfmc/p/9007115.html

    總結(jié)

    以上是生活随笔為你收集整理的Docker 集群Swarm创建和Swarm Web管理的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。