本文档介绍如何在对业务影响尽可能小的情况下从 0.10 升级到 1.0。在升级过程中依然可能出现业务网络中断的情况,需要合理安排升级时间,并预先进行测试。

    注意:1.0 之前版本 kube-ovn 组件都安装在 kube-ovn 命名空间下,1.0 之后的版本会部署在 kube-system 命名空间下,升级时为了保证尽可能的平滑,不会改变命名空间。

    • 升级 kube-ovn-controller
      kubectl edit deployment -n kube-ovn kube-ovn-controller

    将镜像 tag 更新为 v1.0.1。等待 kube-ovn-controller 启动正常,观察日志是否出现错误。

    • 升级 ovn db
      kubectl edit deployment -n kube-ovn ovn-central

    a. 如果 replicas 为 3 或者更多,将 maxUnavailable 设置为 1b. 将镜像 tag 更新为 v1.0.1c. 等待更新完成,所有 ovn-central pod Ready

    • 升级 kube-ovn-cni
      kubectl edit daemonset -n kube-ovn kube-ovn-cni

    将 container 和 initcontainer 中的镜像 tag 均更新为 v1.0.1

    由于 Daemonset 的更新策略为 OnDelete 不会自动更新 Pod,需要逐个删除 kube-ovn-cni Pod 并等待 Pod 运行正常

    • 升级 ovs-ovn
      注意: 该步骤会导致节点网络中断,为了不影响业务需要逐一驱逐节点上的业务 Pod

    kubectl edit daemonset -n kube-ovn ovs-ovn

    将镜像 tag 更新为 v1.0.1。由于 Daemonset 的更新策略为 OnDelete 需要逐一删除 ovs-ovn Pod。在 ovs-ovn Pod 运行正常后可以使用 kubectl ko diagnose node <nodeName> 来验证该节点网络正常。