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

溫馨提示×

溫馨提示×

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

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

「實戰篇」開源項目docker化運維部署-借助dockerSwarm搭建集群部署(九)

發布時間:2020-07-13 04:57:46 來源:網絡 閱讀:418 作者:IT人故事 欄目:云計算

原創文章,歡迎轉載。轉載請注明:轉載自IT人故事會,謝謝!
原文鏈接地址:「實戰篇」開源項目docker化運維部署-借助dockerSwarm搭建集群部署(九)

為了讓學習的知識融匯貫通,目前是把所有的集群都放在了一個虛擬機上,如果這個虛擬機宕機了怎么辦?俗話說雞蛋不要都放在一個籃子里面,把各種集群的節點拆分部署,應該把各種節點分機器部署,多個宿主機,這樣部署隨便掛哪個主機我們都不擔心。
源碼:https://github.com/limingios/netFuture/blob/master/docker-swarm/

「實戰篇」開源項目docker化運維部署-借助dockerSwarm搭建集群部署(九)

一起在說說docker swarm

swarm 是docker的三劍客一員,之前都說過了,可以看中級和高級啊 。

  1. docker machine 容器服務
  2. docker compose 腳本服務
  3. docker swarm 容器集群技術

「實戰篇」開源項目docker化運維部署-借助dockerSwarm搭建集群部署(九)

  • 去中心化的設計

    Swarm Manager 也承擔worker節點的作用。
    Swarm Worker 運行容器部署項目

「實戰篇」開源項目docker化運維部署-借助dockerSwarm搭建集群部署(九)

Swarm是沒有中心節點的,掛到其中一個其他是不會掛掉的。Swarm Manager 如果master掛了,立馬選舉一個新的master。

  • 創建集群環境

    首先機器已經安裝了docker環境。

    docker swarm init
  • 加入swarm集群
    #加入到manager中
    docker swarm join-token manager
    #加入到worker中
    docker swarm join-token worker
環境搭建
應用 IP地址 服務 配置 安裝應用 安裝方式
docker-swarm-manager1 192.168.66.100 docker-swarm-manager1 單核 2g內存 docker-swarm-manager1 docker
docker-swarm-manager2 192.168.66.101 docker-swarm-manager2 單核 2g內存 docker-swarm-manager2 docker
docker-swarm-node1 192.168.66.102 docker-swarm-node1 單核 2g內存 docker-swarm-node1 docker
docker-swarm-node2 192.168.66.103 docker-swarm-node2 單核 2g內存 docker-swarm-node2 docker

「實戰篇」開源項目docker化運維部署-借助dockerSwarm搭建集群部署(九)

docker swarm環境

一共4個節點,2個manager節點,2個work節點,manager不光是管理,而且也干活,說白了一共4個干活的節點。

創建docker swarm集群

su -
#密碼vagrant
docker swarm init

報錯注意:如果你在新建集群時遇到雙網卡情況,可以指定使用哪個 IP,例如上面的例子會有可能遇到下面的錯誤。

Error response from daemon: could not choose an IP address to
advertise since this system has multiple addresses on different
interfaces (10.0.2.15 on enp0s3 and 192.168.66.100 on enp0s8) 
- specify one with --advertise-addr

再次創建docker swarm集群192.168.66.100

docker swarm init --advertise-addr 192.168.66.100 --listen-addr 192.168.66.100:2377
docker swarm join-token manager

「實戰篇」開源項目docker化運維部署-借助dockerSwarm搭建集群部署(九)
「實戰篇」開源項目docker化運維部署-借助dockerSwarm搭建集群部署(九)

再次創建docker swarm集群192.168.66.101
當前節點以manager的身份加入swarm集群

docker swarm join --token SWMTKN-1-4itumtscktomolcau8a8cte98erjn2420fy2oyj18ujuvxkkzx-9qutkvpzk87chtr4pv8770mcb 192.168.66.100:2377

「實戰篇」開源項目docker化運維部署-借助dockerSwarm搭建集群部署(九)

再次創建docker swarm集群192.168.66.102
當前節點以worker的身份加入swarm集群

docker swarm join --token SWMTKN-1-4itumtscktomolcau8a8cte98erjn2420fy2oyj18ujuvxkkzx-f2dlt8g3hg86gyc9x6esewtwl 192.168.66.100:2377

「實戰篇」開源項目docker化運維部署-借助dockerSwarm搭建集群部署(九)

再次創建docker swarm集群192.168.66.103
當前節點以worker的身份加入swarm集群

docker swarm join --token SWMTKN-1-4itumtscktomolcau8a8cte98erjn2420fy2oyj18ujuvxkkzx-f2dlt8g3hg86gyc9x6esewtwl 192.168.66.100:2377

「實戰篇」開源項目docker化運維部署-借助dockerSwarm搭建集群部署(九)

查看swarm集群

只能在manager節點內執行
leader掛掉后,reachable就可以管理集群了。

docker node ls

「實戰篇」開源項目docker化運維部署-借助dockerSwarm搭建集群部署(九)

查看swarm集群的網絡

只能在manager節點內執行

docker network ls

「實戰篇」開源項目docker化運維部署-借助dockerSwarm搭建集群部署(九)

創建容器間的共享網絡

只能在manager節點內執行

docker network create -d overlay --attachable swarm_test
docker network ls

「實戰篇」開源項目docker化運維部署-借助dockerSwarm搭建集群部署(九)

目前是4臺機器,如果想讓4臺機器內的容器可以進行共享,overlay的網絡就可以了,只需要在創建容器的時候--net=swarm_test

「實戰篇」開源項目docker化運維部署-借助dockerSwarm搭建集群部署(九)

創建5個pxc容器
  • 192.168.66.100

    創建2個容器。之前也說過如何創建,最為重要的是共享網絡一定要使用swarm的共享網絡。

docker volume create v1
docker volume create backup1
#增加域名解析
echo "nameserver 8.8.8.8" | tee /etc/resolv.conf > /dev/null 
sudo curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://b81aace9.m.daocloud.io
sudo systemctl restart docker
docker run -d -p 3306:3306  --net=swarm_test \
        --name=node1 \
        -e CLUSTER_NAME=PXC \
        -e MYSQL_ROOT_PASSWORD=a123456 \
        -e XTRABACKUP_PASSWORD=a123456 \
        -v v1:/var/lib/mysql \
        --privileged \
        -v backup1:/data \
        percona/percona-xtradb-cluster
docker ps 

「實戰篇」開源項目docker化運維部署-借助dockerSwarm搭建集群部署(九)

「實戰篇」開源項目docker化運維部署-借助dockerSwarm搭建集群部署(九)

「實戰篇」開源項目docker化運維部署-借助dockerSwarm搭建集群部署(九)

docker volume create v2
docker run -d -p 3307:3306  --net=swarm_test \
        --name=node2 \
        -e CLUSTER_NAME=PXC \
        -e MYSQL_ROOT_PASSWORD=a123456 \
        -e XTRABACKUP_PASSWORD=a123456 \
        -v v2:/var/lib/mysql \
        --privileged \
        -v backup1:/data \
        -e CLUSTER_JOIN=node1 \
        percona/percona-xtradb-cluster
docker ps 

「實戰篇」開源項目docker化運維部署-借助dockerSwarm搭建集群部署(九)

  • 192.168.66.101

    創建1個容器。之前也說過如何創建,最為重要的是共享網絡一定要使用swarm的共享網絡。

docker volume create v3
docker volume create  backup3
docker run -d -p 3307:3306  --net=swarm_test \
        --name=node3 \
        -e CLUSTER_NAME=PXC \
        -e MYSQL_ROOT_PASSWORD=a123456 \
        -e XTRABACKUP_PASSWORD=a123456 \
        -v v3:/var/lib/mysql \
        --privileged \
        -v backup3:/data \
        -e CLUSTER_JOIN=node1 \
        percona/percona-xtradb-cluster
docker ps 

「實戰篇」開源項目docker化運維部署-借助dockerSwarm搭建集群部署(九)

  • 192.168.66.102

    創建1個容器。之前也說過如何創建,最為重要的是共享網絡一定要使用swarm的共享網絡。

docker volume create v4
docker volume create  backup4
docker run -d -p 3307:3306  --net=swarm_test \
        --name=node4 \
        -e CLUSTER_NAME=PXC \
        -e MYSQL_ROOT_PASSWORD=a123456 \
        -e XTRABACKUP_PASSWORD=a123456 \
        -v v4:/var/lib/mysql \
        --privileged \
        -v backup4:/data \
        -e CLUSTER_JOIN=node1 \
        percona/percona-xtradb-cluster
docker ps 
  • 192.168.66.103

    創建1個容器。之前也說過如何創建,最為重要的是共享網絡一定要使用swarm的共享網絡。

docker volume create v4
docker volume create  backup4
docker run -d -p 3307:3306  --net=swarm_test \
        --name=node4 \
        -e CLUSTER_NAME=PXC \
        -e MYSQL_ROOT_PASSWORD=a123456 \
        -e XTRABACKUP_PASSWORD=a123456 \
        -v v4:/var/lib/mysql \
        --privileged \
        -v backup4:/data \
        -e CLUSTER_JOIN=node1 \
        percona/percona-xtradb-cluster
docker ps 

「實戰篇」開源項目docker化運維部署-借助dockerSwarm搭建集群部署(九)

「實戰篇」開源項目docker化運維部署-借助dockerSwarm搭建集群部署(九)

容器集群

在這個示意圖里面,畫了4個linux的主機,都安裝了docker虛擬機,假如我現在想安裝A程序,直接選擇Docker-1這個主機里面的容器安裝A程序,這樣沒有問題。但是單節點單容器來部署,一旦這個節點掛掉的話,A程序就沒有,為了防止這樣我們有冗余設計,直接在Docker-2這個主機里面的容器也安裝A程序,這樣的話,Docker-1里面的A程序掛了,Docker-2里面的A程序也可以運行。這個功能有點像負載均衡,其實真的很像。docker swarm提供的東西跟負載均衡還是有區別的。swarm 只是提供了容器狀態的管理,如果Docker-1里面的A程序掛了,發現本來二個,現在變成1個了危險,立馬在起一個吧。實時保證docker容器內的數量。

「實戰篇」開源項目docker化運維部署-借助dockerSwarm搭建集群部署(九)

「實戰篇」開源項目docker化運維部署-借助dockerSwarm搭建集群部署(九)

容器集群適合的場景

容器集群不適合有狀態程序,例如數據庫,緩存等等

「實戰篇」開源項目docker化運維部署-借助dockerSwarm搭建集群部署(九)

退出Swarm集群
#Manager退出必須加--force
docker swarm leave --force
刪除節點
service docker stop
#Manager節點需要先降級
docker node demoted  <nodeID>
docker node rm <nodeID>
docker network 

PS:這次主要說了3點比較重要的:通過docker-swarm的網絡搭建容器化通信網絡,創建集群的時候--net 加入docker-swarm創建的網絡,方便通信。不哪些適合做容器化集群,數據庫和緩存。如何操作docker-swarm中的節點。

「實戰篇」開源項目docker化運維部署-借助dockerSwarm搭建集群部署(九)

向AI問一下細節

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

AI

论坛| 雷州市| 上栗县| 礼泉县| 科技| 崇义县| 广南县| 通江县| 凭祥市| 涿鹿县| 巴楚县| 正蓝旗| 福泉市| 盐源县| 武穴市| 梅河口市| 漾濞| 龙川县| 陆河县| 石渠县| 平山县| 鄂伦春自治旗| 登封市| 南丹县| 白沙| 米易县| 新泰市| 西安市| 宁南县| 长春市| 崇阳县| 边坝县| 确山县| 七台河市| 石林| 宁乡县| 涞水县| 揭东县| 河间市| 滁州市| 栖霞市|