EKS集群部署Nginx Ingress Controller后创建Ingress对象报错求助
解决EKS 1.20.15部署ingress-nginx 4.4.2时EndpointSlice资源找不到的问题
问题根源
核心是版本不兼容:
- ingress-nginx Helm Chart 4.4.2依赖的client-go版本为v0.25.3,该版本默认调用
discovery.k8s.io/v1版本的EndpointSlice API; - 你的EKS集群是1.20.15,而Kubernetes 1.20中仅支持
discovery.k8s.io/v1beta1版本的EndpointSlice(v1稳定版在1.21才正式发布); - 同时ingress-nginx官方明确标注,4.x系列Chart要求集群版本至少为1.21,你的集群版本不满足要求,因此出现资源查找失败的错误。
解决办法
将ingress-nginx降级到兼容Kubernetes 1.20的版本,推荐使用3.36.0(这是支持1.20的最新稳定版)。
具体操作步骤
- 卸载已部署的ingress-nginx 4.4.2:
helm uninstall ingress-nginx -n ingress-nginx
(若你的release名称或命名空间不同,对应修改即可)
- 确保ingress-nginx Helm仓库为最新状态:
helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx || true helm repo update
- 安装兼容版本3.36.0:
helm install ingress-nginx ingress-nginx/ingress-nginx --version 3.36.0 -n ingress-nginx --create-namespace
- 验证部署状态:
kubectl get pods -n ingress-nginx
等待所有Pod进入Running状态后,再创建Ingress对象即可正常工作。
额外验证(可选)
可先确认集群支持的EndpointSlice版本,确认仅存在v1beta1:
kubectl api-resources | grep endpointslices
正常输出示例:
endpointslices discovery.k8s.io/v1beta1 true EndpointSlice
内容的提问来源于stack exchange,提问作者Ankit Soni
相关产品推荐
相关产品推荐

