阿里云服务器部署?Docker?Swarm集群

 更新时间:2022年07月11日 08:54:00   作者:Bug?终结者  
这篇文章主要介绍了阿里云服务器部署?Docker?Swarm集群,Docker Swarm 的作用就是用来管理Docker集群的平台,本文给大家介绍了Docker Swarm的基本概念和Docker Swarm 和 k8s的区别,需要的朋友可以参考下
(福利推荐:【腾讯云】服务器最新限时优惠活动,云服务器1核2G仅99元/年、2核4G仅768元/3年,立即抢购>>>:9i0i.cn/qcloud

(福利推荐:你还在原价购买阿里云服务器?现在阿里云0.8折限时抢购活动来啦!4核8G企业云服务器仅2998元/3年,立即抢购>>>:9i0i.cn/aliyun

一、什么是 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集群内容请搜索程序员之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持程序员之家!

相关文章

  • 基于docker-compose构建Mongodb副本集的示例详解

    基于docker-compose构建Mongodb副本集的示例详解

    副本集是?MongoDB?高可用性和数据安全性策略的基础,适用于对数据安全性和服务可用性有较高要求的场景,本文给大家介绍了如何基于docker-compose构建Mongodb副本集,文中通过代码示例给大家介绍的非常详细,需要的朋友可以参考下
    2024-01-01
  • 基于Docker+Selenium Grid的测试技术应用示例代码

    基于Docker+Selenium Grid的测试技术应用示例代码

    Selenium Grid允许我们在多台计算机上并行运行测试,并集中管理不同的浏览器版本和浏览器配置。这篇文章给大家介绍基于Docker+Selenium Grid的测试技术应用示例代码,需要的朋友参考下吧
    2021-08-08
  • Docker安装OpenWrt的实现步骤

    Docker安装OpenWrt的实现步骤

    OpenWrt是一种可以运行在路由器上的嵌入式操作系统,提供了许多网络服务和功能,本文主要介绍了Docker安装OpenWrt的实现步骤,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-08-08
  • 详解Windows下运用Docker部署Node.js开发环境

    详解Windows下运用Docker部署Node.js开发环境

    这篇文章主要介绍了详解Windows下运用Docker部署Node.js开发环境,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-01-01
  • Docker入门教程之本地打包docker镜像教程

    Docker入门教程之本地打包docker镜像教程

    Docker镜像是一个特殊的文件系统,既提供了运行时所需的程序、库和资源,还提供了相应的配置参数,只是不包含动态数据,下面这篇文章主要给大家介绍了关于Docker入门教程之本地打包docker镜像的相关资料,需要的朋友可以参考下
    2023-06-06
  • Docker安装宝塔面板的实现

    Docker安装宝塔面板的实现

    本文主要介绍了Docker安装宝塔面板的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-08-08
  • docker安装elasticsearch和kibana的方法步骤

    docker安装elasticsearch和kibana的方法步骤

    这篇文章主要介绍了docker安装elasticsearch和kibana的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-06-06
  • Docker容器如何查看ip地址的实现方法

    Docker容器如何查看ip地址的实现方法

    这篇文章主要介绍了Docker容器如何查看ip地址的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09
  • 浅谈docker compose书写规则

    浅谈docker compose书写规则

    这篇文章主要介绍了浅谈docker compose书写规则,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-05-05
  • docker容器启动后添加端口映射

    docker容器启动后添加端口映射

    这篇文章主要介绍了docker容器启动后添加端口映射,,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-06-06

最新评论

?


http://www.vxiaotou.com