systemk:虚拟Kubelet助力系统管理

systemk:虚拟Kubelet助力系统管理

systemk Systemk is a systemd backend for the virtual-kubelet. Instead of starting containers, you start systemd units. systemk 项目地址: https://gitcode.com/gh_mirrors/sy/systemk

项目介绍

systemk 是一个利用 systemd 作为后端服务的虚拟 kubelet 提供者。在当前几乎每个 Linux 系统都配备有 systemd 的情况下,systemk 通过与 K3s(一个轻量级的 Go 编译的二进制文件)协同工作,允许用户通过 Kubernetes API 来配置系统。由于网络使用的是宿主机的网络,因此对于需要更重量级(有状态的?)应用来说,systemk 是一个理想的选择。它的文件系统半隐藏,但 emptyDir 和类似的功能都可以正常工作。

systemk 的设计理念是让用户能够使用 Kubernetes API,而无需深入了解 Kubernetes 的复杂世界(例如,叠加网络、入口对象等)。然而,这确实意味着在部署 systemk 的系统上,网络和发现(即主机)DNS 必须已经正常工作。

项目技术分析

systemk 利用 systemd 来启动 pod 作为服务单元。这使用了 systemd 的 cgroup 实现,允许我们通过在单元文件中指定来设置资源限制(几乎可以直接从 podSpec 中复制粘贴)。通常,这种设置没有(真正的容器)隔离 - 尽管对于磁盘访问,事物被相当程度地包含,例如 /var/secrets/kubernets.io/token 会被绑定挂载到每个单元中。

用户基本上是使用 k8s 控制平面来启动 Linux 进程。此外,没有为 pod 分配特定的地址空间,使用的是宿主机的网络。

"镜像"引用的是(Debian)软件包,这些将通过 apt-get 安装。发现已安装的软件包不再使用是困难的,因此不会执行这一操作。systemk 将重用来自此安装的单元文件,几乎专门用来找到 ExecStart 选项。

为了完全使 systemk 工作,有很多额外数据被注入其中。如果没有单元文件(例如,你使用 bash 作为镜像),将会合成一个单元文件。

每个计划的任务单元将遵循一个命名方案,以便 systemk 知道哪些是由它管理的。

项目技术应用场景

systemk 的用途非常广泛,特别是在管理小型机群时。假设你管理着 200 台机器,并且需要比配置管理工具能提供的更合理的管理和洞察?例如,使用 kubectl 你可以找出哪些机器没有运行 DNS 服务器,通过 deployments 你可以更安全地推出升级,通过“插入你喜欢的 Kubernetes 功能”你可以进行金丝雀测试。

监控,例如,只需要 Prometheus 通过 Kubernetes API 发现 pod,极大地简化了该设置的复杂性。查看 prometheus.yaml 了解一个完整的、可工作的设置,该设置发现正在运行的 pod 并抓取它们。Prometheus 配置仅仅是 kubernetes_sd_configs

项目特点

  1. 易于部署:systemk 可以轻松地与 K3s 配合使用,只需几个简单的命令即可启动。

  2. 基于 systemd:利用系统已有的 systemd 服务,无需额外依赖。

  3. 资源限制:通过 systemd 的 cgroup 实现,可以轻松设置资源限制。

  4. 简单网络:使用宿主机的网络,减少了网络配置的复杂性。

  5. 灵活的镜像管理:可以指定本地文件系统中的二进制文件,或者远程下载的软件包作为镜像。

  6. 日志和监控:支持日志获取,并与 Prometheus 等监控工具兼容。

  7. 安全性:尽管隔离性较弱,但提供了基本的进程隔离。

  8. 易于管理:通过 Kubernetes API 管理系统,提供了丰富的管理功能。

systemk 的出现,为需要简化 Kubernetes 集群管理的人员提供了一个新的选择。它通过利用现有的 systemd 功能,使得在 Kubernetes 环境中管理 Linux 系统变得更加直接和高效。无论你是刚刚开始使用 Kubernetes,还是已经是一位经验丰富的管理员,systemk 都值得你尝试和探索。

systemk Systemk is a systemd backend for the virtual-kubelet. Instead of starting containers, you start systemd units. systemk 项目地址: https://gitcode.com/gh_mirrors/sy/systemk

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

薄琼茵Angelic

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值