跳转至

修改子网 CIDR

如果创建的子网 CIDR 冲突或不符合预期,可以通过本文档的步骤进行修改。

修改子网 CIDR 后之前创建的 Pod 将无法正常访问网络需要进行重建。 建议操作前慎重考虑。本文只针对业务子网 CIDR 更改进行操作,如需 更改 Join 子网 CIDR 请参考更改 Join 子网 CIDR。

编辑子网

使用 kubectl edit 修改子网 cidrBlock,gateway 和 excludeIps。

kubectl edit subnet test-subnet

重建该子网绑定的 Namespace 下所有 Pod

以子网绑定 test Namespace 为例:

for pod in $(kubectl get pod --no-headers -n "$ns" --field-selector spec.restartPolicy=Always -o custom-columns=NAME:.metadata.name,HOST:spec.hostNetwork | awk '{if ($2!="true") print $1}'); do
  kubectl delete pod "$pod" -n test --ignore-not-found
done

若只使用了默认子网,可以使用下列命令删除所有非 host 网络模式的 Pod:

for ns in $(kubectl get ns --no-headers -o custom-columns=NAME:.metadata.name); do
  for pod in $(kubectl get pod --no-headers -n "$ns" --field-selector spec.restartPolicy=Always -o custom-columns=NAME:.metadata.name,HOST:spec.hostNetwork | awk '{if ($2!="true") print $1}'); do
    kubectl delete pod "$pod" -n "$ns" --ignore-not-found
  done
done

更改默认子网配置

若修改的为默认子网的 CIDR 还需要更改 kube-ovn-controller Deployment 的启动参数:

args:
- --default-cidr=10.17.0.0/16
- --default-gateway=10.17.0.1
- --default-exclude-ips=10.17.0.1

微信群 Slack Twitter Support


最后更新: 2022年7月4日
创建日期: 2022年5月25日

评论

回到页面顶部