dcos-net 分析之 dcos-l4lb
dcos-net 是 mesosphere 自研的基于 mesos 的开源网络解决方案,用于处理 服务发现,负载均衡,以及容器同节点跨节点访问所使用的 overlay 等网络资源。
dcos-net 主要有 dcos-l4lb, dcos-overlay, dcos-dns 三大模块组成。这次介绍的是 dcos-l4lb 模块,主要完成于 vip 的服务发现及基于 lvs 的负载均衡功能,当然 mesosphere 除了 l4 的 lb 之外还有 基于 haproxy 实现的 marathon-lb 和 edge-lb,后者只适用于企业版本。
Route_mgr 维护本地访问vip的路由,如
local 11.254.192.142 dev minuteman scope host
L4lb-mesos-poller 作为整个dcos l4lb信息的入口,周期地从 mesos-master/agent 获取全量当前 task 的信息,根据 task 的状态选择将 task 加入到backend,并将vip从域名转换为ip(由dcos-net维护),整理完后将vip信息转发 lashup
L4lb-kashup-kv-listener 监听 lashup vip 的事件,当有 vip 有更新时处理获取 lashup-event,将vip的最新信息 push 给 l4lb-mgr,并且将 vip 与域名(顶级域名为directory, global, 顶级域名为mesos会将由mesos-dns处理)的关系写入到 erldns 中
l4lb-netns-watch 用于获取 l4lb 的资源是否使用单独的网络命名空间来处理,默认使用 host 网络命名空间。