全部文档
当前文档

暂无内容

如果没有找到您期望的内容,请尝试其他搜索词

文档中心

Kubernetes 1.23版本说明

最近更新时间:2023-10-31 20:00:29

本文介绍Kubernetes 1.23版本相对于1.21版本的变更特性。

主要特性

Kubernetes 1.23版本

  • 引入了软件供应链SLSA Level 1合规性

生成了可信度证明文件,描述了发布过程的分阶段和发布阶段,并在每个阶段之间验证了工件。这项工作的完成使得Kubernetes符合SLSA安全框架(软件工件的供应链级别)的Level 1要求。

  • IPv4/IPv6双栈网络支持升级为GA级别。

从1.21版本开始,默认启用Kubernetes集群支持双栈网络。在1.23版本中,移除了IPv6DualStack功能开关。

  • HorizontalPodAutoscaler v2升级为GA级别

HorizontalPodAutoscaler API的v2版本在1.23版本中稳定发布。

  • 通用临时卷(Generic Ephemeral Volume)功能升级为GA级别。

该功能允许使用支持动态供应的任何现有存储驱动程序作为临时卷,并将卷的生命周期与Pod绑定。支持卷供应的所有StorageClass参数和PersistentVolumeClaims支持的所有功能都得到支持。

  • 跳过卷所有权更改(Skip Volume Ownership change)功能升级为GA级别。

在1.23版本中,为Pod配置卷权限和所有权更改策略的功能已达到GA级别。这允许用户在挂载时跳过递归权限更改,加快Pod启动时间。

  • 允许CSI驱动程序选择加入基于fsGroup的卷所有权和权限更改功能升级为GA级别。
  • PodSecurity升级为Beta级别。

PodSecurity取代了弃用的PodSecurityPolicy入场控制器。PodSecurity是一个入场控制器,根据设置强制执行特定命名空间标签上的Pod安全标准,在1.23版本中,默认启用PodSecurity功能开关。

  • 容器运行时接口(CRI)v1成为默认选项。

Kubelet现在支持CRI v1 API,并成为项目的默认选项。如果容器运行时不支持v1 API,Kubernetes将回退到v1alpha2实现。

  • 结构化日志记录升级为Beta级别。

kubelet和kube-scheduler的大多数日志消息已转换为结构化格式。鼓励用户尝试使用JSON输出或解析结构化文本格式,并就可能的解决方案提供反馈。

  • 简化调度器的多点插件配置。

kube-scheduler正在添加一个新的、简化的配置字段,用于插件,以允许在一个地方启用多个扩展点。新的multiPoint插件字段旨在简化管理员的大多数调度器设置。

  • CSI迁移更新。

CSI迁移允许将现有的in-tree存储插件(如kubernetes.io/gce-pd或kubernetes.io/aws-ebs)替换为相应的CSI驱动程序。如果CSI迁移正常工作,Kubernetes终端用户不应该注意到任何差异。迁移后,Kubernetes用户可以继续依赖现有界面的所有in-tree存储插件功能。

- GCE PD、AWS EBS和Azure Disk在1.23版本中默认启用CSI迁移,但仍处于Beta级别。

- Ceph RBD和Portworx在1.23版本中作为Alpha功能引入。

Kubernetes 1.22版本

  • 在Kubernetes v1.22中,为了支持GA版本的API,一些API不再提供特定的Beta版本。

现有的所有对象可以通过通用可用性API进行交互。这些被移除的API包括ValidatingWebhookConfiguration、MutatingWebhookConfiguration、CustomResourceDefinition、APIService、TokenReview、SubjectAccessReview、CertificateSigningRequest、Lease、Ingress和IngressClass的Beta版本API。详情可查看相关文档

  • Kubernetes客户端凭证插件已升级至稳定版本。

GA功能集包括对提供交互式登录流程的插件的改进支持,此版本还包含了一些功能集的错误修复。

  • Server-side Apply功能升级为GA

Server-side Apply是一种在Kubernetes API服务器上运行的新的对象合并算法,同时还可以跟踪字段所有权。Server-side Apply通过声明性配置帮助用户和控制器管理资源,允许用户通过发送完全指定的意图来声明性地创建和/或修改对象。

  • CSI服务账户令牌支持升级为GA

该功能允许CSI驱动程序使用Pod绑定的服务账户令牌,而不是使用更高权限的身份。它还提供了重新发布这些卷的控制,以便可以刷新短期令牌。

  • 通过kubeadm部署更安全的控制平面。

一个新的Alpha功能允许将kubeadm控制平面组件以非root用户身份运行,这是kubeadm中长期要求的安全措施。要尝试此功能,您必须启用特定于kubeadm的RootlessControlPlane功能开关。使用此Alpha功能部署集群时,您的控制平面将以较低的权限运行。

  • Kubernetes的默认后端存储etcd发布了新版本3.5.0

  • Kubernetes节点系统对交换空间的支持。

随着Kubernetes 1.22的发布,现在可以通过Alpha支持来运行带有交换内存的节点。这个改变允许管理员选择在Linux节点上配置交换空间,将一部分块存储视为额外的虚拟内存。

  • 集群范围的seccomp默认设置。

kubelet中添加了一个新的Alpha功能开关SeccompDefault,以及相应的命令行标志–seccomp-default和kubelet配置。有关该功能的更多信息,请参阅官方的seccomp教程

  • Kubernetes v1.22可以使用cgroups v2 API的Alpha版本来控制内存分配和隔离,该功能旨在在内存资源争用时改善工作负载和节点的可用性。

  • 对临时容器(Ephemeral Containers)的API变更和改进。

在1.22中,用于创建临时容器的API发生了变化。临时容器功能目前是Alpha状态,并且默认情况下处于禁用状态,新的API无法与尝试使用旧API的客户端一起使用。

弃用与移除

Kubernetes 1.23版本

  • FlexVolume废弃,建议使用CSI。
  • HorizontalPodAutoscaler v2版本GA,HorizontalPodAutoscaler API v2在1.23版本中逐渐稳定。不建议使用HorizontalPodAutoscaler v2beta2 API,建议使用新的v2版本API。
  • PodSecurity支持beta,PodSecurity替代废弃的PodSecurityPolicy,PodSecurity是一个准入控制器,它根据设置实施级别的特定命名空间标签在命名空间中的Pod上实施Pod安全标准。在1.23中PodSecurity默认启用。

Kubernetes 1.22版本

  • Ingress资源不再支持networking.k8s.io/v1beta1extensions/v1beta1 API。如果使用旧版本API管理Ingress,会影响应用对外暴露服务,请尽快使用networking.k8s.io/v1替代。
  • CustomResourceDefinition资源不再支持apiextensions.k8s.io/v1beta1 API。如果使用旧版本API创建自定义资源定义,会导致定义创建失败,进而影响调和(reconcile)该自定资源的控制器,请尽快使用apiextensions.k8s.io/v1替代
  • ClusterRole、ClusterRoleBinding、Role和RoleBinding资源不再支持rbac.authorization.k8s.io/v1beta1 API。如果使用旧版本API管理RBAC资源,会影响应用的权限服务,甚至无法在集群内正常使用,请尽快使用rbac.authorization.k8s.io/v1替代。
  • Kubernetes版本发布周期由一年4个版本变为一年3个版本。
  • StatefulSets 支持minReadySeconds。
  • 缩容时默认根据Pod uid排序随机选择删除Pod(LogarithmicScaleDown)。基于该特性,可以增强Pod被缩容的随机性,缓解由于Pod拓扑分布约束带来的问题。
  • BoundServiceAccountTokenVolume特性已稳定,该特性能够提升服务帐号(ServiceAccount)Token的安全性,改变了Pod挂载Token的方式,Kubernetes 1.21及以上版本的集群中会默认开启。

参考链接

详情请参考:

文档导读
纯净模式常规模式

纯净模式

点击可全屏预览文档内容
文档反馈