K8s v1.26.3创建Ingress端点报错求助
问题解决:K8s v1.26.3 Ingress创建报错(未知字段serviceName/servicePort)
错误原因
你使用的是networking.k8s.io/v1版本的Ingress API,但配置里还在沿用旧版本(v1beta1)的serviceName和servicePort字段。从Kubernetes 1.22开始,Ingress的backend结构已更新,这两个字段被移除,必须使用新的嵌套格式。
修改后的正确Ingress配置
将原配置中的backend部分替换为service.name和service.port的结构,完整配置如下:
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: labels: env: prod app: demo-ms layer: frontend name: prod-demo-ingress namespace: prod annotations: nginx.ingress.kubernetes.io/rewrite-target: / spec: rules: - host: demo.abc.in http: paths: - path: / pathType: Prefix # v1版本必须指定路径类型,可选值:Prefix/Exact/ImplementationSpecific backend: service: name: prod-demo-service port: number: 8080
关键修改点
- 新增
pathType字段:v1版本Ingress强制要求指定路径匹配类型,根据业务需求选择Prefix(前缀匹配)、Exact(精确匹配)或ImplementationSpecific(由Ingress控制器决定) - 字段结构调整:把
serviceName改为service.name,servicePort改为service.port.number;如果使用端口名称,可替换为name: <自定义端口名>
重新应用配置
执行以下命令更新Ingress资源:
kubectl apply -f ingress.yaml -n prod
内容的提问来源于stack exchange,提问作者Satyam Pandey
相关产品推荐
相关产品推荐

