AKS通过Helm安装Ingress Controller时遇资源已存在错误求助
问题原因及解决方法
为什么Azure门户看不到相关资源?
IngressClass是集群级资源,不属于任何命名空间,Azure门户的AKS默认资源视图不会展示这类集群级资源,所以你在门户里找不到它。- 之前的
ingress-basic命名空间可能已经被删除,但集群级的IngressClass资源不会随命名空间一起删除,因此残留了下来。
解决步骤
1. 确认残留资源
用kubectl命令检查集群内的IngressClass和旧Helm发布:
# 查看所有IngressClass资源 kubectl get ingressclasses # 查看所有Helm发布(包括已删除命名空间的残留记录) helm list --all-namespaces
执行后你会看到名为nginx的IngressClass,以及可能存在的ingress-nginx发布记录(关联ingress-basic命名空间)。
2. 方案一:清理旧资源后重新安装
如果不需要之前的Ingress Controller残留资源,执行以下操作:
- 若旧的Helm发布还存在,先卸载:
helm uninstall ingress-nginx -n ingress-basic
- 删除残留的IngressClass:
kubectl delete ingressclass nginx
- 之后重新在
kuber-ut命名空间执行你的Helm安装命令即可。
3. 方案二:指定新的IngressClass名称安装
如果想保留现有的nginx IngressClass,或者不想删除它,可以在安装时指定一个新的IngressClass名称避免冲突:
在你的Helm安装命令中添加以下参数:
--set controller.ingressClass.name=nginx-kuber-ut
这样新的Ingress Controller会创建属于自己的nginx-kuber-ut IngressClass,不会和现有资源冲突。
内容的提问来源于stack exchange,提问作者evolmonster
相关产品推荐
相关产品推荐

