likes
comments
collection
share

【云原生】阿里云服务器部署 Docker Swarm集群

作者站长头像
站长
· 阅读数 28

📢📢📢📣📣📣 哈喽!大家好,我是【Bug 终结者,【CSDNJava领域优质创作者】🏆,阿里云受邀专家博主🏆,51CTO人气博主🏆 . 一位上进心十足,拥有极强学习力的【Java领域博主】😜😜😜 🏅【Bug 终结者】博客的领域是【面向后端技术】的学习,未来会持续更新更多的【后端技术】以及【学习心得】。 偶尔会分享些前端基础知识,会更新实战项目,面向企业级开发应用! 🏅 如果有对【后端技术】、【前端领域】感兴趣的【小可爱】,欢迎关注【Bug 终结者】💞💞💞 ❤️❤️❤️ 感谢各位大可爱小可爱! ❤️❤️❤️

一、什么是 Docker Swarm?

Swarm是Docker公司推出的用来管理docker集群的平台,几乎全部用GO语言来完成的开发的,代码开源在github.com/docker/swar… 它是将一群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来保证集群的高可用与高可靠性!

后续会更新K8S相关文章~

三、购买4台阿里云服务器

我们选择按量付费,否则单独购买服务器的话很贵,按量付费用完即可释放,轻松便捷~

注意:购买需要向阿里云服务器充值100元,否则无法进行按量付费

创建实例

阿里云官方购买服务器

【云原生】阿里云服务器部署 Docker Swarm集群

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

【云原生】阿里云服务器部署 Docker Swarm集群

选择购买机器的类型 1V 2G 即可

【云原生】阿里云服务器部署 Docker Swarm集群

选择镜像

【云原生】阿里云服务器部署 Docker Swarm集群

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

【云原生】阿里云服务器部署 Docker Swarm集群

设置您的密码

【云原生】阿里云服务器部署 Docker Swarm集群

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

【云原生】阿里云服务器部署 Docker Swarm集群

单击创建实例即可完成操作!

四、Docker Swarm 工作模式

Docker Engine 1.12 引入了 swarm 模式,使您能够创建一个由一个或多个 Docker 引擎组成的集群,称为 swarm。一个 swarm 由一个或多个节点组成:在 swarm 模式下运行 Docker Engine 1.12 或更高版本的物理机或虚拟机。

有两种类型的节点:管理器工作器

【云原生】阿里云服务器部署 Docker Swarm集群

五、部署 Docker Swarm 集群

⛅连接4台服务器

我们采用 XShell 进行连接阿里云ECS服务器

【云原生】阿里云服务器部署 Docker Swarm集群

输入了之后会提示输入用户名和密码,输入即可成功连接

⚡安装Docker

这里我们采用4台服务器同时操作,否则一台一台的安装太浪费时间了,如下

【云原生】阿里云服务器部署 Docker Swarm集群

这样就是一个窗口输入命令其它窗口同步,高效率完成~

具体安装Docker可看:【云原生】Docker入门 -- 阿里云服务器环境下安装Docker

♻️部署Swarm

Docker安装完毕后,开始部署我们的集群,Docker自带Swarm,所以我们直接部署即可

初始化节点

docker swarm init --help 

【云原生】阿里云服务器部署 Docker Swarm集群

获取网络地址,进行创建节点

ip addr

docker swarm init --advertise-addr 39.96.185.143

【云原生】阿里云服务器部署 Docker Swarm集群

获取令牌

# 管理节点
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 Swarm集群

第一台机器可查看是否成功加入

docker node ls

最后一台机器可设置为管理节点

docker swarm join --token SWMTKN-1-1mzq8iev00xgswszp91h18tspm9rl5py7upw6ri9iaw484a1b3-a795z02iuctnhf4izji1fmmiv 172.27.206.16:2377

【云原生】阿里云服务器部署 Docker Swarm集群

成功搭建集群~

六、Raft协议

双主双从:假设一个主节点挂了,那么其它节点是否可以使用

Raft协议:保证了大多数节点存活可以使用,只要 > 1,集群至少大于3台

将主节点停止后,其它节点会宕机,无法使用!

【云原生】阿里云服务器部署 Docker Swarm集群

无法查看节点信息

Raft协议是必须保证大多数节点存活,才可以达到高可用,否则不可用!

七、其它命令

🖥️Docker Stack

部署集群项目的方式

# 单机部署
docker-compose
# 集群部署
docker stack


# 单机
docker-compose up 
# 集群
docker stack deploy

🏷️Docker Secret

Docker Secret 是安全证书,用来配置密码与证书

docker secret --help

【云原生】阿里云服务器部署 Docker Swarm集群

📇Docker Config

Docker Config 是配置

docker config --help

【云原生】阿里云服务器部署 Docker Swarm集群

⛵小结

以上就是【Bug 终结者】对 【云原生】阿里云服务器部署 Docker Swarm集群 的简单介绍,部署 Docker 集群,在微服务架构不超过10个的情况下会采用Docker Swarm或Compose 部署项目,如果超过的话,需要去适用K8S 来部署我们的项目上线! 后续会更新 K8S 相关文章,Docker 已完结!

如果这篇【文章】有帮助到你,希望可以给【Bug 终结者】点个赞👍,创作不易,如果有对【后端技术】、【前端领域】感兴趣的小可爱,也欢迎关注❤️❤️❤️ 【Bug 终结者】❤️❤️❤️,我将会给你带来巨大的【收获与惊喜】💝💝💝!

转载自:https://juejin.cn/post/7239173692228141114
评论
请登录