Networking
eru-core 的 SDN 网络主要由 Runtime 层实现, 用户请求里的 network
会被透传.
Docker Runtime: 只要有对应的 CNM 插件, 创建了对应都 docker network, 那么用户指定的 network 就能成功创建.
Yavirt Runtime: 绑定使用 Calico SDN, 同 docker network 类似, 需要先在 yavirt 中注册网络与 CIDR.
Systemd Runtime: 通过 CNI 把 daemon 扔进 Calico SDN, 尚在施工中.
这套机制的好处是:
BGP-based: 可通过 Router Reflector 与现有基础设施集成
Pure L3: 无封包, 高性能
CNI/CNM-based: 成熟的 SDN API, 官方背书
统一网络, 便于混合编排容器和虚拟机
除此之外, eru-core 提供了两套 CNM 插件: eru-minions, eru-barrel
Minions
Minions 是一个 Calico SDN 的 CNM 插件, 用于在 etcd v3 上打通 dockerd 和 calico-node.
Minions 虽然稳定, 但是推荐使用 eru-barrel, 提供了更多的功能.
Barrel
Barrel 也是一个 Calico SDN 的 CNM 插件, 但是与 Minions 相比, 他额外提供了 fix-ip 的功能.
先创建一个有 fixed-ip
label 的容器:
然后把它停止, barrel 保证它的 ip 不会被之后的新容器占用, 因此可以安全有保障地 restart 且拥有相同 ip.
wiki: https://github.com/projecteru2/barrel/wiki/Quick-Start
Last updated