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

简介: 阿里云服务器 一键部署 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 终结者】❤️❤️❤️,我将会给你带来巨大的【收获与惊喜】💝💝💝!
相关实践学习
2分钟自动化部署人生模拟器
本场景将带你借助云效流水线Flow实现人生模拟器小游戏的自动化部署
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情:&nbsp;https://www.aliyun.com/product/ecs
相关文章
|
5天前
|
并行计算 前端开发 异构计算
告别服务器繁忙,云上部署DeepSeek
本文以 DeepSeek-R1-Distill-Qwen-32B-FP8 为例,向您介绍如何在GPU实例上使用容器来部署量化的 DeepSeek-R1 蒸馏模型。
|
5天前
|
消息中间件 监控 RocketMQ
Docker部署RocketMQ5.2.0集群
本文详细介绍了如何使用Docker和Docker Compose部署RocketMQ 5.2.0集群。通过创建配置文件、启动集群和验证容器状态,您可以快速搭建起一个RocketMQ集群环境。希望本文能够帮助您更好地理解和应用RocketMQ,提高消息中间件的部署和管理效率。
152 91
|
7天前
|
机器学习/深度学习 人工智能 开发者
DeepSeek服务器繁忙?拒绝稍后再试!基于阿里云PAI实现0代码一键部署DeepSeek-V3和DeepSeek-R1大模型
阿里云PAI平台支持零代码一键部署DeepSeek-V3和DeepSeek-R1大模型,用户可轻松实现从训练到部署再到推理的全流程。通过PAI Model Gallery,开发者只需简单几步即可完成模型部署,享受高效便捷的AI开发体验。具体步骤包括开通PAI服务、进入控制台选择模型、一键部署并获取调用信息。整个过程无需编写代码,极大简化了模型应用的门槛。
140 7
|
8天前
|
弹性计算 JavaScript 前端开发
一键安装!阿里云新功能部署Nodejs环境到ECS竟然如此简单!
Node.js 是一种高效的 JavaScript 运行环境,基于 Chrome V8 引擎,支持在服务器端运行 JavaScript 代码。本文介绍如何在阿里云上一键部署 Node.js 环境,无需繁琐配置,轻松上手。前提条件包括 ECS 实例运行中且操作系统为 CentOS、Ubuntu 等。功能特点为一键安装和稳定性好,支持常用 LTS 版本。安装步骤简单:登录阿里云控制台,选择扩展程序管理页面,安装 Node.js 扩展,选择实例和版本,等待创建完成并验证安装成功。通过阿里云的公共扩展,初学者和经验丰富的开发者都能快速进入开发状态,开启高效开发之旅。
|
10天前
|
弹性计算 JavaScript 前端开发
一键安装!阿里云新功能部署Nodejs环境到ECS竟然如此简单!
一键安装!阿里云新功能部署Nodejs环境到ECS竟然如此简单!
一键安装!阿里云新功能部署Nodejs环境到ECS竟然如此简单!
|
11天前
|
机器学习/深度学习 弹性计算 人工智能
在阿里云ECS上一键部署DeepSeek-R1
Open WebUI 和 Ollama 的联合,通过集成 DeepSeek-R1 的强大功能,赋予每一位用户使用尖端 AI 技术的能力,使得复杂的 AI 技术不再是遥不可及的梦想。无论是研究人员、开发者,还是企业用户,您都能从这一创新中获得新的灵感和增长点。本文介绍通过计算巢一键部署和使用DeepSeek-R1。
在阿里云ECS上一键部署DeepSeek-R1
|
26天前
|
安全 前端开发 Go
轻松部署翼龙面板社区版:您的游戏服务器管理新体验
翼龙面板(Pterodactyl)社区版正是为此而生,它通过强大的开源技术栈(PHP、React 和 Go)和可靠的安全设计,让游戏服务器管理变得简单而高效。本文将带您通过阿里云计算巢快速部署翼龙面板社区版,尽享流畅的管理体验。
轻松部署翼龙面板社区版:您的游戏服务器管理新体验
|
29天前
|
XML Java 应用服务中间件
Spring Boot 两种部署到服务器的方式
本文介绍了Spring Boot项目的两种部署方式:jar包和war包。Jar包方式使用内置Tomcat,只需配置JDK 1.8及以上环境,通过`nohup java -jar`命令后台运行,并开放服务器端口即可访问。War包则需将项目打包后放入外部Tomcat的webapps目录,修改启动类继承`SpringBootServletInitializer`并调整pom.xml中的打包类型为war,最后启动Tomcat访问应用。两者各有优劣,jar包更简单便捷,而war包适合传统部署场景。需要注意的是,war包部署时,内置Tomcat的端口配置不会生效。
233 17
Spring Boot 两种部署到服务器的方式
|
1月前
|
弹性计算 Ubuntu Linux
阿里云服务器一键安装Docker社区版教程,基于系统运维管理OOS
阿里云服务器一键安装Docker社区版教程,基于系统运维管理OOS自动化部署。支持Ubuntu 22.04/20.04、CentOS 7.7-7.9及Alibaba Cloud Linux 3.2104 LTS。前提条件:ECS实例需运行中且有公网。步骤:选择Docker扩展并安装,验证成功通过命令`docker -v`查看版本号。
300 79
|
2月前
|
Prometheus 监控 Cloud Native
如何使用Prometheus监控Docker Swarm集群的资源使用情况?
还可以根据实际需求进行进一步的配置和优化,如设置告警规则,当资源使用超出阈值时及时发出警报。通过这些步骤,能够有效地使用 Prometheus 对 Docker Swarm 集群的资源进行监控和管理。
102 8

热门文章

最新文章