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
当然您也可以加入DaoCloud道客云原生交流群参与交流互动:
DaoCloud 公司简介:「DaoCloud 道客」云原生领域的创新领导者,成立于 2014 年底,拥有自主知识产权的核心技术,致力于打造开放的云原生操作系统为企业数字化转型赋能。产品能力覆盖云原生应用的开发、交付、运维全生命周期,并提供公有云、私有云和混合云等多种交付方式。成立迄今,公司已在金融科技、先进制造、智能汽车、零售网点、城市大脑等多个领域深耕,标杆客户包括交通银行、浦发银行、上汽集团、东风汽车、海尔集团、屈臣氏、金拱门(麦当劳)等。目前,公司已完成了 D 轮超亿元融资,被誉为科技领域准独角兽企业。公司在北京、武汉、深圳、成都设立多家分公司及合资公司,总员工人数超过 350 人,是上海市高新技术企业、上海市“科技小巨人”企业和上海市“专精特新”企业,并入选了科创板培育企业名单。