如何重新创建Weave Net清单中的所有集群资源?
解决Weave Net插件资源卡住无法重建的问题
我来帮你搞定这个Weave Net DaemonSet及安全资源卡住的问题——你重复执行kubectl apply没效果,大概率是旧的卡住资源没彻底清理,新旧资源冲突导致的。试试下面的步骤:
1. 彻底清理现有Weave Net相关资源
先把旧的、卡住的Weave资源全部删掉,避免干扰新部署:
- 可以直接用Weave的官方yaml来批量删除所有相关资源:
kubectl delete -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')" - 如果上面的命令提示部分资源找不到,就手动逐个删除:
kubectl delete daemonset weave-net -n kube-system kubectl delete serviceaccount weave-net -n kube-system kubectl delete clusterrole weave-net kubectl delete clusterrolebinding weave-net kubectl delete role weave-net -n kube-system kubectl delete rolebinding weave-net -n kube-system
2. 清理节点上的残留进程和网络配置
有时候Pod卡住是因为节点上的Weave进程没完全退出,或者残留了网络配置,得登录到有问题的节点手动清理:
# 杀掉所有Weave相关进程 sudo pkill -f weave # 删除Weave创建的网络接口和网桥 sudo ip link delete weave sudo ip link delete weave-net # 清理Weave的数据存储目录 sudo rm -rf /var/lib/weave/
3. 重新部署Weave Net插件
清理完成后,再重新执行部署命令:
kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')"
4. 验证部署结果
执行下面的命令查看Weave Pod的状态,确认是否正常运行:
kubectl get pods -n kube-system | grep weave-net
如果所有weave-net的Pod都变成Running状态,就说明重建成功啦。
要是你不确定哪些是Weave的资源,可以先执行kubectl get all -n kube-system | grep weave列出所有相关资源,再针对性处理。
内容的提问来源于stack exchange,提问作者X. Wang
相关产品推荐
相关产品推荐

