最近更新时间:2023-10-31 20:00:29
本文介绍Kubernetes 1.23版本相对于1.21版本的变更特性。
生成了可信度证明文件,描述了发布过程的分阶段和发布阶段,并在每个阶段之间验证了工件。这项工作的完成使得Kubernetes符合SLSA安全框架(软件工件的供应链级别)的Level 1要求。
从1.21版本开始,默认启用Kubernetes集群支持双栈网络。在1.23版本中,移除了IPv6DualStack功能开关。
HorizontalPodAutoscaler API的v2版本在1.23版本中稳定发布。
该功能允许使用支持动态供应的任何现有存储驱动程序作为临时卷,并将卷的生命周期与Pod绑定。支持卷供应的所有StorageClass参数和PersistentVolumeClaims支持的所有功能都得到支持。
在1.23版本中,为Pod配置卷权限和所有权更改策略的功能已达到GA级别。这允许用户在挂载时跳过递归权限更改,加快Pod启动时间。
PodSecurity取代了弃用的PodSecurityPolicy入场控制器。PodSecurity是一个入场控制器,根据设置强制执行特定命名空间标签上的Pod安全标准,在1.23版本中,默认启用PodSecurity功能开关。
Kubelet现在支持CRI v1 API,并成为项目的默认选项。如果容器运行时不支持v1 API,Kubernetes将回退到v1alpha2实现。
kubelet和kube-scheduler的大多数日志消息已转换为结构化格式。鼓励用户尝试使用JSON输出或解析结构化文本格式,并就可能的解决方案提供反馈。
kube-scheduler正在添加一个新的、简化的配置字段,用于插件,以允许在一个地方启用多个扩展点。新的multiPoint插件字段旨在简化管理员的大多数调度器设置。
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功能引入。
现有的所有对象可以通过通用可用性API进行交互。这些被移除的API包括ValidatingWebhookConfiguration、MutatingWebhookConfiguration、CustomResourceDefinition、APIService、TokenReview、SubjectAccessReview、CertificateSigningRequest、Lease、Ingress和IngressClass的Beta版本API。详情可查看相关文档。
GA功能集包括对提供交互式登录流程的插件的改进支持,此版本还包含了一些功能集的错误修复。
Server-side Apply是一种在Kubernetes API服务器上运行的新的对象合并算法,同时还可以跟踪字段所有权。Server-side Apply通过声明性配置帮助用户和控制器管理资源,允许用户通过发送完全指定的意图来声明性地创建和/或修改对象。
该功能允许CSI驱动程序使用Pod绑定的服务账户令牌,而不是使用更高权限的身份。它还提供了重新发布这些卷的控制,以便可以刷新短期令牌。
一个新的Alpha功能允许将kubeadm控制平面组件以非root用户身份运行,这是kubeadm中长期要求的安全措施。要尝试此功能,您必须启用特定于kubeadm的RootlessControlPlane功能开关。使用此Alpha功能部署集群时,您的控制平面将以较低的权限运行。
Kubernetes的默认后端存储etcd发布了新版本3.5.0
Kubernetes节点系统对交换空间的支持。
随着Kubernetes 1.22的发布,现在可以通过Alpha支持来运行带有交换内存的节点。这个改变允许管理员选择在Linux节点上配置交换空间,将一部分块存储视为额外的虚拟内存。
kubelet中添加了一个新的Alpha功能开关SeccompDefault,以及相应的命令行标志–seccomp-default和kubelet配置。有关该功能的更多信息,请参阅官方的seccomp教程。
Kubernetes v1.22可以使用cgroups v2 API的Alpha版本来控制内存分配和隔离,该功能旨在在内存资源争用时改善工作负载和节点的可用性。
对临时容器(Ephemeral Containers)的API变更和改进。
在1.22中,用于创建临时容器的API发生了变化。临时容器功能目前是Alpha状态,并且默认情况下处于禁用状态,新的API无法与尝试使用旧API的客户端一起使用。
networking.k8s.io/v1beta1
和extensions/v1beta1
API。如果使用旧版本API管理Ingress,会影响应用对外暴露服务,请尽快使用networking.k8s.io/v1替代。apiextensions.k8s.io/v1beta1
API。如果使用旧版本API创建自定义资源定义,会导致定义创建失败,进而影响调和(reconcile)该自定资源的控制器,请尽快使用apiextensions.k8s.io/v1
替代rbac.authorization.k8s.io/v1beta1
API。如果使用旧版本API管理RBAC资源,会影响应用的权限服务,甚至无法在集群内正常使用,请尽快使用rbac.authorization.k8s.io/v1替代。详情请参考:
纯净模式