## Kubernetes 1.26版本说明

从Kubernetes 1.25开始到1.26，官方废弃了很多api版本，建议您在升级之前，仔细检查集群中的API版本以及Master组件的配置，下面的清单供您参考。


### api弃用
   
#### Cronjob

在Kubernetes 1.25版本后，开始不再提供batch/v1beta1 API版本的CronJob（定时任务），但可以使用batch/v1 API版本，此API从Kubernetes 1.21版本开始可用。
  
#### EndpointSlice
    
在Kubernetes 1.25版本后，开始不再提供discovery.k8s.io/v1beta1 API版本的EndpointSlice（端点切片），但可以使用discovery.k8s.io/v1 API版本，此API从Kubernetes 1.21版本开始可用。

#### Event

在Kubernetes 1.25版本后，开始不再提供events.k8s.io/v1beta1 API版本的Event，但可以使用events.k8s.io/v1 API版本，此API从Kubernetes v1.19版本开始可用。

#### PodDisruptionBudget

在Kubernetes 1.25版本后，开始不再提供policy/v1beta1 API版本的PodDisruptionBudget（Pod中断预算），但可以使用policy/v1 API版本，此API从Kubernetes 1.21版本开始可用。

policy/v1中值得注意的变更是：在policy/v1版本的PodDisruptionBudget中将spec.selector设置为空（{}）时，会选择名字空间中的所有 Pods，即在policy/v1beta1版本中，空的spec.selector不会选择任何Pods。如果spec.selector未设置，则在两个API版本下都不会选择任何 Pods。

#### PodSecurityPolicy

在Kubernetes 1.25版本后，开始不再提供policy/v1beta1 API版本中的PodSecurityPolicy（Pod安全策略），并且PodSecurityPolicy准入控制器也会被删除，请将PodSecurityPolicy迁移到Pod Security Admission或第三方准入Webhook。

有关迁移指南的更多信息，请参见从PodSecurityPolicy迁移到内置PodSecurity准入控制器。 有关弃用的更多信息，请参见PodSecurityPolicy弃用：过去、现在和未来。

#### RuntimeClass

在Kubernetes 1.25版本后，开始不再提供node.k8s.io/v1beta1 API版本中的RuntimeClass（运行时类），但可以使用node.k8s.io/v1 API版本，此API从Kubernetes 1.20版本开始可用。

#### HorizontalPodAutoscaler

在Kubernetes 1.25版本后，开始不再提供autoscaling/v2beta1 API版本的HorizontalPodAutoscaler（Pod水平自动伸缩）。

在Kubernetes 1.26版本后，开始不再提供autoscaling/v2beta2 API版本的HorizontalPodAutoscaler，但可以使用autoscaling/v2 API版本， 此API从Kubernetes 1.23版本开始可用。

#### Flow control resources

在Kubernetes 1.26版本后，开始不再提供flowcontrol.apiserver.k8s.io/v1beta1 API版本的FlowSchema和PriorityLevelConfiguration，但此API从Kubernetes 1.23版本开始，可以使用flowcontrol.apiserver.k8s.io/v1beta2；从Kubernetes 1.26版本开始，可以使用flowcontrol.apiserver.k8s.io/v1beta3。
