Skip to content

1.0 升级 1.2

oilbeater edited this page Jun 27, 2022 · 6 revisions

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

注意:由于 1.2 中使用 ovn 20.03,文件目录相对之前有调整,因此升级过程中无法对外提供服务,会存在一段时间的网络中断。

  1. 给 node 增加 annotation
kubectl annotate no --all ovn.kubernetes.io/allocated=true
  1. 给 ip 增加 label
kubectl get ip --no-headers | while read line;do
  ip=$(echo $line | awk '{print $1}')
  subnet=$(echo $line | awk '{print $5}')

  kubectl label ip $ip $subnet= --overwrite
done
  1. 停止 kube-ovn-controller
kubectl scale deployment -n kube-system --replicas=0 kube-ovn-controller
  1. 停止 ovn-central
kubectl scale deployment -n kube-system --replicas=0 ovn-central
  1. 移动 ovndb 文件,需要在所有 master 机器执行响应操作
mkdir -p /etc/origin/ovn/
cp /etc/origin/openvswitch/ovnnb_db.db /etc/origin/ovn/
cp /etc/origin/openvswitch/ovnsb_db.db /etc/origin/ovn/
  1. 下载相关 yaml 文件
wget https://raw.githubusercontent.com/kubeovn/kube-ovn/release-1.2/yamls/crd.yaml
wget https://raw.githubusercontent.com/kubeovn/kube-ovn/release-1.2/yamls/ovn.yaml
wget https://raw.githubusercontent.com/kubeovn/kube-ovn/release-1.2/yamls/kube-ovn.yaml
  1. 修改 yaml

    1. 如果 ovn-central 为高可用模式,修改 ovn.yaml 文件,ovn-central deployment 的 replicasNODE_IPS 修改为和旧的一致.
    2. 修改 kube-ovn.yaml,如果 ovn-controller deployment 的 command 中的 --default-cidr=$POD_CIDR --node-switch-cidr=$JOIN_CIDR 和旧的不一致,修改为旧的一致
  2. 更新 OVN,等待所有 Pod Ready,手动删除所有 ovs-ovn Pod,运行 kubectl ko diagnose all 确认状态正常

kubectl apply -f crd.yaml
kubectl apply -f ovn.yaml
  1. 更新 Kube-OVN,等待所有 Pod Ready,手动删除所有 kube-ovn-cni Pod,运行 kubectl ko diagnose all 确认状态正常
kubectl apply -f kube-ovn.yaml
Clone this wiki locally