We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
本着开发封闭的原则, 这部分工作其实是甩给 barrel 的, 但是我觉得这片净土比较适合写 proposal...
总得来说, 现有的 docker-cni 的流程是:
shim -> docker-cni -> cni-bin (calico) -> oci (runc)
-> 表示一次 fork(2) + exec(2) 的进程调用, 下同.
->
fork(2)
exec(2)
为了支持 fixed-ip 特性, 我发现只要再多加一层就可以了, 变成:
shim -> docker-cni -> cni-wrapper (barrel) -> cni-bin (calico) -> oci (runc)
多加的这层 cni-wrapper (其实就是 barrel 二进制):
cni-wrapper
barrel
fixed-ip
cni-bin add
cni-bin del
剩下要处理的就是 remove, 让作为 dockerd-wrapper 的 barrel daemon 去真正调用 cni-bin del 释放 ip, 就可以了.
The text was updated successfully, but these errors were encountered:
周末重新想了一下, 需要对现有的 docker-cni 做一下简化, 对之后的 fixed-ip 也有好处.
几个核心的点是:
Sorry, something went wrong.
nyanpassu
No branches or pull requests
本着开发封闭的原则, 这部分工作其实是甩给 barrel 的, 但是我觉得这片净土比较适合写 proposal...
总得来说, 现有的 docker-cni 的流程是:
->
表示一次fork(2)
+exec(2)
的进程调用, 下同.为了支持 fixed-ip 特性, 我发现只要再多加一层就可以了, 变成:
多加的这层
cni-wrapper
(其实就是barrel
二进制):fixed-ip
标记的时候啥都不干, 透明的;fixed-ip
标记的时候:a. add 流程里, 根据 ID(或者 IP) 去查询 barrel db, 有结果就直接返回, 而不必再调用
cni-bin add
; 如果调用了cni-bin add
, 则把结果记录在 barrel db 里;b. del 流程里, 不调用
cni-bin del
, 只是更新 barrel db 里的数据状态;剩下要处理的就是 remove, 让作为 dockerd-wrapper 的 barrel daemon 去真正调用
cni-bin del
释放 ip, 就可以了.The text was updated successfully, but these errors were encountered: