服务编排-以docker-swarm为例讲解

服务编排:
一、服务部署
二、服务发现
三、服务更新
四、服务扩缩容

 

正文

一、服务部署

https://www.cnblogs.com/andy9468/p/14348421.html
docker命令有2中方式放到swarm manager上执行
方式一:ssh登录到swarm manager节点上,输入docker命令。
方式二:通过remote api将命令传输到swarm manager上。

以方式二为例,描述swarm原理
1、docker client上,输入命令docker service create...
2、命令通过远程api传输到swarm manager节点上
(1)docker Daemon接收到命令,并转交给Scheduler(调度器)
(2)Scheduler中的子模块Filter(过滤器,用户可定制)负责过滤出集群中的节点,而子模块strategy(策略器,用户可定制)负责根据策略选择集群中合适的节点
(3)最终由cluster通过远程api调用集群中的一个节点实现命令的执行
(4)Node discovery是辅助功能,负责监控集群中各个节点的健康状态。

过滤器——filter

constraints,约束过滤器。根据操作系统、内核版本、存储等指标,结合label使用。
affinity,亲和过滤器。根据容器之间的亲和程度。比如web容器和db容器,放到同一个节点。
dependency,依赖过滤器。根据依赖关系,把容器放到一起。
health filter,健康过滤器。把有问题的节点去掉。
ports filter,端口过滤器。根据端口是否被占用,选择节点。

策略器——strategy

binpack,使用资源最多的节点,可以集中容器。
spread,使用资源最少的节点,可以分散容器。
random,随机选择节点。

二、服务发现

三种场景

1、ingress的服务发现

ingress的overlay网络,是基于物理网络之上的虚拟网络。使上层应用不再依赖物理网络,并且使下层物理网络保持不变。

2、ingress+link的服务发现

docker-compose(link处理依赖)和docker stack相似,都可以处理一组容器。
link是解决容器之间的访问

3、自定义网络的服务发现

自定义网络也是overlay网络,是解决容器之间的访问,通过服务的名字。

三、服务更新

docker service update 。。。

四、服务扩缩容

docker service scale 。。。

 

posted @ 2021-01-30 12:03  安迪9468  阅读(553)  评论(0编辑  收藏  举报