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

Kubernetes 1.22中AWS ALB Ingress Terraform读取资源报错求助

问题原因及解决方案

核心问题

报错the server could not find the requested resource (get ingresses.extensions my-ingress)的本质是:Terraform的kubernetes_ingress数据源正在调用Kubernetes 1.22已移除的extensions API组。

Kubernetes 1.22正式删除了extensions/v1beta1、extensions/v1版本的Ingress API,仅保留networking.k8s.io/v1作为标准Ingress API。你的Ingress配置已正确使用networking.k8s.io/v1,但Terraform数据源仍在尝试从旧API组读取资源。

解决步骤

1. 升级Terraform Kubernetes Provider

确保你的Terraform Kubernetes Provider版本不低于v2.0.0——该版本开始原生支持networking.k8s.io/v1版本的Ingress资源。在你的Terraform配置中更新provider约束:

terraform {
  required_providers {
    kubernetes = {
      source  = "hashicorp/kubernetes"
      version = ">= 2.0.0"
    }
  }
}

执行terraform init -upgrade完成版本升级。

2. 显式指定Ingress数据源的API版本

在data "kubernetes_ingress" "sticky_ingresses"块中添加api_version字段,明确指定使用networking.k8s.io/v1:

data "kubernetes_ingress" "sticky_ingresses" {
  provider = kubernetes.local

  api_version = "networking.k8s.io/v1" # 新增该行,指定正确API版本

  for_each = local.present && !local.service.maintenance ? local.service.sticky_services : {}

  metadata {
    name = each.value
    namespace = local.app_namespace
  }
}

验证

修改后执行terraform plan,确认报错消失,数据源可正常读取networking.k8s.io/v1版本的Ingress资源。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 23:00:18