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

本文涉及的产品
云服务器 ECS,u1 2核4GB 3个月
云服务器 ECS,每月免费额度200元 3个月
云服务器 ECS,u1 4核16GB 1个月
简介: 阿里云服务器 一键部署 Docker Swarm 集群!
📢📢📢📣📣📣

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


❤️❤️❤️ 感谢各位大可爱小可爱! ❤️❤️❤️

@[TOC]

一、什么是 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来保证集群的高可用与高可靠性!

后续会更新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入门 -- 阿里云服务器环境下安装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 已完结!

如果这篇【文章】有帮助到你,希望可以给【 Bug 终结者】点个赞👍,创作不易,如果有对【 后端技术】、【 前端领域】感兴趣的小可爱,也欢迎关注❤️❤️❤️ 【 Bug 终结者】❤️❤️❤️,我将会给你带来巨大的【收获与惊喜】💝💝💝!
相关实践学习
一小时快速掌握 SQL 语法
本实验带您学习SQL的基础语法,快速入门SQL。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情:&nbsp;https://www.aliyun.com/product/ecs
相关文章
|
1天前
|
Kubernetes 网络协议 Docker
k8s 开船记-故障公告:自建 k8s 集群在阿里云上大翻船
k8s 开船记-故障公告:自建 k8s 集群在阿里云上大翻船
|
2天前
|
Kubernetes Java Docker
使用Kubernetes和Docker部署Java微服务
使用Kubernetes和Docker部署Java微服务
|
1天前
|
消息中间件 监控 RocketMQ
Docker Compose 一键快速部署 RocketMQ
Docker Compose 一键快速部署 RocketMQ
11 0
|
2天前
|
存储 Serverless 对象存储
函数计算产品使用问题之项目打包为docker镜像,该如何部署上去
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
2天前
|
关系型数据库 MySQL Nacos
使用 Docker 部署 Nacos 并配置 MySQL 数据源
使用 Docker 部署 Nacos 并配置 MySQL 数据源
11 0
|
2天前
|
关系型数据库 应用服务中间件 nginx
Docker + node(koa) + nginx + mysql 线上环境部署
Docker + node(koa) + nginx + mysql 线上环境部署
|
3天前
|
负载均衡 网络协议 开发工具
经验大分享:SRS4WebRTC集群docker安装部署:
经验大分享:SRS4WebRTC集群docker安装部署:
|
3天前
|
负载均衡 网络协议 开发工具
经验大分享:SRS4WebRTC集群docker安装部署:
经验大分享:SRS4WebRTC集群docker安装部署:
|
数据采集 SQL 弹性计算
使用云服务器ECS部署了自己的第一个爬虫
云服务器部署爬虫爬取网站最新通告并推送
使用云服务器ECS部署了自己的第一个爬虫
|
4天前
|
弹性计算 运维 安全
阿里云ecs使用体验
整了台服务器部署项目上线

热门文章

最新文章