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

Kubernetes v2.6.1通过Terraform创建Ingress报错找不到请求资源

问题根因

你遇到的报错核心是Terraform使用的Ingress API版本与你的Kubernetes集群不兼容:

  • 报错提示post ingresses.extensions说明你当前用的kubernetes_ingress Terraform资源,默认调用已经废弃的extensions API组下的Ingress接口
  • 你的Kubernetes集群版本较高(1.19及以上),已经彻底移除了extensions/v1beta1版本的Ingress API,仅保留networking.k8s.io/v1版本的API,所以返回找不到请求资源的错误
  • 你写的YAML可以正常运行,是因为YAML开头明确指定了apiVersion: networking.k8s.io/v1,调用的是集群中存在的API接口。
关于字段差异的说明

你观察到的YAML用rules、Terraform配置用rule是HCL语法的正常特性:

  • YAML中rules是数组类型,对应多条规则
  • Terraform HCL中对于数组类型的嵌套块,直接用单数形式的块名重复声明即可,最终提交到Kubernetes时会自动转换为复数的rules数组,这个差异不是报错原因。
修复方案

你需要将旧的kubernetes_ingress资源替换为适配v1版本API的kubernetes_ingress_v1资源,同时调整配置结构匹配v1规范,修改后的配置参考:

resource "kubernetes_ingress_v1" "jenkins-ingress" {
  metadata {
    name = "${var.name}-ingress"
    namespace = var.namespace
    annotations = {
        "ingress.kubernetes.io/rewrite-target" = "/"
        "kubernetes.io/ingress.class" = "nginx"
    }
  }
  spec {
    rule {
      host = "domain.com"
      http {
        path {
          path = "/"
          path_type = "Prefix"
          backend {
            service {
              name = var.name
              port {
                number = 8080
              }
            }
          }
        }
      }
    }
  }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 14:54:07