You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

通过Terraform部署EKS上的Nginx Ingress Controller失败求助

解决EKS 1.24+集群中Nginx Ingress Controller CrashLoopBackOff问题

问题根源

  • 你的EKS集群版本为1.24+,而Kubernetes从1.22版本开始已彻底移除networking.k8s.io/v1beta1和extensions/v1beta1的Ingress API定义。
  • 当前使用的ingress-nginx Helm chart版本3.30.0对应控制器版本v0.46.0,该版本仅支持已废弃的v1beta1.Ingress资源,无法适配1.24+集群的API规范,因此触发failed to list *v1beta1.Ingress错误,导致Pod进入CrashLoopBackOff状态。

Terraform修复方案

直接升级ingress-nginx Helm chart至支持Kubernetes 1.24+的版本(推荐4.x系列及以上,这些版本的控制器已适配networking.k8s.io/v1 Ingress API)。

修改后的helm_release资源配置

resource "helm_release" "nginx_ingress" {
  namespace = kubernetes_namespace.test.metadata.0.name
  wait      = true
  timeout   = 600

  name = "ingress-nginx"

  repository = "https://kubernetes.github.io/ingress-nginx"
  chart      = "ingress-nginx"
  # 使用兼容K8s 1.24+的chart版本,示例为4.10.0(可根据需求选择更高兼容版本)
  version    = "4.10.0"

  # 可选:若需要自定义控制器配置,可添加values块引入配置文件
  # values = [
  #   file("${path.module}/ingress-values.yaml")
  # ]
}

操作步骤

  1. 清理已失败的Helm发布(若Terraform状态已记录该失败资源):
helm uninstall ingress-nginx -n test
  1. 替换Terraform代码中helm_release的version字段为兼容版本
  2. 重新执行部署:
terraform init
terraform apply

额外说明

  • 通常chart 4.x对应控制器v1.0+,适配K8s 1.19+;chart 5.x对应控制器v1.6+,适配K8s 1.21+,可根据集群版本选择合适范围。
  • 若有自定义配置,需确保配置项与新版本chart的参数兼容。

内容的提问来源于stack exchange,提问作者nocnoc

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 09:45:28