一、docker swarm歷史
傻傻分不清楚的docker swarm經(jīng)典版、swarmkit、 swram mode
1.docker swarm經(jīng)典版
項(xiàng)目地址 :https://github.com/docker/swarm 重定向到claasicswarm
https://github.com/docker-archive/classicswarm
項(xiàng)目2014年開始開發(fā),2021年1月歸檔停止開發(fā)
創(chuàng)建集群命令
docker pull swarm
...做一些配置
sudo docker run --rm swarm create
可以看到,經(jīng)典版用于早期的docker,并且不是內(nèi)置命令
2.swarmkit
項(xiàng)目地址 https://github.com/moby/swarmkit
使用命令 swarmd 和 swarmctl。
創(chuàng)建集群
swarmd -d /tmp/node-1 --listen-control-api /tmp/node-1/swarm.sock --hostname node-1
滾動(dòng)更新
swarmctl service update redis --image redis:3.0.6
可以看到,swarmctl命令可以看到docker swarm的影子。
3.swarm mode
swarm模式,指的是docker當(dāng)前狀態(tài)是否是在集群里。默認(rèn)情況下集群模式默認(rèn)是禁用的。我們可以通過(guò)初始化集群和加入集群來(lái)改變這個(gè)狀態(tài)。
官網(wǎng)文檔:https://docs.docker.com/engine/swarm/
官網(wǎng):https://www.mirantis.com/software/swarm/
Docker 1.12.0以及之后的版本包括現(xiàn)在的版本內(nèi)置的工具,基于swarmkit開發(fā),時(shí)間節(jié)點(diǎn)大約是2016年后。
項(xiàng)目地址仍然是swarmkit:https://github.com/moby/swarmkit
常用命令
查看是否處于集群模式 ,inactive是非集群模式,active是集群模式。
docker info|grep -i swarm
創(chuàng)建集群
docker swarm init [OPTIONS]
滾動(dòng)更新
docker swarm update [OPTIONS]
這個(gè)才是我們?nèi)粘J褂玫膁ocker swarm,他本是是基于swarmkit項(xiàng)目進(jìn)行開發(fā)的。目前還在更新功能。
二、Mirantis收購(gòu)對(duì)docker swarm的影響
Mirantis公司在2019年11月13日收購(gòu)了Docker Enterprise(原Docker EE),
最初Mirantis表示將停止更新Swarm,僅提供兩年的技術(shù)支持。但是2020年2月又改變了當(dāng)初的想法,宣稱Swarm將繼續(xù)開發(fā)并與Kubernetes共存。
現(xiàn)在官網(wǎng)宣稱
Mirantis將繼續(xù)維護(hù)、增強(qiáng)和支持Docker Swarm,將其作為Mirantis Kubernetes Engine(MKE)產(chǎn)品不可分割的一部分。我們有一個(gè)專門的Swarm開發(fā)團(tuán)隊(duì),專注于Swarm的改進(jìn),并不斷推出新功能。我們還擁有一支由專家組成的服務(wù)和支持團(tuán)隊(duì),隨時(shí)準(zhǔn)備為您的部署和日常維護(hù)提供幫助。
可以看到,Docker Swarm仍在發(fā)展。
早期的docker swarm支持存儲(chǔ)服務(wù)是通過(guò)docker volume driver,目前發(fā)布的最新版Docker 23.0.0已經(jīng)支持 CSI volumes。不得不感嘆,docker swarm長(zhǎng)得越來(lái)越像Kubernetes了。
關(guān)于CSI的支持可以看這個(gè)#41982的pull:https://github.com/moby/moby/pull/41982
三、與Kubernetes比較
Swarm是開發(fā)人員為開發(fā)人員編寫的,Kubernetes是DevOps為DevOps編寫的。
四、選用Kubernetes還是docker swarm
1.誰(shuí)應(yīng)該使用Swarm?
開發(fā)人員領(lǐng)導(dǎo)的組織
運(yùn)營(yíng)團(tuán)隊(duì)較小的組織
剛接觸容器編排的團(tuán)隊(duì)
需要快速大規(guī)模部署生產(chǎn)就緒型集群,但不需要僅在Kubernetes中提供的擴(kuò)展和定制的團(tuán)隊(duì)
2.Swarm優(yōu)點(diǎn)
Swarm比Kubernetes簡(jiǎn)單,更易于學(xué)習(xí)和部署
默認(rèn)情況下是安全的
它包括自動(dòng)負(fù)載平衡
它與Docker CLI配合使用,因此如果您來(lái)自Docker環(huán)境,則無(wú)需學(xué)習(xí)其他CLI
3.結(jié)論
顯而易見,如果沒有專門的運(yùn)維團(tuán)隊(duì),而且還是小團(tuán)隊(duì)的話,最好還是選用Swarm集群而非k8s。如果有運(yùn)維團(tuán)隊(duì),優(yōu)先選擇k8s。
注意:阿里云在2019年12月31日下線了阿里云容器Swarm集群版,參見:https://help.aliyun.com/noticelist/articleid/1060032055.html
阿里云當(dāng)時(shí)的官方建議是遷移到k8s版。但是遷移需要多花集群管理費(fèi)、NAT網(wǎng)關(guān)費(fèi)。費(fèi)用超過(guò)自購(gòu)服務(wù)器。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-457140.html
這說(shuō)明使用托管云廠商版本雖然省事,但還是有停服遷移的風(fēng)險(xiǎn)。有能力自建集群還是自建集群。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-457140.html
到了這里,關(guān)于docker swarm沒有淘汰并且已經(jīng)支持CSI接口的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!