暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Kubernetes 1.23 – 有什么新鲜事?

云原生CTO 2021-12-11
444

CTO

 
 

 
 


 

Go
Rust
Python
Istio
containerd
CoreDNS
Envoy
etcd
Fluentd
Harbor
Helm
Jaeger
Kubernetes
Open Policy Agent
Prometheus
Rook
TiKV
TUF
Vitess
Argo
Buildpacks
CloudEvents
CNI
Contour
Cortex
CRI-O
Falco
Flux
gRPC
KubeEdge
Linkerd
NATS
Notary
OpenTracing
Operator Framework
SPIFFE
SPIRE
  Thanos




Kubernetes 1.23 – 有什么新鲜事?

令人期待的Kubernetes
1.23
版本于 12
7
日正式发布。这也是 2021
年的最终版本。

而在1.23
版本当中有大量的改进。此版本包含 47
项增强功能:11
项增强功能已升级到稳定版,17
项增强功能正在进入测试版,19
项增强功能正在进入 Alpha
版。此外,1
个功能已被弃用。

您也可以从官方博客文章和变更日志中获得更多详细信息。

下面找到此处链接🔗

官方博客文章: https://kubernetes.io/blog/2021/12/07/kubernetes-1-23-release-announcement/

官方变更日志中: https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.23.md

发布主题和标志

来看看“The Next Frontier”
主题,此主题代表了 1.23
中新的和渐进的增强、Kubernetes
的星际迷航将代表参考发布版本的历史,以及发布团队中社区成员的成长的含义。

Kubernetes
有着星际迷航参考的历史。谷歌内部 Kubernetes
的原始代号是 Project 7
,参考了《星际迷航航海者》中的七之七。当然,Borg
Kubernetes
前身的名称。“下一个边疆”主题延续了《星际迷航》的参考资料。“The Next Frontier”
是《星际迷航5:最终前沿》和《星际迷航下一代》两个《星际迷航》游戏的融合。

“下一个前沿”代表了 SIG
发布章程中的一条线,“确保有一个一致的社区成员小组来支持跨时间的发布过程。” 对于每个发布团队,我们都会与新的发布团队成员一起发展社区,对于许多人来说,这是他们在开源领域的第一个贡献。

主要主题

弃用 FlexVolume

FlexVolume
已弃用。树外 CSI
驱动程序是在 Kubernetes
中编写卷驱动程序的推荐方式。有关更多信息,请参阅此文档。

https://github.com/kubernetes/community/blob/master/sig-storage/volume-plugin-faq.md#kubernetes-volume-plugin-faq-for-storage-vendors

FlexVolume
驱动程序的维护者应该实现 CSI
驱动程序并将 FlexVolume
的用户转移到 CSI
FlexVolume
的用户应该将他们的工作负载转移到 CSI
驱动程序。

弃用 klog 特定标志

为了简化代码库,Kubernetes 1.23
中将几个日志标志标记为已弃用。实现它们的代码将在未来的版本中删除,因此那些用户需要开始用一些替代解决方案替换已弃用的标志。

日志标志标记为已弃用: https://kubernetes.io/docs/concepts/cluster-administration/system-logs/#klog

Kubernetes
发布过程中的软件供应链 SLSA 1
级合规性

SLSA 1: https://slsa.dev/

Kubernetes
版本现在生成出处证明文件,描述发布过程的暂存和发布阶段。现在,工件在从一个阶段移交到下一个阶段时会得到验证。最后一部分完成了遵守SLSA 1
安全框架级别  (软件工件的供应链级别)所需的工作。

IPv4/IPv6 双栈网络毕业生到 GA

IPv4/IPv6
双栈网络毕业到 GA
。从 1.21
开始,Kubernetes
集群默认支持双栈组网。在 1.23
中,IPv6DualStack
移除了特征门。

IPv4/IPv6
双栈网络: https://github.com/kubernetes/enhancements/tree/master/keps/sig-network/563-dual-stack

双栈网络的使用不是强制性的。尽管启用了集群以支持双栈网络,但 Pod
和服务仍然默认为单栈。要使用双栈网络,Kubernetes
节点必须具有可路由的 IPv4/IPv6
网络接口,必须使用支持双栈的 CNI
网络插件,必须将 Pod
配置为双栈,并且服务必须将其.spec.ipFamilyPolicy
字段设置为PreferDualStack
RequireDualStack

HorizontalPodAutoscaler v2 升级到 GA

HorizontalPodAutscalerautoscaling/v2
稳定 API
1.23
中移至 GA
HorizontalPodAutoscaler autoscaling/v2beta2API
已被弃用。

通用临时卷功能毕业到 GA

通用临时卷功能在 1.23
中移至 GA
。此功能允许将支持动态配置的任何现有存储驱动程序用作临时卷,并将卷的生命周期绑定到 Pod
。支持卷配置的所有 StorageClass
参数和 PersistentVolumeClaims
支持的所有功能。

跳过批量所有权更改毕业生到 GA

Pod
配置卷权限和所有权更改策略的功能在 1.23
中移至 GA
。这允许用户跳过挂载时的递归权限更改并加快 pod
启动时间。

允许 CSI
选择加入批量所有权和许可更改毕业生到 GA
允许 CSI
驱动程序声明支持基于 fsGroup
的权限的功能在 1.23
中毕业到 GA

PodSecurity 升级到 Beta

PodSecurity
进入 Beta
版。PodSecurity
替换已弃用的PodSecurityPolicy
准入控制器。PodSecurity
是一个准入控制器,它根据设置实施级别的特定命名空间标签对命名空间中的 Pod
实施 Pod
安全标准。在 1.23
中,PodSecurity
特征门是默认启用的。

容器运行时接口 (CRI) v1 是默认值

Kubelet
现在支持 CRI
v1API
,它现在是项目范围的默认值。如果容器运行时不支持v1API
Kubernetes
将回退到v1alpha2
实现。有最终用户不需要任何中间的动作,因为v1
v1alpha2
在执行没有什么不同。很可能v1alpha2
会在未来的 Kubernetes
版本之一中删除,以便能够开发v1
.

结构化日志升级到 Beta

结构化日志达到了 Beta
里程碑。来自 kubelet
kube-scheduler
的大多数日志消息已被转换。鼓励用户尝试 JSON
输出或结构化文本格式的解析,并提供有关未解决问题的可能解决方案的反馈,例如处理日志值中的多行字符串。

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

kube-scheduler
正在为插件添加一个新的、简化的配置字段,以允许在一个位置启用多个扩展点。新的multiPoint
插件字段旨在为管理员简化大多数调度程序设置。通过启用的插件multiPoint
将自动为它们实现的每个单独的扩展点注册。例如,可以同时为两者启用实现 Score
Filter
扩展的插件。这意味着可以启用和禁用整个插件,而无需手动编辑单个扩展点设置。这些扩展点现在可以抽象掉,因为它们对大多数用户来说无关紧要。

CSI 迁移更新

CSI
迁移支持替换现有的树内存储插件,例如kubernetes.io/gce-pd
kubernetes.io/aws-ebs
使用相应的 CSI
驱动程序。如果 CSI Migration
工作正常,Kubernetes
最终用户应该不会注意到差异。迁移后,Kubernetes
用户可能会继续依赖使用现有接口的 in-tree
存储插件的所有功能。

  • CSI
    迁移功能默认开启,但在 1.23
    中仍处于 GCE PD、AWS EBS
    Azure
    磁盘的 Beta
    版。
  • CSI
    迁移是在 1.23
    中作为 Ceph RBD
    Portworx
    Alpha
    功能引入的。
CRD
的表达式语言验证是 alpha

1.23
开始,CRD
的表达式语言验证处于 alpha
阶段。如果CustomResourceValidationExpressions
启用了功能门,自定义资源将通过使用通用表达式语言 (CEL
) 的验证规则进行验证。

通用表达式语言CEL
: https://github.com/google/cel-spec

服务器端字段验证是 Alpha

如果ServerSideFieldValidation
1.23
开始启用功能门,当用户在请求中发送包含未知或重复字段的 Kubernetes
对象时,用户将收到来自服务器的警告。以前未知的字段和除最后一个重复字段之外的所有字段都将被服务器删除。

启用功能门后,我们还引入了fieldValidation
查询参数,以便用户可以在每个请求的基础上指定服务器的所需行为。fieldValidation
查询参数的有效值为:

  • 忽略(禁用特征门时的默认值,与删除/忽略未知字段的 1.23 之前的行为相同)
  • 警告(启用功能门时的默认设置)。
  • 严格(这将使请求失败并出现无效请求错误)
OpenAPI v3 是 Alpha

如果OpenAPIV3
1.23
开始启用特性门,用户将能够为所有 Kubernetes
类型请求 OpenAPI v3.0
规范。OpenAPI v3
旨在完全透明,并支持在发布 OpenAPI v2
时删除的一组字段:default
, nullable
,oneOf
, anyOf
。每个Kubernetes
组版本(在$cluster/openapi/v3/apis/<group>/<version>
端点)发布单独的规范以提高性能和发现,所有组版本都可以在$cluster/openapi/v3
路径中找到。

其他更新
  • 毕业稳定
  • IPv4/IPv6 双栈支持
  • 跳过卷所有权更改
  • 完成控制器后的TTL
  • 在 CSI 驱动程序对象中配置 FSGroup 策略
  • 通用临时内联卷
  • 通过静态分析防御记录秘密
  • 命名空间范围的入口类参数
  • 减少 Kubernetes 构建维护
  • 从 HPA API 到 GA
主要变化
  • API 服务器请求的优先级和公平性
发行说明

在我们的发行说明中查看 Kubernetes 1.23
版本的完整详细信息。

可用性

Kubernetes 1.23
可在GitHub
上下载。要开始使用 Kubernetes
,请查看这些交互式教程或使用 Docker
容器“节点”和kind
运行本地 Kubernetes
集群。您还可以使用kubeadm
轻松安装 1.23

发布团队

这个版本是由一群非常敬业的人促成的,他们作为一个团队聚集在一起,交付技术内容、文档、代码以及每个 Kubernetes
版本中的许多其他组件。

非常感谢发布负责人 Rey Lejano
带领我们完成了一个成功的发布周期,也感谢发布团队中的其他人相互支持,并努力为社区提供 1.23
版本。

参考地址[1]

参考资料

[1]

参考地址: https://kubernetes.io/blog/2021/12/07/kubernetes-1-23-release-announcement/#horizontalpodautoscaler-v2-graduates-to-ga


文章转载自云原生CTO,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论