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