docker从入门到实践-docker swarm

6 篇文章 0 订阅

一.架构演进

1 不使用集群

那我们打出了镜像包,并且能启动起来了。

简单的做法,我们通过nginx负载均衡到我们启动的节点即可。

但是这样很不方便,每加减节点,都需要修改nginx,reload你的配置。

这个过程非常危险,并且不是自动扩容的。

2使用集群

我们预想的流程

我们想要的结果,是一组同样的服务,对外暴露同一个ip或者几个固定ip,这组服务的节点增加并不影响对nginx暴露的ip,并且内部有一定的负载均衡策略。当然这种简单的操作,docker官方的docker swarm和谷歌的Kubernetes都已经实现了,也是他们最基本和核心的功能,集群调度的功能,它们还有很多其他的功能,本文不展开介绍。

更细架构

我们以docker swarm为例子下边介绍一下dokcer集群主机是怎么来协调工作的。

二.docker swarm

介绍

Swarm是Docker官方提供的一款集群管理工具,其主要作用是把若干台Docker主机抽象为一个整体,并且通过一个入口统一管理这些Docker主机上的各种Docker资源。Swarm和Kubernetes比较类似,但是更加轻,具有的功能也较kubernetes更少一些。

swarm mananger:负责整个集群的管理工作包括集群配置、服务管理等所有跟集群有关的工作。

work node:即图中的 available node,主要负责运行相应的服务来执行任务(task)。

构成如图下的结构

一些具体的命令:Swarm 集群管理 | 菜鸟教程

实践的步骤:第八节:基于docker swarm进行集群管理和基于service/stack进行容器服务管理 - Yaopengfei - 博客园

几个概念

1)Swarm

集群的管理和编排是使用嵌入到 docker 引擎的 SwarmKit,可以在 docker 初始化时启动 swarm 模式或者加入已存在的 swarm

2)Node

一个节点(node)是已加入到 swarm 的 Docker 引擎的实例 当部署应用到集群,你将会提交服务定义到管理节点,接着 Manager

管理节点调度任务到 worker 节点,manager 节点还执行维护集群的状态的编排和群集管理功能,worker 节点接收并执行来自

manager 节点的任务。通常,manager 节点也可以是 worker 节点,worker 节点会报告当前状态给 manager 节点

3)服务(Service)

服务是要在 worker 节点上要执行任务的定义,它在工作者节点上执行,当你创建服务的时,你需要指定容器镜像

4)任务(Task)

常用命令

任务是在 docekr 容器中执行的命令,Manager 节点根据指定数量的任务副本分配任务给 worker 节点

docker swarm:集群管理,子命令有 init, join, leave, update。(docker swarm –help 查看帮助)

docker service:服务创建,子命令有 create, inspect, update, remove, tasks。(docker service–help 查看帮助)

docker node:节点管理,子命令有 accept, promote, demote, inspect, update, tasks, ls, rm。(docker node –help 查看帮助)

集群构建过程

三.docker swarm原理

Docker 使用了 Linux 内核 iptables 和 IPVS 的功能来实现服务发现和负载均衡。

  • iptables 是 Linux 内核中可用的包过滤技术,它可用于根据数据包的内容进行分类、修改和转发决策。

  • IPVS 是 Linux 内核中可用的传输级负载均衡器。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值