Kubernetes 1.22:达到新的高峰
我们很高兴地宣布 Kubernetes 1.22 发布,这是 2021 年的第二个版本!
此版本包含 53 项增强功能:13 项增强功能已升级为稳定版,24 项增强功能正在迁移到 Beta 版,16 项增强功能正在进入 Alpha 版。此外,还有三项功能已被弃用。
今年 4 月,Kubernetes 的发布节奏正式从每年四个版本改为三个版本。这是与该更改相关的第一个较长周期的版本。随着 Kubernetes 项目的成熟,每个周期中的增强功能数量不断增加。这意味着从一个版本到另一个版本,贡献者社区和发布工程团队的工作量会增加,并且可能会给最终用户社区带来压力,使其必须及时了解包含越来越多功能的新版本。
将发布节奏从每年四个版本更改为三个版本,可以平衡项目的许多方面,包括如何管理贡献和发布,以及社区规划升级和保持最新状态的能力。
您可以在官方博客文章 Kubernetes 发布节奏变更:你需要了解的内容 中阅读更多信息。
主要主题
服务器端应用升级为 GA
服务器端应用 是一种新的字段所有权和对象合并算法,在 Kubernetes API 服务器上运行。服务器端应用帮助用户和控制器通过声明式配置来管理他们的资源。它允许他们通过简单地发送完全指定的意图来声明式地创建和/或修改他们的对象。经过几个版本的 Beta 测试后,服务器端应用现已正式发布。
外部凭据提供程序现在稳定
自 1.11 版本以来,对 Kubernetes 客户端 凭据插件 的支持一直处于 Beta 版状态,随着 Kubernetes 1.22 版本的发布,现在已升级为稳定版。GA 功能集包括对提供交互式登录流程的插件的改进支持,以及一些错误修复。有抱负的插件作者可以查看 sample-exec-plugin 来入门。
etcd 升级到 3.5.0
Kubernetes 的默认后端存储 etcd 有了一个新版本:3.5.0。新版本在安全性、性能、监控和开发人员体验方面都有所改进。其中包含许多错误修复和一些关键的新功能,例如迁移到结构化日志记录和内置日志轮换。该版本还附带了详细的未来路线图,以实现解决流量过载的方案。您可以在 3.5.0 发布公告 中阅读完整的详细更改列表。
内存资源的质量服务
最初,Kubernetes 使用 v1 cgroups API。使用该设计,Pod
的 QoS 类仅适用于 CPU 资源(例如 cpu_shares
)。作为 Alpha 功能,Kubernetes v1.22 现在可以使用 cgroups v2 API 来控制内存分配和隔离。此功能旨在提高在内存资源争用时的 workload 和节点可用性,并提高容器生命周期的可预测性。
节点系统交换支持
关于设置和使用 Kubernetes,每个系统管理员或 Kubernetes 用户都处于相同的困境:禁用交换空间。随着 Kubernetes 1.22 版本的发布,可以使用交换内存运行节点的 Alpha 支持。此更改允许管理员选择在 Linux 节点上配置交换,将部分块存储视为额外的虚拟内存。
Windows 增强功能和功能
为了继续支持不断增长的开发人员社区,SIG Windows 发布了他们的 开发环境。这些新工具支持多个 CNI 提供程序,并且可以在多个平台上运行。还有一种从头开始运行 Windows 前沿功能的新方法,通过编译 Windows kubelet 和 kube-proxy,然后将它们与 Kubernetes 其他组件的每日构建一起使用。
对 Windows 节点的 CSI 支持在 1.22 版本中升级为 GA。在 Kubernetes v1.22 中,Windows 特权容器是一项 Alpha 功能。为了允许在 Windows 节点上使用 CSI 存储,CSIProxy 使 CSI 节点插件能够作为非特权 Pod 部署,使用代理在节点上执行特权存储操作。
seccomp 的默认配置文件
已向 kubelet 添加了默认 seccomp 配置文件的 Alpha 功能,以及一个新的命令行标志和配置。使用时,此新功能提供集群范围的 seccomp 默认值,默认情况下使用 RuntimeDefault
seccomp 配置文件而不是 Unconfined
。这增强了 Kubernetes 部署的默认安全性。安全管理员现在可以更加安心,因为工作负载默认情况下更安全。要了解有关此功能的更多信息,请参阅官方的 seccomp 教程。
使用 kubeadm 更加安全地控制平面
一个新的 Alpha 功能允许以非 root 用户身份运行 kubeadm
控制平面组件。这是 kubeadm
中长期要求的安全措施。要尝试它,必须启用 kubeadm
特定的 RootlessControlPlane 功能门。当您使用此 Alpha 功能部署集群时,您的控制平面将以较低的权限运行。
对于 kubeadm
,Kubernetes 1.22 还带来了新的 v1beta3 配置 API。此迭代添加了一些长期要求的功能,并弃用了一些现有功能。v1beta3 版本现在是首选的 API 版本;v1beta2 API 仍然可用,但尚未弃用。
重大更改
删除多个已弃用的 Beta API
1.22 中已删除许多已弃用的 Beta API,改为使用这些 API 的 GA 版本。所有现有对象都可以通过稳定的 API 进行交互。此删除包括 Ingress
、IngressClass
、Lease
、APIService
、ValidatingWebhookConfiguration
、MutatingWebhookConfiguration
、CustomResourceDefinition
、TokenReview
、SubjectAccessReview
和 CertificateSigningRequest
API 的 Beta 版本。
有关完整列表,请查看 已弃用 API 迁移指南 以及博客文章 Kubernetes 1.22 中的 API 和功能删除:您需要了解的内容。
临时容器的 API 更改和改进
用于创建 临时容器 的 API 在 1.22 中发生了更改。临时容器功能是 Alpha 版,默认禁用,新 API 不适用于尝试使用旧 API 的客户端。
对于稳定功能,kubectl 工具遵循 Kubernetes 版本偏差策略;但是,kubectl v1.21 及更早版本不支持临时容器的新 API。如果您计划使用 kubectl debug
创建临时容器,并且您的集群正在运行 Kubernetes v1.22,则您不能使用 kubectl v1.21 或更早版本执行此操作。如果您希望将 kubectl debug
与混合的集群版本一起使用,请将 kubectl 更新到 1.22。
其他更新
已升级为稳定版
值得注意的功能更新
- 引入了一个新的 PodSecurity 准入 Alpha 功能,旨在替代 PodSecurityPolicy
- 内存管理器 升级为 Beta 版
- 一个新的 Alpha 功能,用于启用 API 服务器跟踪
- 新版本的 kubeadm 配置 格式 v1beta3
- 用于 PersistentVolumes 的 通用数据填充器 现在在 Alpha 版中可用
- Kubernetes 控制平面现在将始终使用 CronJobs v2 控制器
- 作为 Alpha 功能,所有 Kubernetes 节点组件(包括 kubelet、kube-proxy 和容器运行时)都可以 以非 root 用户身份运行
发行说明
您可以在 发行说明 中查看 1.22 版本的完整详细信息。
版本可用性
Kubernetes 1.22 可在 下载页面 下载,也可在 GitHub 项目 上获取。
这里有一些很棒的资源可以帮助您开始使用 Kubernetes。您可以在 Kubernetes 主站点上查看一些 互动教程,或者使用 kind 在您的计算机上使用 Docker 容器运行本地集群。如果您想尝试从头开始构建集群,请查看 Kelsey Hightower 的 Kubernetes the Hard Way 教程。
发布团队
此版本的发布归功于一群非常敬业的人,他们组成一个团队,提供技术内容、文档、代码以及每个 Kubernetes 版本中包含的许多其他组件。
非常感谢发布负责人 Savitha Raghunathan 带领我们完成成功的发布周期,以及发布团队中的其他所有人相互支持,并为社区交付 1.22 版本而辛勤工作。
我们还想借此机会纪念 Peeyush Gupta,他是我们团队的成员,于今年早些时候去世。Peeyush 积极参与了 SIG ContribEx 和 Kubernetes 发布团队,最近担任 1.22 通信负责人。他的贡献和努力将继续反映在他帮助建立的社区中。已创建一个 CNCF 纪念页面,社区可以在此分享想法和回忆。
发布徽标
在持续的疫情、自然灾害和持续存在的倦怠阴影中,Kubernetes 1.22 版本包含了 53 项增强功能。这使其成为迄今为止最大的版本。这一成就只有归功于辛勤工作且充满热情的发布团队成员和 Kubernetes 生态系统中令人惊叹的贡献者。发布徽标是我们提醒自己不断追求新里程碑和创造新记录的方式。它献给所有发布团队成员、徒步旅行者和观星者!
该徽标由 Boris Zotkin 设计。Boris 是 MathWorks 的 Mac/Linux 管理员。他喜欢生活中简单的事情,并且喜欢与家人共度时光。这个精通技术的人总是乐于接受挑战,并乐于帮助朋友!
用户亮点
- 5 月,CNCF 欢迎全球 27 个新组织加入多元化的云原生生态系统。这些新 成员 将参加 CNCF 活动,包括即将于 2021 年 10 月 12 日至 15 日在洛杉矶举行的 KubeCon + CloudNativeCon NA。
- CNCF 在 KubeCon + CloudNativeCon EU – Virtual 2021 期间授予 Spotify 最高终端用户奖。
项目速度
生态系统更新
- 2021 年欧洲 KubeCon + CloudNativeCon 于 5 月举行,这是第三次以虚拟方式举办的活动。所有演讲的 点播视频 现在都已上线,供任何想要观看的人观看!
- 春季 LFX 项目 拥有最大的毕业班,共有 28 名 CNCF 实习生成功毕业!
- CNCF 在今年年初在 Twitch 上推出了直播,旨在为任何想要学习、成长并与世界各地云原生社区的其他人合作的人提供明确的互动媒体体验。
活动更新
- 2021 年北美 KubeCon + CloudNativeCon 将于 2021 年 10 月 12 日至 15 日在洛杉矶举行!您可以在活动网站上找到有关会议和注册的更多信息。
- Kubernetes 社区日 在意大利、英国和华盛顿特区都安排了即将举行的活动。
即将举行的发布网络研讨会
请于 2021 年 10 月 5 日加入 Kubernetes 1.22 发布团队成员,了解此版本的主要功能,以及弃用和删除的内容,以帮助您规划升级。有关更多信息和注册,请访问 CNCF 在线项目网站上的 活动页面。
参与进来
如果您有兴趣为 Kubernetes 社区做出贡献,特别兴趣小组 (SIG) 是一个很好的起点。他们中的许多人可能与您的兴趣相符!如果您有想与社区分享的内容,您可以参加每周的社区会议,或使用以下任何渠道
- 在 Kubernetes 贡献者 网站上了解有关为 Kubernetes 做出贡献的更多信息。
- 在 Twitter 上关注我们 @Kubernetesio,获取最新更新
- 加入 Discuss 上的社区讨论
- 加入 Slack 上的社区
- 分享您的 Kubernetes 故事
- 在 博客 上了解更多有关 Kubernetes 发生的事情。
- 了解更多关于 Kubernetes 发布团队 的信息。