资讯专栏INFORMATION COLUMN

Cisco思科网络插件Contiv (二) Master实现原理

Pluser / 1441人阅读

摘要:在当前版本中会注册和两个服务,前者开放端口供控制整个系统,后者开放端口供控制器使用。

Contiv网络结构

上图为Contiv的网络模型,大体上可分为MasterHost Agent两个组件,其中Master负责管理所有网络资源 (IP地址分配租户管理策略管理等等)

Contiv-Master 组件 Distributed KV Store

Distributed KV Store, 即分布式键值存储, 它是跨主机容器网络的重要组成部分, 各个宿主机通过它进行配置数据和运行数据的同步, Contiv也不例外. Contiv提供EtcdConsul两种实现. 无论是哪一种, 信息都是以Key-Value Pair的形式存储,并且Key都是 /contiv.io/ 开头的形式. 比如 /contiv.io/state/xxx 记录配置信息, /contiv.io/oper/xxx 记录运行信息

HA

为了实现HA(高可用), Master 通常在多台宿主机上运行运行多个进程实例, 但同一时刻, 有且只有一个宿主机上的进程以 Leader 角色运行, 其余都以 Follow 角色运行. Master进程启动后, 首先以Follow 角色运行, 并且尝试去获取分布式数据库(Distributed KV Store)中的一把 Leader Lock (路径为/contiv.io/lock/netmaster/leader), 若能获取到, 则将角色切换为 Leader , 若不能获取到,则还是以 Follow 角色运行.

REST Server

Service表示Master对外提供的服务,Master进程启动后, 会将自身运行的Service信息(IP地址 端口号 角色)写入分布式数据库,这个过程称为 Service 注册。在当前版本中Master 会注册 netmasternetmaster.rpc 两个服务,前者开放9999端口供netctl 控制整个系统,后者开放9001端口供OpenFlow控制器使用。

Policy Engine

Policy Engine用来管理控制容器之间的网络流量隔离优先级策略. 比如设置容器A禁止除了容器B以外的其他容器访问XXXX其端口. MasterREST Server/api/v1/policys/{keys}/api/v1/rules/{keys} 都设置了相应的Handler, 当用户通过netctl 的命令添加或删除策略时, Master会调用对应的Handler, 最终通过设置 iptable 防火墙完成既定功能.

Contiv-Master 源码分析 master daemon 初始化

Master进程的入口在 netmaster/main.go, 它主要进行命令行参数的解析, 将解析的结果放入daemon.MasterDaemon 结构, 之后调用 MasterDaemonInit() 方法初始化进程

运行netmaster状态机


接着, Master进程启动状态机, 它只有两个状态,即前面提到的Master进程的角色, 启动之初都是以 Follower 角色运行, 若是能获得 Leader 锁, 则调用becomeLeader()进入 Leader 状态

Leader 运行

Leader角色运行时, Master进程首先创建一个APIController, 它创建REST Server提供给netctl , 设置各个URL对应的相应的处理函数.

Service 注册, 注册 netmasternetmaster.rpc 服务

初始化策略管理器, 这一步主要是从数据库中恢复各个Policy

设置面向pluginServer, 例如, 当plugin要向Master申请IP时,就会向"plugin/allocAddress"发送请求.

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/27528.html

相关文章

  • Cisco思科网络插件Contiv (三) Plugin 实现原理

    摘要:网络结构上图为的网络模型,大体上可分为和两个组件其中运行在每台宿主机上主要负责与交互实现插件逻辑配置底层进程实现具体的网络功能组件是与交互的核心逻辑以常用的为例该逻辑即是实现框架下所规定的种种接口实现与的消息交互关于和请查看与框架与实现同 Contiv网络结构 showImg(https://segmentfault.com/img/remote/1460000017001034?w=...

    DevTalking 评论0 收藏0
  • Cisco思科网络插件Contiv (四) 网络策略实践

    摘要:网络策略的作用可以通过网络策略来限制容器之间的访问行为,以实现用户对安全性的方面的要求。搭建过程环境准备参考思科网络插件一环境部署搭建环境,由于本文并不关注网络的跨主机特性,因此只在一台宿主机上启动进程和进程就够了。 网络策略的作用 Contiv可以通过网络策略来限制容器之间的访问行为,以实现用户对安全性的方面的要求。比如,我可以限制容器仅对源IP在特定范围的其他容器开放特定的端口,而...

    jackzou 评论0 收藏0
  • Cisco思科网络插件Contiv (一) 安装

    摘要:什么是官网是一个用于跨虚拟机裸机公有云或私有云的异构容器部署的开源容器网络架构。作为业界最强大的容器网络架构,具有层层和模式,能够与思科基础设施进行本地集成,并使用丰富的网络和安全策略将应用意图与基础设施功能进行映射。 什么是Contiv Contiv (官网)是一个用于跨虚拟机、裸机、公有云或私有云的异构容器部署的开源容器网络架构。作为业界最强大的容器网络架构,Contiv具有2层、...

    EasonTyler 评论0 收藏0
  • 思科联手AWS打造基于Kubernetes混合云解决方案

    摘要:思科云平台和解决方案高级副总裁解释说正确配置以在本地和公有云中部署应用需要定制集成,这从操作上来说可能是一项挑战。近年来,容器由于其灵活性已经成为部署应用的一种流行方式。容器技术将工作负载捆绑成轻量级的便携式软件包,可以在不同类型的基础设施之间轻松移动。今天早上公布的Cisco Hybrid Solution for Kubernetes on AWS解决方案旨在消除大规模使用容器的障碍。 ...

    lifefriend_007 评论0 收藏0

发表评论

0条评论

Pluser

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<