docker swarm的應用----docker集群的構建

一、docker安裝

這里我們安裝docker-ce 的18.03版本

yum??? -y remove docker? 刪除原有版本

#安裝依賴包

[root@Docker ~]# yum -y install yum-utils device-mapper-persistent-data lvm2

#添加docker的CE版本的yum源配置文件

[root@Docker ~]# curl?? https://download.docker.com/linux/centos/docker-ce.repo??? -o????? /etc/yum.repos.d/docker-ce.repo

安裝CE版本的docker

#yum -y install docker-ce

#啟動docker

# systemctl start docker

# systemctl enable docker?? #添加開機啟動

# docker version #查看docker版本

二、鏡像操作

我們查看鏡像公有倉庫中的鏡像,

docker? search? --filter-stars=50? tomcat??? #查看鏡像倉庫中星級在50 以上的tomcat鏡像

因為本項目,要用到tomcat鏡像,我們下載鏡像

docker? pull?? tomcat?? #tomcat? 為鏡像地址及倉庫和標簽

下載后查看一下,docker?? images

三、創建容器集群

docker-swarm是基于docker平臺實現的集群技術,他可以通過幾條簡單的指令快速的創建一個docker集群,接著在集群的共享網絡上部署應用,最終實現分布式的服務。相比起zookeeper等集群管理框架來說,swarm顯得十分輕量,作為一個工具,它把節點的加入、管理、發現等復雜的操作都濃縮為幾句簡單的命令,并且具有自動發現節點和調度的算法,還支持自定制。使用 Swarm 操作集群,會使用戶感覺就像是在一臺主機上進行操作。
SwarmKit 將節點分為兩類:

工作節點(Worker ):負責通過執行容器運行任務。SwarmKit 的默認執行器為 Docker 容器執行器(Docker Container Executor)。

(1)內建分布式存儲,不要額外的數據庫

(2)支持 Rolling update

(3 容器高可用

(4)通過 TLS 保證了節點之間通訊的安全

管理節點(Manager ):負責接收和響應用戶請求,將集群狀態調節到最終狀態。在 SwarmKit

中,用戶可以動態調整節點的角色,即在 Manager 和 Worker 之間轉換。

實驗環境:

這里選擇三臺主機運行 Swarm,依次為:

node1 192.168.1.23

node2 192.168.1.27

node3 192.168.1.28

基本環境配置

3 臺主機確保時間一致 ntp

3 臺主機均關閉 selinux,開啟路由轉發。

3 臺主機根據上面的實驗環境描述修改主機名和 ip 地址

系統環境準備

準備系統環境, 配置 host 列表

3 臺主機均修改/etc/hosts 文件,添加所有主機的 ip 地址和主機名的映射記錄

以?master 為例子,其他節點同

vim? /etc/hosts

192.168.1.23? master

192.168.1.27? slave1

192.168.1.28? slave2

主要使用三個新的命令行工具創建一個 swarm 集群:

docker swarm 開啟 swarm 模式; 加入 Swarm 集群; 配置集群參數

docker node 查詢集群節點信息; 提升/移除一個管理節點; 管理 swarm 節點主機

docker service 創建管理 service

在?master 上初始化 swram 集群:

注意:你只需要在一個 master 上初始化 swarm 集群,其他 node 加入這個集群就行了, 所以運行.

docker?? swarm? init? --advertise-addr? 192.168.1.23:2377

根據命令的提示:

以manager服務器角色加入 swarm 集群需要運行如下命令:

先docker? swarm join-token? manager? 獲取manager的token,再執行以下命令:

docker swarm? join 加入到 master創建的集群

我們以其他節點服務器,以 worker 角色加入 swarm 集群需要運行如下命令:

先docker? swarm join-token? worker? 獲取worker的token,再執行以下命令:

docker swarm? join 加入到 master創建的集群

查看 swarm 集群 node 列表

我們一共要加入兩臺,然后我們再看節點情況
docker?? node? ls

一共是三個,一個master, 兩個從節點

集群創建完畢

四、在 swarm 集群上運行 docker 應用

概念解釋:service

Docker swarm 引入了服務的概念,一個服務由多個任務組成,一個任務即一個運行的容器。

下面我們可以使用之前 pull的 tomcat 鏡像啟動服務,

docker service create --replicas 2 --name judge_swarm -p 8080:8080 --network=swarm_test?? tomcat

docker service create 命令創建一個 service.

--name 標簽命名 service 為 judge_swarm

--replicas 標簽來聲明?2 個運行實體(即容器副本數)

?使用 docker service ls 查看服務

?我們到各個節點上去看,docker? ps -a

可以看到

?每個節點上啟動了一個容器實例,我們更改容器內 tomcat 服務的主頁

docker? exec? -it? 21b?? /bin/bash

docker?cp? ? index.jsp?? 21b:/usr/local/tomcat/webapps/web

docker? cp? server.xml?? 21b:/usr/local/tomcat/conf/

讓每個tomcat容器實例顯示不同的網頁,在瀏覽器上輸入 http://master? ip:8080/web

?刷新界面可以看到服務是輪詢顯示頁面的,也就是該集群實現了負載均衡。

同時,如果負載過大,我們還可以拓展該服務上的容器實例,本例拓展為4個,

docker? service? scale?? judge_swarm=4

管理器會根據節點情況,在不同節點另外啟動兩個實例

本案例是在master 上啟動了兩個容器實例

?

?docker?? swarm? 的應用,器群部署完畢。

?

?

轉載于:https://www.cnblogs.com/mushou/p/9508450.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/279558.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/279558.shtml
英文地址,請注明出處:http://en.pswp.cn/news/279558.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

微信小程序 fire_如何在Fire TV和Fire TV Stick上側面加載應用程序

微信小程序 fireAmazon’s Fire TV and Fire TV stick technically runs Android…but you wouldn’t know it from looking. Amazon has a wall of content for its set-top box, and doesn’t want Google (with its own competing platform) to crash the party. But even t…

PS 技巧

1. 鋼筆的使用: 扣完一圈以后,按Ctrl回車鍵,會出現螞蟻線,然后按CtrlJ 是復制扣出來的圖層,右下角的框里會出現一個新圖層,注意每個圖層前邊有一個小框,點一下是出現眼睛就可以顯示該圖層在中央…

Ibatis - Open quote is expected for attribute {1} associated with an element type '

昨天晚上提交的代碼,今天運行起來,始終報錯: Open quote is expected for attribute "{1}" associated with an element type id,查了半天,覺得很奇怪。 回滾到昨天的代碼,運行正常。經過compare代碼&#…

Linux系統運維之路

九月份開始,半年內搞定運維,博客會慢慢的更新,vim編輯器,Nginx配置文件優化 運維基礎 運維基礎-Linux發展史、安裝、基本操作 運維基礎-用戶和組管理 運維基礎-文件權限管理 運維基礎-進程管理 運維基礎-IO 管道 運維基礎-查找壓…

設備無法獲得谷歌運行怎么辦_因此,您剛剛獲得了Google主頁。 怎么辦?

設備無法獲得谷歌運行怎么辦So you scored a Google Home for Christmas. That’s awesome because this is a killer little smart speaker that can do a lot of different things—in fact, it can be a little overwhelming. The good news is that we’ve got you covered…

IDEA Maven創建多個Module相互依賴

1、前言 在大型企業項目中,系統架構復雜多變,一個項目根本無法支撐起所有業務。為了提高項目擴展性、靈活性、重用性,封裝性,將項目分為多個Module是非常必要的。 這里就不說IDEA如何安裝了,安裝好IDEA后需要修改maven…

速達5000出現計算成本數據溢出的問題

算成本提示某貨品成本溢出處理方法,該問題是由于貨品成本異常,成本上億或者負億造成的; 1.首先通過語句:select * into tmp_goods from l_goods where ABS(aprice)>100000,把成本價格超過10萬的貨品資料取出&#x…

Win32頁上的所有控件屬性與方法

Win32頁上的所有控件。該頁控件是在32位Win系統中的一些基本控件,如果你選擇開發CLX程序,則在控件面板上不會顯示該頁TTabControl屬性DisplayRect:只定該控件客戶區的一個矩形HotTrack:設置當鼠標經過頁標簽時,它的字是…

收銀員英文縮寫_如何在沒有收銀員的蘋果商店購買東西

收銀員英文縮寫If you visit an Apple Store in the hopes of buying a new iPhone, iPad, or MacBook, you have to talk to an Apple employee, since all the expensive products are kept in the back. However, if it’s just an accessory you want, you can buy it with…

上傳文件 connection reset

適用于:Windows 7,Windows Server 2003,Windows Server 2008,Windows Server 2008 R2,Windows Vista 由于FTP的工作方式,在防火墻后面的服務器上使用文件傳輸協議(FTP)服務會產生一系…

分區表備份工具下載

分區表一般很少被破壞,然而一旦出問題,想要恢復卷上的數據就非常麻煩。這個工具軟件是我以前經常用的,卷分區被誤刪除后可在幾分鐘內得到恢復,非常方便。使用說明請參見:[url]http://www.sansky.net/html/2007-05-23-4…

【PaddlePaddle系列】報錯解決方法合集 (不定時更新)

1、PaddlePaddle使用CPU時正常運行&#xff0c;但是使用GPU時卻報出一堆錯誤信息&#xff0c;節選如下&#xff1a; paddle.fluid.core.EnforceNotMet: enforce allocating < available failed, 1835602936 > 1651048192at [/paddle/paddle/fluid/platform/gpu_info.cc:1…

算法:前K個最大的元素

前幾天&#xff0c;阮一峰 和 winter 在前端九部組織了一個互面小組&#xff0c;目的是為了分享和解答面試遇到的面試題&#xff0c;感興趣的可以了解一下。 下面我就把我回答的一個問題整理出來分享給大家。 問題描述 題目是&#xff1a;算法&#xff0c;前 K 個最大的元素。 …

php表單提交完返回,表單內容不清空解決方法

2019獨角獸企業重金招聘Python工程師標準>>> 我們經常在注冊的時候&#xff0c;填寫一大推信息以后在提交注冊的時候&#xff0c;因為某一項信息不正確&#xff0c;在返回的時候之前的填寫的內容全部沒有了&#xff0c;這樣會導致用戶喪失再次填寫的信息&#xff0c…

es6拼接字符串的方式。

文章&#xff1a;es6拼接字符串的方式。轉載于:https://www.cnblogs.com/Tpf386/p/9519007.html

word標尺灰色_如何在Microsoft Word中使用標尺

word標尺灰色Word’s rulers let you control the margins of your page and the indentation of paragraphs. They’re great for precisely lining up images, text, and other elements. If you’re printing a document, the rulers can help ensure that what you see on …

drools簡單應用

當某個服務的需求經常變的時候&#xff0c;如果使用了硬編碼的方式進行開發會是一件非常麻煩的事。 最近在對項目的積分模塊進行改造的時候想到了規則引擎&#xff0c;使用規則引擎處理復雜而且多變的業務邏輯有其非常大的優勢&#xff0c;包括實時更新、性能等方面。 不多說&a…

31 天重構學習筆記28. 為布爾方法命名

摘要&#xff1a;由于最近在做重構的項目&#xff0c;所以對重構又重新進行了一遍學習和整理&#xff0c;對31天重構最早接觸是在2009年 10月份&#xff0c;由于當時沒有訂閱Sean Chambers的blog&#xff0c;所以是在國外的社區上閑逛的時候鏈接過去的。記得當時一口氣看完了整…

Matplotlib學習---用matplotlib畫誤差線(errorbar)

誤差線用于顯示數據的不確定程度&#xff0c;誤差一般使用標準差&#xff08;Standard Deviation&#xff09;或標準誤差&#xff08;Standard Error&#xff09;。 標準差&#xff08;SD&#xff09;&#xff1a;是方差的算術平方根。如果是總體標準差&#xff0c;那么用σ表示…

關于自增id 你可能還不知道

導讀&#xff1a;在使用MySQL建表時&#xff0c;我們通常會創建一個自增字段(AUTO_INCREMENT)&#xff0c;并以此字段作為主鍵。本篇文章將以問答的形式講述關于自增id的一切。 注&#xff1a; 本文所講的都是基于Innodb存儲引擎。 1.MySQL為什么建議將自增列id設為主鍵&#x…