用Kairos激活边缘Kubernetes

边缘是目前围绕Kubernetes的热门话题。大大小小的公司都在将Kubernetes的应用推向最后一步,并用裸金属取代典型的虚拟机(VM)基础设施。

为了满足在边缘管理容器化裸金属Kubernetes的需求,出现了一系列发行版,包括FlatCar Linux和Talos等项目,这些项目都旨在为边缘提供一个轻量级、“不可变”的操作系统,并进行“原子”升级。

不可变性是配置管理的下一步

不可变操作系统是一个精心设计的系统,它以受限、无权限模式引导,其中系统的某些路径是不可写的。

例如,在安装之后,不可能在系统中安装其他软件包,任何配置更改都会在重新启动后丢弃。这减少了恶意攻击面,这在边缘非常重要,在边缘设备可能物理上可用于篡改。同时,它确保每个节点都运行某个版本的软件堆栈,从而降低基础设施漂移的风险。

这种方法是关于规模的。在云原生之前的日子里,每台服务器都是雪花或“宠物”,在第一次安装操作系统的基础上,通过打补丁、更新和配置更改来保持运行,使每台服务器成为一个独特依赖关系的节点。Ansible、Salt和Puppet等工具通常用于处理系统的每个微小细节,并尽可能减少基础设施漂移。

相反,“牛”方法是将节点视为可互换的系统。如果系统出现问题,我们只需删除故障节点并创建一个新的、相同的节点来替换它,而不是在生产中对其进行调试或“实时”采取纠正措施。这就是不可变操作系统真正的回报所在,因为当你知道该操作系统自构建以来未进行过修改时,知道替换操作系统将是一个完全的克隆,工作负载的行为将是可预测的。不可变性使得配置管理过时。

在不可变的基础设施中升级系统是通过使用新版本的操作系统创建一个新镜像,并使用选择的升级策略将其推送到节点来完成的,蓝/绿部署变得容易,因为它们是“原子”的,没有小程序包和漂移需要处理和维护。

拥有一个不可变的操作系统并不一定意味着拥有一个管理平面——当它涉及云原生世界中的边缘规模时,我们希望在Kubernetes中管理节点,我们应该像对待应用程序那样自由地对待节点——只需使用定义的策略发布和滚动升级到的简单容器。

这将是一个强大的组合,允许我们利用容器生态系统工具来解决实际问题,例如自动安全扫描、使用管道选择性升级节点,以及使用Kubernetes的完全管理节点。

不变性:一次一个发行版

Kairos是一个新的开源项目,旨在解决不变性和原子升级的需求。在这个意义上,它就像Talos、FlatCar和K3OS。

它们也有非常重要的区别:Kairos是发行版不可知的,基于开放容器倡议(OCI),云初始化优先。

发行版不可知:与K3OS不同,Kairos不是Linux发行版。它是一个元Linux发行版,这意味着它使你能够使用选择的Linux发行版创建一个不可变的Kubernetes集群。Kairos在设计上与发行版无关,支持将现有发行版从容器镜像转换为“基于Kairos的”发行版。这些自动继承了A/B原子升级、不可变性、实时分层和所有Kairos功能集等功能。重要的是,内核和initramfs是静态的,并随镜像一起提供,这实际上意味着整个系统堆栈的原子升级。

在撰写本文时,Kairos的版本为1.3,并支持基于openSUSE、Alpine和Ubuntu的发行版,这些发行版可以从发布的资产中直接下载,并将在下面的示例中使用。

基于OCI:基于OCI意味着Kairos使用容器镜像。操作系统本身只是一个单独的镜像容器,在主机上原生运行,没有任何容器引擎,它在引导系统中覆盖了overlayFS。升级由A/B模式和自动回退自动处理。

因为Kairos只是一个OCI镜像,所以你可以在存储库中找到容器镜像,它可以用于将ISO刻录到U盘或其他媒体上。ISO是可用的,也是发行版的一部分,所以我们不必担心,我们可以从发布的资产中选择喜欢的发行版。

云初始化优先:Kairos的唯一配置机制是通过云初始化执行的。作为唯一的真实来源,它用于配置集群中的一个或所有节点。这是为了在规模上增强用户维护和配置,减少管理节点所需的复杂配置基础设施的影响。

可以选择将管理移交给特定的Kubernetes组件,这些组件在引导后管理节点的生命周期。

结论:边缘需要什么

从云的简单抽象,我们正在过渡到边缘裸金属。没有人能假装知道每一个边缘场景需要什么,所以理想的操作系统需要足够灵活,以考虑到对堆栈的任何定制,并使更改和升级变得容易。这是至关重要的,因为它有助于在向边缘提供节点时可能出现的各种用例中使用相同的框架进行扩展。

当谈到要在集群上安装什么操作系统时,我们必须考虑节点将如何升级,有哪些备用系统,以及是否能够以熟悉的方式处理自动化。在云原生时代,这意味着在Kubernetes中管理Kubernete。

这就是为什么不可变操作系统越来越受欢迎的原因——它们非常适合运行Kubernetes工作负载,因为它们是静态操作系统,通常以原子方式运行和升级。

在本文中,我们分析了使不变性对于采用者来说非常重要的方面,特别是对于不可变基础设施可以在边缘带来的引人注目的特性。Kairos以云为中心、基于容器的方法通过单个原子升级将操作系统的版本控制带到了边缘,这些升级可以滚动到集群节点,类似于选择的Linux发行版的应用程序升级。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值