目录
Please enable Javascript to view the contents

Kubernetes 弃用 API 迁移说明

 ·  ☕ 1 分钟

重要

Kubernetes 升级时 API 版本变更会导致已有 YAML 无法 kubectl apply。记录 v1.16 ~ v1.25 的主要 API 弃用变更,迁移时对照检查。

v1.16

资源旧 API新 API
NetworkPolicyextensions/v1beta1networking.k8s.io/v1
PodSecurityPolicyextensions/v1beta1policy/v1beta1
DaemonSetextensions/v1beta1, apps/v1beta2apps/v1
Deploymentextensions/v1beta1, apps/v1beta1/2apps/v1
StatefulSetapps/v1beta1, apps/v1beta2apps/v1
ReplicaSetextensions/v1beta1, apps/v1beta1/2apps/v1

DaemonSet / Deployment / StatefulSet 迁移要点:

  • spec.selector 变为必填项,创建后不可变
  • Deployment:spec.rollbackTo 被删除,spec.progressDeadlineSeconds 默认值变为 600s

v1.22

资源旧 API新 API
Ingressextensions/v1beta1networking.k8s.io/v1
IngressClassnetworking.k8s.io/v1beta1networking.k8s.io/v1
CRDapiextensions.k8s.io/v1beta1apiextensions.k8s.io/v1
Webhookadmissionregistration.k8s.io/v1beta1admissionregistration.k8s.io/v1
RBACrbac.authorization.k8s.io/v1beta1rbac.authorization.k8s.io/v1
CSIDriver / CSINodestorage.k8s.io/v1beta1storage.k8s.io/v1

Ingress v1 迁移要点(最常用):

旧字段新字段
spec.backendspec.defaultBackend
backend.serviceNamebackend.service.name
backend.servicePort (数字)backend.service.port.number
backend.servicePort (字符串)backend.service.port.name
pathType 变为必填(Prefix / Exact / ImplementationSpecific

CRD v1 迁移要点:

旧字段新字段
spec.versionspec.versions[]
spec.validationspec.versions[*].schema
spec.scope默认值 Namespaced 被移除,必须显式指定

v1.25

资源旧 API新 API
Eventevents.k8s.io/v1beta1events.k8s.io/v1
RuntimeClassnode.k8s.io/v1beta1node.k8s.io/v1
PodSecurityPolicy完全移除,迁移至 Pod Security Admission

参考

分享

Hex
作者
Hex
CloudNative Developer