解决方案步骤:
-
列出当前命名空间中的 Helm 发布:
bash
复制
下载
helm list -n wx-system
确认是否存在名为
redis
的发布 -
卸载现有的 Redis 发布:
bash
复制
下载
helm uninstall redis -n wx-system
-
删除关联的 PVC(持久卷声明):
bash
复制
下载
kubectl delete pvc -n wx-system -l app.kubernetes.io/instance=redis
-
检查并清理残留资源:
bash
复制
下载
# 检查服务 kubectl get svc -n wx-system | grep redis # 检查配置 kubectl get secret -n wx-system | grep redis # 如果发现残留资源,手动删除: kubectl delete svc,secret,statefulset -n wx-system -l app.kubernetes.io/instance=redis
-
重新运行安装命令:
bash
复制
下载
helm install redis redis-18.12.1.tgz \ --namespace wx-system \ --set global.storageClass=nfs-client \ --set master.service.type=NodePort \ --set auth.password="*******" \ --wait
如果问题仍然存在:
-
检查 Helm 发布状态:
bash
复制
下载
helm status redis -n wx-system
-
强制删除残留状态:
bash
复制
下载
helm delete redis -n wx-system --ignore-not-found
-
清理 Helm 秘密(secret):
bash
复制
下载
kubectl delete secret -n wx-system -l owner=helm,name=redis
重新安装时的备选方案:
如果名称冲突问题持续存在,可以尝试使用新名称安装:
bash
复制
下载
helm install new-redis-name redis-18.12.1.tgz \ --namespace wx-system \ --set global.storageClass=nfs-client \ --set master.service.type=NodePort \ --set auth.password="password01" \ --wait
注意事项:
-
使用
--wait
参数时,确保所有依赖服务(如 nfs-client)已就绪 -
如果 NFS 存储有问题,检查 StorageClass 是否正确:
bash
复制
下载
kubectl get storageclass nfs-client -o yaml
-
安装后验证:
bash
复制
下载
kubectl get pods,svc,pvc -n wx-system
这些步骤应该能解决 "cannot re-use a name that is still in use" 错误,并成功部署 Redis。