前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >swarm源码分析(2)---manage流程与store

swarm源码分析(2)---manage流程与store

作者头像
月牙寂道长
修改2018-04-03 11:34:27
7710
修改2018-04-03 11:34:27
举报
文章被收录于专栏:月牙寂

说明:此文章为腾讯云机器自动从本人csdn博客搬迁过来。是本人授权操作。

申明:无本人授权,不可转载本文。如有转载,本人保留追究其法律责任的权利。

龚浩华,QQ 29185807,月牙寂 道长

第一时间获取文章,可以关注本人公众号 月牙寂道长 yueyajidaozhang

上一篇文章中,分析create和join,是创建和加入swarm集群。那么swarm集群是如何工作和管理的。

下面我们就来分析下。

1、swarm manage主体构建流程

先看看manage command是如何构建的

代码在swarm\main.go

这里的action是manage函数

我们看看这个函数

代码在swarm\manage.go

上面主要是tls的配置

上面构建了一个Store

上面构建了一个cluster

上面构建了一个strategy

上面构建了一个filter

上面构建了一个discovery

上面构建了一个scheduler

最后开启了api服务

整体的构建流程很清晰,模块化也很清晰。

下面我们一个一个模块来进行分析

2、store

代码在swarm\state\store.go

我们先看结构体

这里的注释说的很清楚,就是要一个简单的key《--》RequestedState map存储

我们看看RequestedState

代码在swarm\state\state.go

我们再看看ContainerConfig

代码在github.com\samalba\dockerclient\types.go

这里很清晰了,store保存的就是容器信息。

下面看看store都提供了那些操作

NewStore

初始化目录路径和map

Initialize

调用了restore

restore

遍历目录下的所有文件,并利用json进行加载

load

利用json来进行解析文件

Get

从map中查找对应的信息

Add

调用了set

set

将信息写入文件,同时把信息保存到map中

Remove

删除文件,同时删除map中的信息

Replace

替换

小结

stroe还是很简单的,主要维护一个目录文件和一个map存储。

文中如果有哪里讲解的不对的地方,还请见谅,望指正。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016年05月10日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、swarm manage主体构建流程
  • 2、store
    • NewStore
      • Initialize
        • restore
          • Get
            • Add
              • set
                • Remove
                  • Replace
                    • 小结
                    相关产品与服务
                    容器服务
                    腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
                    领券
                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档