阿里云服務(wù)器部署?Docker?Swarm集群
一、什么是 Docker Swarm?
Swarm是Docker公司推出的用來管理docker集群的平臺(tái),幾乎全部用GO語言來完成的開發(fā)的,代碼開源在https://github.com/docker/swarm, 它是將一群Docker宿主機(jī)變成一個(gè)單一的虛擬主機(jī),Swarm使用標(biāo)準(zhǔn)的Docker API接口作為其前端的訪問入口,換言之,各種形式的DockerClient(compose,docker-py等)均可以直接與Swarm通信,甚至Docker本身都可以很容易的與Swarm集成,這大大方便了用戶將原本基于單節(jié)點(diǎn)的系統(tǒng)移植到Swarm上,同時(shí)Swarm內(nèi)置了對(duì)Docker網(wǎng)絡(luò)插件的支持,用戶也很容易的部署跨主機(jī)的容器集群服務(wù)。
Docker Swarm 的作用就是用來管理Docker集群的平臺(tái)
二、Docker Swarm 和 k8s的區(qū)別
Swarm的優(yōu)勢(shì) 與 劣勢(shì)
優(yōu)勢(shì)
- swarm API兼容docker API,使得swarm 學(xué)習(xí)成本低,同時(shí)架構(gòu)簡(jiǎn)單,部署運(yùn)維成本較低。
劣勢(shì)
- 同樣是因?yàn)锳PI兼容,無法提供集群的更加精細(xì)的管理。
- 在網(wǎng)絡(luò)方面,默認(rèn)的Docker 容器是通過橋接與NAT和主機(jī)外通信的,這就出現(xiàn)了2個(gè)問題,一個(gè)是因?yàn)镹AT,外部主機(jī)無法主動(dòng)訪問容器內(nèi)(除了端口映射) ,另外默認(rèn)橋接IP是一樣的,這樣會(huì)出現(xiàn)不同主機(jī)之間又相同的IP的情況,可以通過其它工具解決。
- 容器可靠性方面無K8S的 Replication Controllers 可以監(jiān)控并維持容器的聲明。swarm在啟動(dòng)時(shí)刻可以控制容器啟動(dòng),啟動(dòng)后,如果容器崩潰,swarm沒有機(jī)制來保證容器的運(yùn)行
K8S的優(yōu)勢(shì)與劣勢(shì)
優(yōu)勢(shì)
- 容器的高可用性,集群的精密管理,復(fù)雜的網(wǎng)絡(luò)場(chǎng)景
劣勢(shì)
- K8S的學(xué)習(xí)曲線陡峭,同時(shí)運(yùn)維的成本相對(duì)高點(diǎn)
一般來說,服務(wù)不超過10個(gè)采用swarm即可,超過10個(gè)后必須采用K8S來保證集群的高可用與高可靠性!
三、購(gòu)買4臺(tái)阿里云服務(wù)器
我們選擇按量付費(fèi),否則單獨(dú)購(gòu)買服務(wù)器的話很貴,按量付費(fèi)用完即可釋放,輕松便捷~
注意:購(gòu)買需要向阿里云服務(wù)器充值100元,否則無法進(jìn)行按量付費(fèi)
創(chuàng)建實(shí)例
阿里云官方購(gòu)買服務(wù)器
進(jìn)入如下界面,選擇按量付費(fèi)
選擇購(gòu)買機(jī)器的類型 1V 2G 即可
選擇鏡像
進(jìn)入下一步網(wǎng)絡(luò)和安全組設(shè)置,保持默認(rèn)即可,帶寬可拉滿(不收費(fèi))
設(shè)置您的密碼
下一步,默認(rèn)即可,確認(rèn)訂單,完成購(gòu)買服務(wù)器操作
單擊創(chuàng)建實(shí)例即可完成操作!
四、Docker Swarm 工作模式
Docker Engine 1.12 引入了 swarm 模式,使您能夠創(chuàng)建一個(gè)由一個(gè)或多個(gè) Docker 引擎組成的集群,稱為 swarm。一個(gè) swarm 由一個(gè)或多個(gè)節(jié)點(diǎn)組成:在 swarm 模式下運(yùn)行 Docker Engine 1.12 或更高版本的物理機(jī)或虛擬機(jī)。
有兩種類型的節(jié)點(diǎn):管理器
和 工作器
五、部署 Docker Swarm 集群
?連接4臺(tái)服務(wù)器
我們采用 XShell 進(jìn)行連接阿里云ECS服務(wù)器
輸入了之后會(huì)提示輸入用戶名和密碼,輸入即可成功連接
?安裝Docker
這里我們采用4臺(tái)服務(wù)器同時(shí)操作,否則一臺(tái)一臺(tái)的安裝太浪費(fèi)時(shí)間了,如下
這樣就是一個(gè)窗口輸入命令其它窗口同步,高效率完成~
具體安裝Docker可看:Docker安裝阿里云服務(wù)器和在虛擬機(jī)安裝遇到的坑(問題小結(jié))
??部署Swarm
Docker安裝完畢后,開始部署我們的集群,Docker自帶Swarm,所以我們直接部署即可
初始化節(jié)點(diǎn)
docker swarm init --help
獲取網(wǎng)絡(luò)地址,進(jìn)行創(chuàng)建節(jié)點(diǎn)
ip addr docker swarm init --advertise-addr 39.96.185.143
獲取令牌
# 管理節(jié)點(diǎn) docker swarm join-token manager # 工作節(jié)點(diǎn) docker swarm join-token worker
--token 后面的 是要利用上面的命令生成的,不是我的固定的,需要去生成,后續(xù)端口根據(jù)你的ip地址來~
我們其它機(jī)器加入節(jié)點(diǎn)
docker swarm join --token SWMTKN-1-1mzq8iev00xgswszp91h18tspm9rl5py7upw6ri9iaw484a1b3-4f159n0ky1bcsnqlkkohx0g1a 172.27.206.16:2377
第一臺(tái)機(jī)器可查看是否成功加入
docker node ls
最后一臺(tái)機(jī)器可設(shè)置為管理節(jié)點(diǎn)
docker swarm join --token SWMTKN-1-1mzq8iev00xgswszp91h18tspm9rl5py7upw6ri9iaw484a1b3-a795z02iuctnhf4izji1fmmiv 172.27.206.16:2377
成功搭建集群~
六、Raft協(xié)議
雙主雙從:假設(shè)一個(gè)主節(jié)點(diǎn)掛了,那么其它節(jié)點(diǎn)是否可以使用
Raft協(xié)議:保證了大多數(shù)節(jié)點(diǎn)存活可以使用,只要 > 1,集群至少大于3臺(tái)
將主節(jié)點(diǎn)停止后,其它節(jié)點(diǎn)會(huì)宕機(jī),無法使用!
無法查看節(jié)點(diǎn)信息
Raft協(xié)議是必須保證大多數(shù)節(jié)點(diǎn)存活,才可以達(dá)到高可用,否則不可用!
七、其它命令
???Docker Stack
部署集群項(xiàng)目的方式
# 單機(jī)部署 docker-compose # 集群部署 docker stack # 單機(jī) docker-compose up # 集群 docker stack deploy
???Docker Secret
Docker Secret 是安全證書,用來配置密碼與證書
docker secret --help
??Docker Config
Docker Config 是配置
docker config --help
?小結(jié)
以上就是【Bug 終結(jié)者】對(duì) 【云原生】阿里云服務(wù)器部署 Docker Swarm集群 的簡(jiǎn)單介紹,部署 Docker 集群,在微服務(wù)架構(gòu)不超過10個(gè)的情況下會(huì)采用Docker Swarm或Compose 部署項(xiàng)目,如果超過的話,需要去適用K8S 來部署我們的項(xiàng)目上線! 后續(xù)會(huì)更新 K8S 相關(guān)文章,Docker 已完結(jié)!
到此這篇關(guān)于阿里云服務(wù)器部署 Docker Swarm集群的文章就介紹到這了,更多相關(guān)阿里云Docker Swarm集群內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
docker版es、milvus、minio啟動(dòng)命令詳解
這篇文章主要介紹了docker版es、milvus、minio啟動(dòng)命令詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-11-11詳解MAC OSX Docker開發(fā)環(huán)境搭建
本篇文章主要介紹了詳解MAC OSX Docker開發(fā)環(huán)境搭建,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-03-03docker 移除掉運(yùn)行不正常的container操作
這篇文章主要介紹了docker 移除掉運(yùn)行不正常的container操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-03-03使用Docker部署war包項(xiàng)目的實(shí)現(xiàn)
這篇文章主要介紹了使用Docker部署war包項(xiàng)目的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10Docker Compose 容器編排的實(shí)現(xiàn)
本文主要介紹了Docker Compose 容器編排的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06用Jenkins+Docker+Maven+Git實(shí)現(xiàn)持續(xù)集成(超詳細(xì))
本文通過較大的篇幅詳細(xì)介紹了Harbor這款企業(yè)級(jí)docker管理工具的使用,并通過案例演示了如何在jenkins中配置任務(wù)集成Harbor,從而實(shí)現(xiàn)鏡像的構(gòu)建推送與分發(fā),需要的朋友可以參考下2024-04-04Docker多階段鏡像構(gòu)建的實(shí)現(xiàn)
本篇文章主要介紹了Docker多階段鏡像構(gòu)建的實(shí)現(xiàn),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-04-04Docker 使用國(guó)內(nèi)鏡像倉(cāng)庫的方法
這篇文章主要介紹了Docker 使用國(guó)內(nèi)鏡像倉(cāng)庫的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01