DaoCloud 道客云原生开源项目 KLTS,全称为 Kubernetes Long Term Support,为 Kubernetes 早期版本提供长期免费的维护支持

2022-01-17 11:45:19 +08:00
 macrokefeng

DaoCloud 道客的云原生开源项目 KLTS ,全称为 Kubernetes Long Term Support ,主要使命是为 Kubernetes 早期版本提供长期免费的维护支持。KLTS (官网: https://klts.io/) 开源项目已于 2021 年 11 月底正式上线了!

KLTS 从提出思路、数据源整理、网站建设,到最后发布上线,共用了 2 个多月时间。整个项目都是「 DaoCloud 道客」的相关技术同事,自发组织,用工作之余的时间完成的。欢迎广大的开发者和我们一起畅聊开源技术,共同探讨和解决相关的问题。

查看 KLTS 源码: https://github.com/klts-io

KLTS 一键安装脚本:

curl -sSL https://github.com/klts-io/klts/raw/main/install.sh | sh

KLTS 开源项目 PDF 资料下载:前往交流群领取(群二维码这本文最后)

为什么会有 KLTS 这个开源项目呢?

实际生产中,大多数企业往往会选择采用,早期的 Kubernetes 版本管控集群。

首先,升级频率高会带来变更风险,每次升级必须进行充分验证。特别是金融行业的平台层变更周期通常比较长,因为一旦升级后的新版本存在 bug ,就需要被迫回滚或快速响应升级至更新的版本,这样会造成不必要的成本支出。

其次,Kubernetes 升级后部分功能的替代方案还没有完全生产就绪,在生产环境中常会出现不兼容的状况。

最后,Kubernetes 社区仅支持小版本 +1 升级,不支持跨版本升级,因为跨版本升级经常会出现一些不可控的因素,造成更大的生产问题。

所以大多数企业的选择是沿用早期版本,不会贸然升级。但 Kubernetes 社区只维护最新的 3 到 4 个版本,然而企业实际在使用的都是早于这些的版本。

在企业使用这些早期版本的时候,如何才能免受社区不定时发现的,CVE 漏洞和 bug 的袭扰呢?这就是 KLTS 的价值所在! KLTS 会对 Kubernetes 社区停止维护的早期版本,提供长达 3 年的免费维护支持,积极修复早期版本的 CVE 安全漏洞和重大 bug 。

KLTS 会优先修复中高级别 CVE ,其次会修复重大 Bug

在维护的范围中,KLTS 会优先修复中高级别的 CVE ,其次会修复重大 Bug 。

这是因为,一些高优先级的 CVE 或严重 Bug ,在生产环境中会造成较大的安全隐患,CVE 安全问题是集群的生命线。因此,KLTS 会优先修复中高级别的 CVE ,其次会修复重大 Bug ,确保生产环境稳定运行。

当 Kubernetes 社区发现可能影响生产的 CVE 新漏洞或 bug ,受到影响的可能不止社区正在维护的版本,还有之前已经停止维护,但是仍有企业使用的版本,KLTS 团队维护的正是这些社区放弃维护的版本。

以 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 维护的早期版本号,是从 1.10.13 起到 Kubernetes 社区最新停止维护的版本号

在这三年维护期内,我们对从 1.10.13 起的每一个版本,每提供一次免费维护,每一个 Kubernetes 版本号,都有一个相对应的 KLTS 提供的补丁版本号。企业可以通过这样的补丁号,可以找到对应的修复版本。

KLTS 维护的早期版本号,是从 1.10.13 起到 Kubernetes 社区最新停止维护的版本号。例如,社区发布的最新 Kubernetes 版本为 x.y.n ,其中 x 是大版本号,y 是小版本号,n 是补丁版本号 (补丁版本号代表社区维护过程中产生的补丁数,初始为 0),区别 KLTS 维护的版本和 Kubernetes 社区维护版,主要是以 y 的变化为准。

因此,根据社区版本维护声明,如果社区仅维护最近的三个版本,版本号即为 x.y 、x.(y-1)、x.(y-2),而 KLTS 维护的则是从 1.10 起,到 x.(y-3) 的近十个早期版本,如下图所示。

对应每个维护的版本,KLTS 每维护一次,就会有一个对应的补丁号。

示例:Kubernetes 社区很早以前就停止维护的一个版本,版本号为 1.10.13 ,KLTS 在三年内提供的补丁版本,版本号通常在此基础上加上 lts1 、lts2 … ltsn 表示。例如,1.10.13 第一个补丁版本号为 1.10.13 lts1 ,第二个补丁版本号为 1.10.13 lts2 ,第 n 个补丁版本号为 1.10.13 ltsn 。

如上图所示,Kubernetes 社区对某个版本的维护周期通常是一年左右,而 KLTS 则是在接下来的三年内提供长期维护,直至代码无法兼容,才会将相应版本淘汰。

KLTS 为这些使用早期版本的企业带来的最终成果

辛勤的耕耘,最终收获的是盛开的美丽花朵。经过开发者精心的维护支持,KLTS 为这些使用早期版本的企业带来了最终的成果:

三年维护期:Kubernetes 社区对每个版本提供一年左右的维护,而 KLTS 接下来会为该版本提供长达三年的持续维护。

安全稳定:小版本升级更安全,兼容性高;渐进式升级稳定性更好;从 1.10 起所有内核都是久经金融政企生产验证的软件,可以放心下载,经过测试验证后就能直接投入生产环境。

易于安装:结合国内镜像加速,原生支持 Kubeadm ,支持 CentOS 、Ubuntu 、openSUSE ,还提供了一键安装脚本。

公开透明:在 GitHub 托管的开源项目,全流程公开。

全链路规划:后续会添加 Containerd 及其他组件的长期维护。

KLTS 的路线图正在制定之中,目前路线图计划短期实现信创支持,长期实现麒麟系统支持等多方位的重要能力。

在此,向广大的开发者,再次发出邀请,如果您觉得 KLTS 团队的付出有价值,让您值得信赖,欢迎任何开发者加入 KLTS 社区交流并贡献,期待您的任何意见、建议或解决方案。

加入 KLTS’s Slack: https://join.slack.com/t/klts/shared_invite/zt-wutp4tk7-ITXZc8EUUiuxbM_5mh1qXA

当然你也可以加入道客云原生交流群进行交流互动:

717 次点击
所在节点    推广
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/828713

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX