Kubernetes 1.21:社区的力量
我们很高兴宣布发布 Kubernetes 1.21,这是我们 2021 年的第一个版本!此版本包含 51 项增强功能:13 项增强功能已升级到 stable(稳定)阶段,16 项增强功能正在进入 beta(测试)阶段,20 项增强功能正在进入 alpha(实验)阶段,另有 2 项功能已被弃用。
在这个发布周期中,我们看到发布团队周围的流程所有权发生了重大转变。我们从定期向社区征求意见的同步沟通模式,转变为社区选择参与贡献功能和/或博客的模式。这些变化促进了整个社区的协作和团队合作。所有这些努力的结果体现在 Kubernetes 1.21 拥有近期版本中最多的功能。
主要主题
CronJobs 升级到 Stable 阶段!
CronJobs(以前称为 ScheduledJobs)自 Kubernetes 1.8 以来一直是 Beta 功能!通过 1.21 版本,我们终于看到这个广泛使用的 API 升级到 Stable 阶段。
CronJobs 用于执行定期的计划任务,例如备份、报告生成等。每个任务都应配置为无限期重复(例如:每天/每周/每月一次);您可以定义该间隔内任务应开始的时间点。
不可变 Secrets 和 ConfigMaps
不可变 Secrets 和 ConfigMaps 为这些资源类型添加了一个新字段,如果设置了该字段,将拒绝更改这些对象。Secrets 和 ConfigMaps 默认是可变的,这对于能够消费变更的 Pod 来说是有益的。如果为使用它们的 Pod 推送了错误的配置,修改 Secrets 和 ConfigMaps 也可能导致问题。
通过将 Secrets 和 ConfigMaps 标记为不可变,您可以确保应用程序配置不会改变。如果您想进行更改,需要创建一个新的、命名独特的 Secret 或 ConfigMap,并部署一个新的 Pod 来使用该资源。不可变资源还具有扩展优势,因为控制器无需轮询 API 服务器来监视更改。
此功能已在 Kubernetes 1.21 中升级到 Stable 阶段。
IPv4/IPv6 双栈支持
IP 地址是集群操作员和管理员需要确保不会耗尽的可消耗资源。特别是,公共 IPv4 地址现在变得稀缺。支持双栈可以为 Pod 和 Services 提供原生的 IPv6 路由,同时仍然允许集群在需要时使用 IPv4 进行通信。双栈集群网络还改进了工作负载可能面临的扩展限制。
Kubernetes 中的双栈支持意味着 Pod、Services 和节点可以获取 IPv4 地址和 IPv6 地址。在 Kubernetes 1.21 中,双栈网络已从 Alpha 升级到 Beta,并且现在默认启用。
优雅节点关机
优雅节点关机也在此版本中升级到 Beta 阶段(并且现在将可供更多用户使用)!这是一个非常有益的功能,它允许 kubelet 感知节点关机,并优雅地终止调度到该节点的 Pod。
目前,当节点关机时,Pod 不会遵循预期的终止生命周期,也不会优雅地关机。这可能会给许多不同的工作负载带来问题。今后,kubelet 将能够通过 systemd 检测到即将到来的系统关机,然后通知正在运行的 Pod,以便它们能够尽可能优雅地终止。
PersistentVolume 健康监视器
Persistent Volumes (PV) 通常用于应用程序,以获取本地、基于文件的存储。它们可以通过许多不同的方式使用,并帮助用户迁移应用程序而无需重写存储后端。
Kubernetes 1.21 有一个新推出的 Alpha 功能,允许监视 PV 的卷健康状况,并在卷变得不健康时相应地进行标记。工作负载将能够对健康状态做出反应,以保护数据免于写入或读取不健康的卷。
减少 Kubernetes 构建维护
以前,Kubernetes 维护着多个构建系统。这常常是新贡献者和现有贡献者的摩擦和复杂性来源。
在上一个发布周期中,投入了大量工作来简化构建流程,并标准化使用原生的 Golang 构建工具。这应该会增强更广泛社区的维护能力,并降低新贡献者的入门门槛。
主要变更
PodSecurityPolicy 弃用
在 Kubernetes 1.21 中,PodSecurityPolicy 已被弃用。与所有 Kubernetes 功能弃用一样,PodSecurityPolicy 将在接下来的几个版本中仍然可用并完全正常工作。PodSecurityPolicy 之前处于 Beta 阶段,计划在 Kubernetes 1.25 中移除。
下一步是什么?我们正在开发一个新的内置机制来帮助限制 Pod 权限,暂定名称为“PSP Replacement Policy”。我们的计划是让这个新机制涵盖 PodSecurityPolicy 的关键用例,并大大改进人体工程学和可维护性。要了解更多信息,请阅读PodSecurityPolicy 弃用:过去、现在和未来。
TopologyKeys 弃用
Service 的字段 topologyKeys
现在已被弃用;所有使用此字段的组件功能以前都是 Alpha 阶段,现在也已被弃用。我们用一种实现拓扑感知路由的方式取代了 topologyKeys
,称为 topology-aware hints。Topology-aware hints 是 Kubernetes 1.21 中的一个 Alpha 功能。您可以在Topology Aware Hints 中阅读有关此替代功能的更多详细信息;相关的KEP 解释了我们切换的原因和背景。
其他更新
升级到 Stable 阶段
值得关注的功能更新
- 外部 client-go 凭据提供程序 - 在 1.21 中进入 Beta 阶段
- 结构化日志记录 - 在 1.22 中升级到 Beta 阶段
- Jobs 和 Pods 完成后的 TTL 清理 - 已升级到 Beta 阶段
发布说明
您可以在发布说明中查看 1.21 版本的完整详细信息。
版本可用性
Kubernetes 1.21 可从 GitHub 下载。有一些很棒的资源可以帮助您开始使用 Kubernetes。您可以在 Kubernetes 主网站上查看一些交互式教程,或者使用 kind 通过 Docker 容器在您的机器上运行本地集群。如果您想尝试从头开始构建集群,请查看 Kelsey Hightower 编写的Kubernetes the Hard Way 教程。
发布团队
这个版本的发布得益于一群非常敬业的个人,他们在世界发生许多事情之际组成了一个团队。非常感谢发布负责人 Nabarun Pal,以及发布团队中的所有成员,感谢大家互相支持,并为社区交付 1.21 版本付出了辛勤努力。
发布徽标
Kubernetes 1.21 发布徽标描绘了发布团队的全球性,团队成员的时区范围从 UTC+8 到 UTC-8。发布团队的多样性带来了许多挑战,但团队通过采用更多的异步沟通实践克服了这些挑战。发布徽标中的七边形地球象征着社区克服挑战的坚定决心。它庆祝了发布团队在过去 3 个月中为带来充满乐趣的 Kubernetes 版本所做的出色团队合作!
该徽标由Aravind Sekar 设计,他是一位来自印度的独立设计师。Aravind 帮助 PyCon India 等开源社区进行设计工作。
用户亮点
- CNCF 欢迎全球 47 个新组织成为成员,在 2021 年伊始进一步推动云原生技术!这些新成员将参加 CNCF 即将举办的 2021 年 KubeCon + CloudNativeCon 活动,包括 2021 年 5 月 4 日至 7 日的欧洲 KubeCon + CloudNativeCom 虚拟大会,以及 2021 年 10 月 12 日至 15 日在洛杉矶举办的北美 KubeCon + CloudNativeCon 大会。
项目速度
CNCF K8s DevStats 项目汇集了许多与 Kubernetes 及各种子项目发展速度相关的有趣数据点。这包括从个人贡献到贡献公司的数量等方方面面,清晰地展示了推动这个生态系统发展所需的努力的深度和广度。
在 v1.21 发布周期(持续 12 周,从 1 月 11 日到 4 月 8 日)中,我们看到了来自999 家公司和1279 名个人的贡献。
生态系统更新
- 针对全球亚裔社区日益增长的种族主义和袭击事件,请阅读 CNCF 总经理 Priyanka Sharma 在CNCF 博客上的声明,重申社区对包容性价值观和多样性驱动韧性的承诺。
- 我们现在已经制定了将默认分支从 master 迁移到 main 的流程。在此处了解更多关于指南的信息。
- CNCF 和 Linux Foundation 宣布推出了新的培训课程,LFS260 – Kubernetes 安全要点。除了提供关于保护基于容器的应用程序和 Kubernetes 平台的广泛最佳实践的技能和知识外,该课程也是准备最近发布的认证 Kubernetes 安全专家认证考试的好方法。
活动更新
- 2021 年欧洲 KubeCon + CloudNativeCon 将于 2021 年 5 月 4 日至 7 日举行!您可以在此处找到有关会议的更多信息。
- Kubernetes Community Days 正在重新启动!2021 年第二季度将从非洲和班加罗尔开始。
即将到来的发布网络研讨会
邀请您参加 2021 年 5 月 13 日的 Kubernetes 1.21 发布团队成员网络研讨会,了解此版本中的主要功能,包括 IPv4/IPv6 双栈支持、PersistentVolume 健康监视器、不可变 Secrets 和 ConfigMaps 等。在此注册:https://community.cncf.io/events/details/cncf-cncf-online-programs-presents-cncf-live-webinar-kubernetes-121-release/
参与其中
如果您有兴趣为 Kubernetes 社区做贡献,特别兴趣小组 (SIG) 是一个很好的起点。其中许多可能与您的兴趣相符!如果您想与社区分享一些内容,可以参加每周社区会议,或使用以下任何渠道:
- 在Kubernetes 贡献者网站了解更多关于贡献 Kubernetes 的信息
- 在 Twitter @Kubernetesio 关注我们获取最新动态
- 在Discuss 加入社区讨论
- 在Slack 加入社区
- 分享您的 Kubernetes 故事
- 在博客上阅读更多关于 Kubernetes 的最新动态
- 了解更多关于Kubernetes 发布团队的信息