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

Kubernetes集群升级至1.22版本时Ingress资源更新方法问询

K8s集群升级至1.22版本的Ingress资源适配方案

第一步:升级前存量Ingress资源扫描与备份

  • 先扫描所有命名空间下的旧API Ingress资源,执行命令:kubectl get ingress -A -o jsonpath='{range .items[?(@.apiVersion=="extensions/v1beta1")]}{.metadata.namespace}{"/"}{.metadata.name}{"\n"}{end}'
  • 全量备份现有Ingress资源:kubectl get ingress -A -o yaml > ingress-all-backup.yaml,备份文件本地留存,避免适配出错时回滚使用。

第二步:旧API Ingress资源字段适配

extensions/v1beta1 转 networking.k8s.io/v1 核心需要修改几个字段:

  • apiVersion从extensions/v1beta1替换为networking.k8s.io/v1
  • 原backend字段拆分为defaultBackend(全局默认后端)和rules[].http.paths[].backend(路径匹配后端)
  • 路径字段必须指定pathType,可选值为Prefix/Exact/ImplementationSpecific
  • 原serviceName/servicePort字段替换为service.name + service.port.number(或service.port.name)结构
  • 存量资源较多的场景可以用kubectl convert命令批量自动转换配置,转换完成后人工核对关键字段(路径、后端服务、pathType)即可,提高适配效率。

适配前后的参考示例:

旧版本extensions/v1beta1配置示例:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: test-ingress
spec:
  backend:
    serviceName: test-svc
    servicePort: 80
  rules:
  - host: test.example.com
    http:
      paths:
      - path: /test
        backend:
          serviceName: test-svc
          servicePort: 80

适配后networking.k8s.io/v1配置示例:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: test-ingress
spec:
  defaultBackend:
    service:
      name: test-svc
      port:
        number: 80
  rules:
  - host: test.example.com
    http:
      paths:
      - path: /test
        pathType: Prefix
        backend:
          service:
            name: test-svc
            port:
              number: 80

第三步:分集群版本执行适配操作

针对1.19版本集群

K8s 1.19已经原生支持networking.k8s.io/v1版本Ingress,可在集群升级前直接替换所有存量Ingress的配置:

  • 批量修改后直接apply到集群,新旧API版本的Ingress在1.19集群中可以同时生效,不会影响业务访问
  • 适配完成后验证所有Ingress规则是否正常,后端服务访问无异常后再执行集群升1.22的操作

针对1.16版本集群

K8s 1.16对networking.k8s.io/v1的支持不完善,建议先把集群升级到1.19版本,再按上述1.19集群的适配步骤处理Ingress资源,最后再升级到1.22版本,避免跨大版本升级导致Ingress规则失效。

第四步:升级后验证

集群升级到1.22版本后,执行以下检查:

  • 执行kubectl get ingress -A确认所有Ingress资源状态正常,没有报错
  • 逐条验证业务域名的访问路径是否符合预期,没有404或转发到错误后端的情况
  • 清理残留的旧版本配置文件和临时文件,避免后续误操作

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 09:27:04