那我们打出了镜像包,并且能启动起来了。
简单的做法,我们通过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 内核中可用的传输级负载均衡器。



