一、什么是 docker swarm?
swarm是docker公司推出的用来管理docker集群的平台,几乎全部用go语言来完成的开发的,代码开源在https://github.com/docker/swarm, 它是将一群docker宿主机变成一个单一的虚拟主机,swarm使用标准的docker api接口作为其前端的访问入口,换言之,各种形式的dockerclient(compose,docker-py等)均可以直接与swarm通信,甚至docker本身都可以很容易的与swarm集成,这大大方便了用户将原本基于单节点的系统移植到swarm上,同时swarm内置了对docker网络插件的支持,用户也很容易的部署跨主机的容器集群服务。
docker swarm 的作用就是用来管理docker集群的平台
二、docker swarm 和 k8s的区别
swarm的优势 与 劣势
优势
- swarm api兼容docker api,使得swarm 学习成本低,同时架构简单,部署运维成本较低。
劣势
- 同样是因为api兼容,无法提供集群的更加精细的管理。
- 在网络方面,默认的docker 容器是通过桥接与nat和主机外通信的,这就出现了2个问题,一个是因为nat,外部主机无法主动访问容器内(除了端口映射) ,另外默认桥接ip是一样的,这样会出现不同主机之间又相同的ip的情况,可以通过其它工具解决。
- 容器可靠性方面无k8s的 replication controllers 可以监控并维持容器的声明。swarm在启动时刻可以控制容器启动,启动后,如果容器崩溃,swarm没有机制来保证容器的运行
k8s的优势与劣势
优势
- 容器的高可用性,集群的精密管理,复杂的网络场景
劣势
- k8s的学习曲线陡峭,同时运维的成本相对高点
一般来说,服务不超过10个采用swarm即可,超过10个后必须采用k8s来保证集群的高可用与高可靠性!
三、购买4台阿里云服务器
我们选择按量付费,否则单独购买服务器的话很贵,按量付费用完即可释放,轻松便捷~
注意:购买需要向阿里云服务器充值100元,否则无法进行按量付费
创建实例
阿里云官方购买服务器

进入如下界面,选择按量付费

选择购买机器的类型 1v 2g 即可

选择镜像

进入下一步网络和安全组设置,保持默认即可,带宽可拉满(不收费)

设置您的密码

下一步,默认即可,确认订单,完成购买服务器操作

单击创建实例即可完成操作!
四、docker swarm 工作模式
docker engine 1.12 引入了 swarm 模式,使您能够创建一个由一个或多个 docker 引擎组成的集群,称为 swarm。一个 swarm 由一个或多个节点组成:在 swarm 模式下运行 docker engine 1.12 或更高版本的物理机或虚拟机。
有两种类型的节点:管理器 和 工作器

五、部署 docker swarm 集群
⛅连接4台服务器
我们采用 xshell 进行连接阿里云ecs服务器

输入了之后会提示输入用户名和密码,输入即可成功连接
⚡安装docker
这里我们采用4台服务器同时操作,否则一台一台的安装太浪费时间了,如下

这样就是一个窗口输入命令其它窗口同步,高效率完成~
具体安装docker可看:docker安装阿里云服务器和在虚拟机安装遇到的坑(问题小结)
♻️部署swarm
docker安装完毕后,开始部署我们的集群,docker自带swarm,所以我们直接部署即可
初始化节点
docker swarm init --help

获取网络地址,进行创建节点
ip addr docker swarm init --advertise-addr 39.96.185.143

获取令牌
# 管理节点 docker swarm join-token manager # 工作节点 docker swarm join-token worker
--token 后面的 是要利用上面的命令生成的,不是我的固定的,需要去生成,后续端口根据你的ip地址来~
我们其它机器加入节点
docker swarm join --token swmtkn-1-1mzq8iev00xgswszp91h18tspm9rl5py7upw6ri9iaw484a1b3-4f159n0ky1bcsnqlkkohx0g1a 172.27.206.16:2377

第一台机器可查看是否成功加入
docker node ls
最后一台机器可设置为管理节点
docker swarm join --token swmtkn-1-1mzq8iev00xgswszp91h18tspm9rl5py7upw6ri9iaw484a1b3-a795z02iuctnhf4izji1fmmiv 172.27.206.16:2377

成功搭建集群~
六、raft协议
双主双从:假设一个主节点挂了,那么其它节点是否可以使用
raft协议:保证了大多数节点存活可以使用,只要 > 1,集群至少大于3台
将主节点停止后,其它节点会宕机,无法使用!

无法查看节点信息
raft协议是必须保证大多数节点存活,才可以达到高可用,否则不可用!
七、其它命令
🖥️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

⛵小结
以上就是【bug 终结者】对 【云原生】阿里云服务器部署 docker swarm集群 的简单介绍,部署 docker 集群,在微服务架构不超过10个的情况下会采用docker swarm或compose 部署项目,如果超过的话,需要去适用k8s 来部署我们的项目上线! 后续会更新 k8s 相关文章,docker 已完结!
到此这篇关于阿里云服务器部署 docker swarm集群的文章就介绍到这了,更多相关阿里云docker swarm集群内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论