Skip to content

平滑升级策略

oilbeater edited this page Jun 27, 2022 · 3 revisions

Wiki 下的中文文档将不在维护,请访问我们最新的中文文档网站,获取最新的文档更新。

由于 Kube-OVN 的每次更新涉及底层 OVN 和 OVS 的更新,存在着网络中断的风险,依照下列的策略可以尽可能降低升级对已有网络的影响。从 1.5 版本开始,我们对 vswitchd 和 ovn-controller 的停止方式进行了修改,可以保证已有数据流在 ovn 和 ovs 组件停止的情况下半分钟内不中断来降低升级对已有网络的影响。

  1. 和业务方沟通升级维护时间,尽量在升级期间不要有业务更新

  2. 关注 wiki 页面关于版本升级的提示,部分版本间升级可能存在特殊注意事项

  3. 将新版本镜像提前下发到每个节点,降低 ovs agent 升级时间间隔,保证对业务影响时间最短

  4. 升级 kube-system 下的 daemonset kube-ovn-pinger, 对比新旧 yaml 之间的区别,主要为镜像版本变化,对比后 edit 现有 daemonset 后等待更新完成。kube-ovn-pinger 为监控组件,不影响网络数据流,对现有网络无影响。

  5. 升级 kube-system 下的 daemonset kube-ovn-cni, 对比新旧 yaml 之间的区别,主要为镜像版本变化,对比后 edit 现有 daemonset 后需要手动销毁现有 kube-ovn-cni pod 等待更新完成。kube-ovn-cni 主要对新建和删除的 Pod 进行网络操作处理,不影响已有网络数据流,对现有网络无影响。

  6. 升级 kube-system 下的 deployment ovn-central, 对比新旧 yaml 之间的区别,主要为镜像版本变化,可能会存在其他参数变化,对比后 edit 现有 deployment 进行更新。ovn-central 更新不影响已有网络数据流,对新建或删除的 Pod 网络会产生影响。

  7. 升级 kube-system 下的 daemonset ovs-ovn, 对比新旧 yaml 之间的区别,主要为镜像版本变化,对比后 edit 现有 daemonset 后需要手动销毁现有 ovs-ovn pod 等待更新完成。ovs-ovn 为 vswitchd,ovsdb,ovn-controller 等组件,如果更新过程超过半分钟,会对已有网络数据流产生影响,需要逐一升级验证。

  8. 升级 kube-system 下的 deployment kube-ovn-controller,对比新旧 yaml 之间的区别,主要为镜像版本变化,可能会存在其他参数变化,对比后 edit 现有 deployment 进行更新。该步骤主要对控制平面进行更新,不影响已有网络数据流

Clone this wiki locally