作者介绍:Kube-OVN社区贡献者 Mr.Li
作者说:上文“kube-ovn源码解析(一)kube-ovn-controller”中我们提到kube-ovn-controller组件有一个重要的功能是负责管理pod的IP地址分配、回收,本文就主要介绍下这部分逻辑。
简单来说,就是用户创建pod的时候会显式或隐式指明这个pod需要使用哪个网络(subnet),kube-ovn-controller通过list-watch机制获取到pod add事件,然后取出相关信息为pod分配IP/mac。当pod删除的时候,获取pod del事件释放对应IP/mac。
当然kube-ovn-controller不仅仅是为pod分配IP而已,也会为pod网卡创建对应的ovn port、路由等信息,我们在后续的代码走读中也会看到。
Controller相关流程
pod事件list-watch
controller初始化的时候会初始化pod事件的监听者,同时初始化事件队列。当有pod事件如add、update、delete事件触发时,会将pod信息入队到事件队列中,后续由controlle