简介
2 分钟 阅读时间
KLTS 全称为 Kubernetes Long Term Support,主要使命是为 Kubernetes 早期版本提供长期免费的维护支持。
之所以需要维护早期版本,是因为在实际生产环境中,最新版本不一定是最好的,也不是最稳定的。正常而言,Kubernetes 社区版本的维护周期只有一年左右,请参阅 Kubernetes 版本发行周期。在社区停止维护后,KLTS 在接下来的三年内提供免费维护服务。
在实际生产中,为什么大多数企业选择采用早期的 Kubernetes 版本管控集群呢?
-
首先,升级频率高会带来变更风险,每次升级必须进行充分验证。特别是金融行业的平台层变更周期通常比较长,因为一旦升级后的新版本存在 bug,就需要被迫回滚或快速响应升级至更新的版本,这样会造成不必要的成本支出。
-
其次,Kubernetes 升级后部分功能的替代方案还没有完全生产就绪,在生产环境中常会出现不兼容的状况。
-
最后,Kubernetes 社区仅支持小版本 +1 升级,不支持跨版本升级,因为跨版本升级经常会出现一些不可控的因素,造成更大的生产问题。
所以大多数企业的选择是沿用早期版本,不会贸然升级。但 Kubernetes 社区只维护最新的 3 到 4 个版本,如何才能保证这些早期版本免受社区不定时发现的 CVE 漏洞和 bug 的袭扰呢?这就是 KLTS 的价值所在!我们对早期版本提供长达 3 年的免费维护支持,积极修复早期版本的 CVE 安全漏洞和重大 bug。
KLTS 维护周期
Kubernetes 版本号表示为 x.y.z,其中 x 是大版本号,y 是小版本号,z 是补丁版本,KLTS 提供的补丁版本号通常以 lts1、lts2 … ltsn 表示。为了方便表述,本节用前两位 x.y 描述 Kubernetes 版本号。
假设社区发布的最新 Kubernetes 版本为 x.y,根据社区版本维护声明,社区仅维护最近的三个版本,而 KLTS 目前维护从 1.10 起的近十个早期版本,如下图所示。
当 Kubernetes 社区发现可能影响生产的 CVE 新漏洞或 bug,受到影响的可能不止是社区正在维护的版本,还有之前已经停止维护、但企业仍在使用、且不能贸然升级的版本,KLTS 团队维护的正是这些社区放弃维护的版本。目前 KLTS 的版本维护周期如下:
从上图可看出,Kubernetes 社区对某个版本的维护周期通常在一年左右,而 KLTS 可以在接下来的三年内提供长期维护,直至代码无法兼容,才会将相应版本淘汰。
KLTS 修复范围
有些高优先级的 CVE 或严重 Bug 存在于生产环境中会造成较大的安全隐患。CVE 安全问题是集群的生命线,KLTS 会优先修复中高级别的 CVE,其次会修复重大 Bug,确保生产环境稳定运行。
以 2021 年 1 月发现的 CVE-2021-3121 安全漏洞为例,CVSS 危急分数高达 7.5。但截止 2021 年 9 月 Kubernetes 社区:
- 仅修复了 4 个版本:1.18、1.19、1.20、1.21
- 宣称“所有早期版本均有这个安全漏洞,建议用户立即停止使用早期版本”
- 拒绝修复早期版本漏洞的要求
KLTS 针对这一现状,默默修复了深受 CVE-2021-3121 安全漏洞影响的 8 个早期版本:
- v1.17.17
- v1.16.15
- v1.15.12
- v1.14.10
- v1.13.12
- v1.12.10
- v1.11.10
- v1.10.13
如果您觉得 KLTS 团队的付出有价值,让您值得信赖,欢迎任何开发者加入 KLTS 社区交流并做出贡献。
欢迎携手培育硕果
辛勤的耕耘,最终收获的是美丽花朵和累累硕果。经过开发者精心的维护支持,KLTS 为这些早期版本带来以下成果:
-
三年维护期:Kubernetes 社区对每个版本提供一年左右的维护,而 KLTS 接下来会为该版本提供长达三年的持续维护。
-
安全稳定:小版本升级更安全,兼容性高。渐进式升级稳定性更好。譬如最新版本的新功能也许很有吸引力,但是不一定能达到生产可用的标准,需要较长时间的积累。
-
易于安装:结合国内镜像加速,原生支持 Kubeadm,支持 CentOS、Ubuntu、openSUSE,还提供了一键安装脚本。
-
公开透明:在 GitHub 托管的开源项目,全流程公开。
-
全链路规划:后续会添加 Containerd 及其他组件的长期维护。
在此也向广大的开发者,再次发出邀请,如果您觉得 KLTS 团队的付出有价值,让您值得信赖,欢迎任何开发者加入 KLTS 社区交流并贡献,期待您的任何意见、建议或解决方案。
- 加入 KLTS 社区
- 加入 KLTS Slack 聊天频道
Kubernetes 版本发行周期
Kubernetes 社区最近十多个版本的发布时间统计如下:
K8s 版本 | 初次发布日期 | EOL 日期 |
---|---|---|
1.10 | 2018-03-27 | 2019-02-13 |
1.11 | 2018-07-28 | 2019-05-01 |
1.12 | 2018-09-28 | 2019-07-08 |
1.13 | 2018-12-04 | 2019-10-15 |
1.14 | 2019-03-25 | 2019-12-11 |
1.15 | 2019-07-20 | 2020-05-06 |
1.16 | 2019-09-18 | 2020-09-02 |
1.17 | 2019-12-08 | 2021-01-13 |
1.18 | 2020-03-25 | 2021-06-18 |
1.19 | 2020-08-26 | 2021-10-28 |
1.20 | 2020-12-08 | 2022-02-28 |
1.21 | 2021-04-08 | 2022-06-28 |
1.22 | 2021-08-04 | 2022-10-28 |
初次发布:指的是 Kubernetes 初次发布的 0 号版本,即 1.10.0、1.11.0 … 1.22.0 等。
EOL 全称为 End Of Life,即官方社区结束维护,通常发生在初次发布大约 1 年后,这也是官方社区发布的最后一个 bug fix 版本。
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.