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

Kubernetes应用Ingress报错:networking.k8s.io/v1版本无对应资源类型

问题原因分析

1. Kubernetes版本兼容性限制

你的集群是Kubernetes 1.18.9+k3s1,networking.k8s.io/v1版本的Ingress资源是在Kubernetes 1.19版本才正式GA(稳定发布)的。在1.18版本中,Ingress的稳定API版本为extensions/v1beta1或networking.k8s.io/v1beta1,直接使用networking.k8s.io/v1会导致集群无法识别该资源类型。

2. Ingress YAML文件存在多处语法错误

你的argocdingress.yaml有几个致命格式问题:

  • apiVersion: networking.k8s.io/v1与kind: Ingress写在同一行,YAML要求每个键值对单独成行
  • paths节点下重复定义了path: /和pathType: Prefix
  • backend部分存在无效文本your text,且service的嵌套格式不符合Kubernetes规范

解决方案

步骤1:修正YAML文件并适配集群API版本

针对K8s 1.18版本,使用networking.k8s.io/v1beta1作为API版本,同时修复所有语法错误,修正后的完整YAML如下:

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: argocdingress
  namespace: argocd
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /
spec:
  rules:
  - host: argocd.fonepay.com
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          serviceName: argocd-server
          servicePort: http

若集群未启用networking.k8s.io/v1beta1,也可替换为extensions/v1beta1版本,格式完全一致。

步骤2:重新部署Ingress资源

执行以下命令应用修正后的配置:

kubectl apply -f argocdingress.yaml

步骤3:验证部署结果

检查Ingress是否正常创建:

kubectl get ingress -n argocd

额外说明

若后续将集群升级至1.19+版本,迁移到networking.k8s.io/v1版本的Ingress时,需注意:

  • backend字段需改为service嵌套结构,格式为service: { name: xxx, port: { number: xxx } }
  • 必须明确指定pathType字段(可选值:ImplementationSpecific、Exact、Prefix)

内容的提问来源于stack exchange,提问作者The Story Teller Nepal

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 15:50:23