DockerSwarm集群搭建與管理指南

Docker Swarm集群搭建與管理指南

創(chuàng)新互聯(lián)公司主要從事網(wǎng)站制作、成都做網(wǎng)站、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)汶上,十載網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):18980820575

在現(xiàn)代化的IT架構(gòu)中,容器化技術(shù)是不可避免的發(fā)展趨勢(shì)。Docker作為其中的領(lǐng)軍企業(yè),其技術(shù)也成為了大家廣泛關(guān)注的焦點(diǎn)。其中,Docker Swarm作為Docker自帶的編排工具,可以幫助我們輕松的搭建和管理容器集群,本文將詳細(xì)介紹Docker Swarm的搭建與管理方法。

環(huán)境準(zhǔn)備

在開始之前,我們應(yīng)當(dāng)準(zhǔn)備一臺(tái)或多臺(tái)Linux機(jī)器作為Docker Swarm的節(jié)點(diǎn)。我們選擇了三臺(tái)虛擬機(jī),分別作為管理節(jié)點(diǎn)和兩臺(tái)工作節(jié)點(diǎn)。

其中,管理節(jié)點(diǎn)需要滿足以下要求:

- 安裝最新版Docker引擎

- 開啟防火墻對(duì)Swarm端口進(jìn)行放行

- 確保能夠互相ping通其他節(jié)點(diǎn)

工作節(jié)點(diǎn)則需要滿足以下要求:

- 安裝最新版Docker引擎

- 確保能夠互相ping通其他節(jié)點(diǎn)

創(chuàng)建Swarm

在管理節(jié)點(diǎn)上,執(zhí)行以下命令來初始化Swarm:

$ sudo docker swarm init --advertise-addr

其中,為管理節(jié)點(diǎn)的IP地址。

執(zhí)行成功后,會(huì)輸出類似以下內(nèi)容的信息:

Swarm initialized: current node (xge27bqh6ttz721pkw2zky1h5) is now a manager.To add a worker to this swarm, run the following command: docker swarm join --token :2377To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.

在其中,為Swarm節(jié)點(diǎn)的令牌,工作節(jié)點(diǎn)需要使用它來加入到Swarm中。我們需要將這個(gè)令牌保存下來,后續(xù)需要使用。

加入節(jié)點(diǎn)

在工作節(jié)點(diǎn)中,使用如下命令加入Swarm:

$ sudo docker swarm join --token :2377

其中,為之前管理節(jié)點(diǎn)初始化Swarm時(shí)生成的令牌,為管理節(jié)點(diǎn)的IP地址。

加入成功后,在管理節(jié)點(diǎn)上執(zhí)行以下命令,查看加入節(jié)點(diǎn)的狀態(tài):

$ sudo docker node ls

輸出類似以下內(nèi)容的信息:

ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS ENGINE VERSIONxge27bqh6ttz721pkw2zky1h5 * manager-1 Ready Active Leader 18.09.0vacf9s9l2gur1g1w7tndmou3u worker-1 Ready Active 18.09.0yfvjuph0g4sw6d92e2p2mdk2f worker-2 Ready Active 18.09.0

在其中,*表示當(dāng)前我們的管理節(jié)點(diǎn),而worker-1worker-2則是兩個(gè)已經(jīng)加入到Swarm中的工作節(jié)點(diǎn)。

創(chuàng)建服務(wù)

我們使用如下命令來在Swarm中創(chuàng)建一個(gè)服務(wù):

$ sudo docker service create --name nginx --replicas 3 --publish 80:80 nginx

其中,--name參數(shù)指定了服務(wù)的名稱,--replicas參數(shù)指定了需要?jiǎng)?chuàng)建的實(shí)例數(shù)量,--publish參數(shù)指定了服務(wù)對(duì)外暴露的端口映射,nginx則為需要部署的鏡像名稱。

執(zhí)行成功后,在管理節(jié)點(diǎn)上使用如下命令查看創(chuàng)建的服務(wù)狀態(tài):

$ sudo docker service ls

輸出類似以下內(nèi)容的信息:

ID NAME MODE REPLICAS IMAGE PORTSqqk1n7sb4toi nginx replicated 3/3 nginx:latest *:80->在其中,我們可以看到當(dāng)前Swarm中有一個(gè)名為80/tcp

nginx的服務(wù),已經(jīng)成功創(chuàng)建了3個(gè)實(shí)例。對(duì)服務(wù)進(jìn)行擴(kuò)展

我們可以使用如下命令來對(duì)服務(wù)進(jìn)行擴(kuò)展:

$ sudo docker service scale nginx=5

其中,

nginx=5表示需要將nginx服務(wù)的實(shí)例數(shù)量擴(kuò)展到5個(gè)。執(zhí)行成功后,我們可以在管理節(jié)點(diǎn)上使用以下命令查看服務(wù)的狀態(tài):

$ sudo docker service ps nginx

輸出類似以下內(nèi)容的信息:

ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTSz0jrd6k7j73b nginx.1 nginx:latest worker-2 Running Running 2 minutes ago g4mm9yv7ki10 nginx.2 nginx:latest worker-1 Running Running 2 minutes ago v6uqjvqgpn3g nginx.3 nginx:latest worker-2 Running Running 2 minutes ago 0bi9ttx5f4t9 nginx.4 nginx:latest worker-1 Running Running 2 minutes ago uz8p208bzcsy nginx.5 nginx:latest worker-2 Running Running 2 minutes ago

在其中,我們可以看到

nginx服務(wù)成功擴(kuò)展到了5個(gè)實(shí)例。對(duì)服務(wù)進(jìn)行伸縮

我們可以使用如下命令來對(duì)服務(wù)進(jìn)行伸縮:

$ sudo docker service update --replicas 7 nginx

其中,

--replicas參數(shù)指定需要擴(kuò)展到的實(shí)例數(shù)量,nginx則為我們需要伸縮的服務(wù)名稱。執(zhí)行成功后,我們可以在管理節(jié)點(diǎn)上使用以下命令查看服務(wù)的狀態(tài):

$ sudo docker service ps nginx

輸出類似以下內(nèi)容的信息:

ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTSz0jrd6k7j73b nginx.1 nginx:latest worker-2 Running Running 2 minutes ago g4mm9yv7ki10 nginx.2 nginx:latest worker-1 Running Running 2 minutes ago v6uqjvqgpn3g nginx.3 nginx:latest worker-2 Running Running 2 minutes ago 0bi9ttx5f4t9 nginx.4 nginx:latest worker-1 Running Running 2 minutes ago uz8p208bzcsy nginx.5 nginx:latest worker-2 Running Running 2 minutes ago t6k07shm8ddn nginx.6 nginx:latest worker-1 Running Running about a minute ago 4nyoq7b67r0c nginx.7 nginx:latest worker-1 Running Running about a minute ago

在其中,我們可以看到

nginx服務(wù)成功伸縮到了7個(gè)實(shí)例。刪除服務(wù)

我們可以使用如下命令來刪除服務(wù):

$ sudo docker service rm nginx

其中,

nginx為我們希望刪除的服務(wù)名稱。執(zhí)行成功后,在管理節(jié)點(diǎn)上使用如下命令查看服務(wù)的狀態(tài):

$ sudo docker service ls

輸出中不再包含

nginx服務(wù)。徹底關(guān)閉Swarm

我們可以使用如下命令來關(guān)閉Swarm:

$ sudo docker swarm leave --force

其中,

--force參數(shù)表示強(qiáng)制離開Swarm。執(zhí)行成功后,我們可以在管理節(jié)點(diǎn)上使用如下命令查看節(jié)點(diǎn)狀態(tài):

$ sudo docker node ls

輸出中不再包含當(dāng)前節(jié)點(diǎn)。

總結(jié)

本文詳細(xì)介紹了Docker Swarm的搭建與管理方法,包括了節(jié)點(diǎn)加入、服務(wù)創(chuàng)建、擴(kuò)展、伸縮、刪除以及Swarm關(guān)閉等基本操作。希望讀者們可以根據(jù)本文的指南,成功的搭建和管理自己的Docker Swarm集群。

網(wǎng)站欄目:DockerSwarm集群搭建與管理指南
鏈接URL:http://www.muchs.cn/article36/dgphepg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供小程序開發(fā)、服務(wù)器托管、企業(yè)網(wǎng)站制作、響應(yīng)式網(wǎng)站、標(biāo)簽優(yōu)化、網(wǎng)站策劃

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司