mcpField
K
Kairon

Kairon

本地服务
github.com云与基础设施206 天前更新

关于 Kairon

Kairon 是在 Kubernetes 上调度、通过 KVM 运行虚拟机的系统,面向管理虚拟机集群的运维与开发团队。它以 Machine CRD 管理不同虚拟机后端,并提供网络策略、诊断工具和 Agent 接口。

主要功能

  1. 01通过 Kubernetes 调度虚拟机
  2. 02单一 CRD 支持四种虚拟机监控器
  3. 03为虚拟机网络边缘提供 eBPF 策略
  4. 04提供命令行诊断与运维操作
  5. 05支持 Agent 会话与沙箱

适用场景

  1. 01在 Kubernetes 集群运行虚拟机工作负载
  2. 02为 CI 和 Agent 创建隔离虚拟机
  3. 03检查虚拟机网络策略与流量
  4. 04诊断虚拟机或集群故障

MCP 相关

`kaironctl mcp serve` 将虚拟机、策略和实时网络数据开放给 MCP 客户端;写入操作需通过 `--allow-write` 启用。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"zyvorai-kairon": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"KAIRON_KUBE_URL",
"-e",
"KAIRON_KUBE_TOKEN",
"-e",
"KAIRON_KUBE_CA",
"-e",
"KAIRON_KUBE_INSECURE",
"-e",
"KAIRON_UI_URL",
"-e",
"KAIRON_UI_TOKEN",
"-e",
"KAIRON_UI_CA",
"-e",
"KAIRON_UI_INSECURE",
"-e",
"KAIRON_LLM_URL",
"-e",
"KAIRON_LLM_MODEL",
"-e",
"KAIRON_LLM_API_KEY",
"-e",
"KAIRON_MCP_TENANT",
"ghcr.io/zyvorai/kairon-mcp:v0.10.2"
],
"env": {
"KAIRON_KUBE_URL": "<KAIRON_KUBE_URL>",
"KAIRON_KUBE_TOKEN": "<KAIRON_KUBE_TOKEN>",
"KAIRON_KUBE_CA": "<KAIRON_KUBE_CA>",
"KAIRON_KUBE_INSECURE": "<KAIRON_KUBE_INSECURE>",
"KAIRON_UI_URL": "<KAIRON_UI_URL>",
"KAIRON_UI_TOKEN": "<KAIRON_UI_TOKEN>",
"KAIRON_UI_CA": "<KAIRON_UI_CA>",
"KAIRON_UI_INSECURE": "<KAIRON_UI_INSECURE>",
"KAIRON_LLM_URL": "<KAIRON_LLM_URL>",
"KAIRON_LLM_MODEL": "<KAIRON_LLM_MODEL>",
"KAIRON_LLM_API_KEY": "<KAIRON_LLM_API_KEY>",
"KAIRON_MCP_TENANT": "<KAIRON_MCP_TENANT>"
}
}
}
}
启动命令docker run -i --rm -e KAIRON_KUBE_URL -e KAIRON_KUBE_TOKEN -e KAIRON_KUBE_CA -e KAIRON_KUBE_INSECURE -e KAIRON_UI_URL -e KAIRON_UI_TOKEN -e KAIRON_UI_CA -e KAIRON_UI_INSECURE -e KAIRON_LLM_URL -e KAIRON_LLM_MODEL -e KAIRON_LLM_API_KEY -e KAIRON_MCP_TENANT ghcr.io/zyvorai/kairon-mcp:v0.10.2
需要配置的环境变量
KAIRON_KUBE_URLKubernetes API server URL, e.g. https://k8s.example:6443. The server only offers read tools unless --allow-write is appended to the container arguments; the image never sets it.
KAIRON_KUBE_TOKEN密钥Bearer token for the Kubernetes API. Bind it to a Role with only the verbs the agent needs (get/list on machines for read-only use).
KAIRON_KUBE_CAPath, inside the container, of the CA bundle for the Kubernetes API (mount it). Leave unset to use system roots.
KAIRON_KUBE_INSECURESet to "true" to skip TLS verification of the Kubernetes API. Lab use only.
KAIRON_UI_URLBase URL of kairon-ui; needed by the machine_network tool (network flows, drops, capture sessions).
KAIRON_UI_TOKEN密钥Bearer token for kairon-ui.
KAIRON_UI_CAPath, inside the container, of the CA certificate for a self-signed kairon-ui (mount it).
KAIRON_UI_INSECURESet to "true" to skip TLS verification of kairon-ui. Lab use only.
KAIRON_LLM_URLOpenAI-compatible endpoint for the optional ask tool and the summary in diagnose.
KAIRON_LLM_MODELModel name sent to KAIRON_LLM_URL.
KAIRON_LLM_API_KEY密钥API key for KAIRON_LLM_URL.
KAIRON_MCP_TENANTScope the claim tools, diagnose and ask to this tenant.

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
ocighcr.io/zyvorai/kairon-mcp:v0.10.2

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Kairon

CI MCP Release Go Report Card OpenSSF Scorecard OpenSSF Best Practices License: Apache-2.0 Go

预订演示 30 天 PoC 快速入门

Kairon:Kubernetes 上的真实 VM,不是伪装成 VM 的 Pod

VM 不会伪装成 Pod。

由 Kubernetes 调度、直接运行在 KVM 上的真实虚拟机。 每台 VM 不需要单独的 virt-launcher Pod,热路径中没有 libvirt,也不需要一大堆 Operator。Machine 表示期望状态,kairon-controller 负责调度,kairon-node 则通过 FluxVM 使用 QEMU、Cloud Hypervisor、Firecracker 或 FluxVM 自有的 Hypervisor 运行它。

每台 VM 零 Pod · 四种 Hypervisor,一个 CRD · 每台 VM 的边缘节点都运行 eBPF · 不会悄然发生脑裂 · 内置 AI Agent(MCP)

Kairon 仪表板:概览、机器、迁移、快照、节点、网络策略和所有命名空间视图

此仪表板演示使用本地示例数据栈录制(查看方法),并非生产集群。

Kairon:VM 不会伪装成 Pod。与 KubeVirt v1.9.0 相比:空闲控制平面轻 14 倍,五台 VM 的 SSH 连接速度快 7.4 倍


最新动态

实验性运维: Kairon Rehearsal 在隔离的 CSI 副本上测试升级。高级运维新增健康检查门控的配置变更计划、应用恢复验证、基于流量/RTT 的放置建议,以及带修复验证的事件复现。包含可运行的场景和故障路径测试。VM/CSI 和主机隔离的硬件资格验证仍在等待中。

自 v0.6.0 以来的新增内容(最新标签:v0.10.2;截至事件包的各行内容均为 v0.10.0 新增):

Agent 会话(实验性)AgentSession 是 FluxVM Agent 会话:一个沙箱 VM,包含 git 工作区、编译后的出口/文件系统/进程策略、预算、检查点、实时分叉和事件日志,并像 Machine 一样按计划调度和计量配额。命令可以等待管理员批准;支持分块上传、交互式 shell、访客永远看不到的凭据授权,以及 Mac 访客的屏幕。提供 kaironctl session、session_* MCP 工具、两种 SDK 和一个仪表板页面。Mac 节点需运行 FluxVM 0.4.8 及以上版本。指南 →
从 virtctl 迁移kaironctl 涵盖 virtctl 的各类命令:控制台和 VNC(含截图)、重启/软重启、导出和内存转储、访客信息、SSH 密钥和密码、expose、freeze、guestfs、cdrom、create clone、objectgraph、--dry-run -o yaml、wait。CLI →
自检:一切正常吗?kaironctl selftest(或仪表板的自检页面)会启动一个精简的 CirrOS VM,验证电源、网络、热插拔、快照恢复等功能,并实时显示彩色日志和 PASS/FAIL/SKIP 表格。deploy-remote.sh --self-test 会在部署后立即运行自检。指南 →
无需本地构建即可部署deploy-remote.sh --remote-build 会复制一个精简的源代码 tarball 并在主机上编译,因此笔记本无需安装 Go、Node,也无需构建缓存。最快路径 →
默认启用 HTTPS仪表板和 VNC 控制台中继开箱即用地提供 TLS(自动生成证书或使用自备证书);明文 HTTP 需要明确选择退出。仪表板指南 →
Mac Fabric(实验性)将多台 Mac 组成一个资源池:每台都会公布其芯片、macOS、Rosetta、嵌套虚拟化和 Thunderbolt Bridge 信息;spec.apple 可将 vz Machines 放置在相应 Mac 上,MacNetwork 则通过 Thunderbolt 为不同 Mac 上的 Machines 提供一个专用网络。目前可对模拟的 Mac 进行测试。指南 →
跨集群灾难恢复(实验性)MachineProtectionPlan 将一组 Machines 复制到 S3,并在第二个集群上保留其规格和恢复点,同时设定 RPO 和 RTO 目标。kaironctl dr failover 会按依赖顺序在该集群启动这些 Machines;使用 --planned 可确保不丢失数据。kaironctl dr test 会在生产环境运行期间,将副本恢复到隔离网络中,也支持按计划运行。Machines 保留其 VirtualNetwork 地址,DNS 名称则通过 external-dns 跟随活动站点。指南 →
vGPU 配置和 GPU 健康状况(实验性)spec.devices[].profile 可为 Machine 分配一部分 GPU(NVIDIA vGPU 或基于 MIG 的配置),而不是整个 GPU;调度器依据空闲实例数和 GPU 内存进行调度。GPU 会在 Machine 启动时创建、停止时归还;不健康的 GPU 会被跳过。指南 →
加速器配置(实验性)集群范围的 MachineAcceleratorProfile 用于定义加速器形态(数量、供应商或 vGPU 配置、每个设备的内存、用于点对点通信的单一 PCIe 根节点、单一 NUMA 节点,以及位于 GPU 旁的 RDMA NIC);Machines 通过 spec.accelerators 请求使用该配置。配置的状态会显示每个节点还能容纳多少台 Machine。指南 →
节点维护和 DRS(实验性)kaironctl node maintenance enter NODE 会封锁节点,将其上的 Machines 迁移出去,并停止或休眠无处可迁的 Machines;退出维护模式后会恢复原状。DRS(`-drs-mode recommend
每个磁盘的 I/O QoS可为 Machine 的根磁盘和数据磁盘设置 IOPS 和带宽限制(io.throttle),支持突发,由 QEMU 强制执行,并可在 Machine 运行时实时更改。指南 →
NVMe-oF 存储(实验性)Kairon 的 CSI 驱动通过内核 NVMe target 配置 nvme-tcp 和 nvme-rdma 卷,并支持原生多路径;原始 Block 卷可直接启动 Machines,也可作为数据磁盘挂载并设置每盘 QEMU I/O 限制。指南 →
休眠(实验性)spec.powerState: Hibernated 会将 RAM 和设备状态保存到磁盘并释放节点;恢复后可在原节点或使用共享存储的兼容节点上继续同一次启动。指南 →
虚拟网络(实验性)VirtualNetwork:通过 Geneve overlay 和 eBPF 路由的隔离 IPv4 网络,并提供每个网络独立的网关、出口 SNAT 和浮动 IP。指南 →
弹性内存(实验性)运行所需内存超过节点可用内存的 Machine:支持保证最低内存、virtio-balloon 回收循环,以及调度器会遵循的 KaironMemoryPressure 信号。指南 →
拓扑感知放置(实验性)NUMA、GPU、NIC 和 NVMe 本地性:调度器会同时选择节点、具体 CPU、NUMA 内存和 PCI 设备。指南 →
事件诊断包(实验性)kaironctl diagnose machine --deep:生成一个经过脱敏的 tar.gz,包含 Machine 的集群状态,以及从其所在节点收集的 QMP、cgroup、控制台、数据平面和 pcap 信息;还可选择启用访客内存转储。指南 →
生命周期、诊断和命名空间(v0.9)kaironctl doctor、connectivity test、logs、events、sysdump、config、history/rollback;kaironctl upgrade 会保留你之前的 Helm values。仪表板新增命名空间选择器、显示所有命名空间 Machines 的视图,以及批量启动/停止功能。发行说明 →
v1 API 和新版仪表板kairon.zyvor.dev/v1 是存储版本(提供服务但已弃用的版本:v1beta1/v1alpha1)。仪表板经过重新设计,新增 Storage(Atlas)、Pools & claims、Images 和 Backups 页面;kairon-ui 现在监听 :18082。指南 →
原生 macOS 节点kairon-node 将 Apple silicon Mac 注册为 Node,并通过 FluxVM 运行 backend: vz Machines。已在 M4 上验证;目前尚不支持多 Mac 集群。指南 → · Mac 集群 →
开发者生态工具包Python 和 TypeScript SDK、按摘要固定的配方、一次性 VM GitHub Actions、Terraform 组合方案。工具包 →
集群自动化(实验性)可选启用 Redfish 隔离、负载均衡、自动扩缩、备份和恢复计划、模板声明、使用量 CSV 及集群仪表板。指南 →
Kairon 与 KubeVirt 基准测试同一节点、同一访客、一个脚本驱动两者;测试方法和原始 JSON 见 docs/benchmarks。
从 VMware 导入kaironctl import ova 会一次性流式传输 OVA,从 OVF 读取 vCPU、内存和固件信息,再由 FluxVM 转换并修复磁盘。指南 →
热备资源池和声明MachinePool 会让已启动的 Machines 保持就绪;MachineClaim 可在一次 reconcile 周期内绑定其中一台,并支持每个声明单独设置出口允许列表。指南 →
VM 分叉kaironctl fork 和 MCP fork_machine 工具可通过 FluxVM 分叉正在运行的 Machine。指南 →
Agent 沙箱(实验性)spec.lifecycle 可暂停闲置的 Machines,并在连接时唤醒;达到最长生命周期后会删除它们。两种 SDK 均支持暂停的热备资源池、每个声明的使用量,以及 Sandbox 类。指南 →
备份MachineBackup 和 MachineBackupRestore 支持冻结访客文件系统;Atlas 卷支持 Atlas S3 备份作业。还提供带策略和 GFS 保留策略的增量 S3 备份(实验性)。指南 →
在线磁盘和 NIC在运行中的 Machines 上热挂载 PVC 磁盘,并热添加或移除额外 NIC(kaironctl disk、kaironctl nic)。指南 →
租户隔离kairon.zyvor.dev/tenant-fence 会将 spec.tenant 转换为命名空间内的东西向隔离,禁止访问其他租户的访客地址。指南 →
通过 Halt 抢占无法放置且已选择加入的高优先级 Machine 会停止一个已选择加入的低优先级 Machine;抢占者离开后,后者会恢复运行。指南 →
热插拔配置在重启后保留停止后再启动时,会按热插拔后的 CPU 和内存配置启动;hotplug-persist 会将其写回 spec。指南 →
Halted 恢复后保留热插拔配置恢复 Halted Machine 时,会重新热插拔其 CPU 和内存,将其还原至停止前的大小。指南 →
声明会继承模板createMachine 资源池声明会获取模板的资源、内核、cloud-init、NUMA、安全配置、访客 Agent、TTL 和转发规则;未继承的项目会列在 machineWarnings 中。指南 →
每日快照计划MachineSnapshotSchedule 支持 dailyAt: "02:30"、稳定抖动和 maxAgeSeconds 保留策略。指南 →
CPU 绑定发现,已部署使用 deploy-remote.sh --reserved-cpus=0-1 或 Helm node.cpuPinning 可让 kairon-node 获取 kubelet 的 CPU 状态,从而发现 pinnable-cpus。指南 →
Agent 操作审批具有破坏性的 MCP 工具会等待一次性 kaironctl approve。指南 →
陈旧节点驱离选择启用后,标记为 evacuate=true 的 Machines 会从通过 kaironctl node fence 确认已失效的节点上隔离出去。指南 →
镜像目录和 ISO 安装集群范围的 MachineImage(磁盘或 ISO,通过摘要固定)、用于 SATA 的 spec.cdroms 安装介质、空白根磁盘,以及为空启动卷预置数据。不需要 CDI。指南 →
OCI containerDiskspec.image.source.oci 会按摘要拉取磁盘镜像,并对每一层进行流式验证。指南 →

为什么选择 Kairon

当出现这种情况时……Kairon 为你提供……
每台 VM 都要带上一个 virt-launcher pod、libvirt 和 QEMU 封装程序每台 VM 除 VM 本身外不需要任何其他组件。 kairon-node 与 FluxVM 的 REST API 通信,再由它与 KVM 通信。
迁移在中途失败,却没人知道哪份副本才是真的NeedsRecovery。 遇到不明确的提交时会暂停并请求人工处理;绝不猜测,也绝不同时运行两个副本。
CI 和 Agent 需要 microVM,数据库却需要完整 VM一个 Machine CRD,四种虚拟机监控程序:QEMU、Cloud Hypervisor、Firecracker、FluxVM。通过 spec.backend 为每台 Machine 选择后端。
VM 网络意味着要用 Pod CNI 技巧、伪装和 Multus每个 VM tap 上都有 eBPF 边缘:防欺骗、DNS 和 TLS-SNI 策略、速率限制、流量、带归因的丢包和数据包捕获。
调试控制平面就得阅读 client-go 代码库控制器和节点仅使用标准库(依赖策略)。小到一个下午就能读完。
你的 AI Agent 需要查看并管理你的集群kaironctl mcp serve:为 Hermes Agent 和任何 MCP 客户端提供 Machines、策略和实时网络数据;写入操作由 --allow-write 控制。此外也发布为 ghcr.io/zyvorai/kairon-mcp 镜像,并在 MCP Registry 中列为 io.github.zyvorai/kairon(v0.10.2)(从注册表安装)。

功能一览:运行、迁移、保护、自动化


数据一览

同一节点上 Kairon 与 KubeVirt v1.9.0 的对比:空闲控制平面内存减少 14 倍;单台 VM 的 SSH 就绪速度快 2.9 倍,五台时快 7.4 倍;每台 VM 的内存相同

KaironKubeVirt v1.9.0
空闲控制平面内存63 MiB905 MiB少 14 倍
1 台 VM 的 SSH 就绪时间23.7 s67.6 s快 2.9 倍
5 台 VM 的 SSH 就绪时间,中位数24.8 s184.7 s快 7.4 倍
每台 VM 的内存(5 台 VM)660 MiB661 MiB相同:使用相同的 QEMU 和客户机

使用相同的 k3s 节点、相同的 Ubuntu 24.04 镜像、相同的 1 vCPU / 512 MiB 客户机和 cloud-init 种子,由同一个脚本驱动两者;就绪的定义是客户机的 sshd 开始响应。无论采用哪种方式,VM 本身的成本都相同;你省下的是 KubeVirt 围绕 VM 添加的一切。测试方法、原始 JSON 和注意事项(包括 10 台 VM 的测试):docs/benchmarks。


Kairon 与 KubeVirt

Kairon 与 KubeVirt:同样使用 kubectl 和 KVM,中间的技术栈减半

移除每一层,就少一件需要打补丁的东西,少一份需要阅读的日志,也少一个可能在凌晨 2 点崩溃的进程。

KaironKubeVirt
VM 是什么一个 Machine:拥有自己的 CRD 和生命周期伪装成 Pod 的对象(virt-launcher)
每台运行中的 VM 所需的 Pod0每台各需 1 个 virt-launcher Pod
空闲控制平面,5 台 VM 可供 SSH 连接(实测)63 MiB,25 s905 MiB,185 s
通往 KVM 的路径kairon-node → FluxVM REST → KVMvirt-handler → virt-launcher → libvirt → QEMU
虚拟机监控程序QEMU、Cloud Hypervisor、Firecracker、FluxVM通过 libvirt 使用 QEMU
MicroVM 和预热池Firecracker / FluxVM 沙箱、FluxVM 预热池(24 ms 声称值的实测)非目标用途
调度Kairon 根据实际可分配资源感知容量并进行放置Pod 调度器加上 virt 扩展
控制平面代码仅使用 Go 标准库(控制器、节点)庞大的 client-go / controller-runtime 接口
VM 网络eBPF VM 边缘层:反欺骗、DNS/SNI 策略、速率限制、流量、丢弃原因、pcapPod CNI、masquerade/bridge 绑定、Multus
网络策略MachineNetworkPolicy + NetworkSecurityGroup,可选同步 CiliumPod NetworkPolicy
实时迁移通过 mTLS 节点间 prepare/commit/abort,并使用加密数据平面virt 技术栈内部的 libvirt 迁移
迁移提交状态不明确NeedsRecovery:不会静默产生脑裂取决于技术栈的恢复方式
单台 VM 的数据包捕获kaironctl network capture demo --seconds 15进入启动器 Pod 并自行准备工具
AI Agent内置 MCP 服务(kaironctl mcp serve)未包含
浏览器控制台noVNC 中继,支持按 Machine 设置允许列表和 Kubernetes RBACvirtctl vnc / 外部 UI
事实来源只有 Kubernetes APIKubernetes 加上 virt 抽象
安装一个来自 OCI 的 Helm 图表,或 kaironctl installOperator 加 CR,镜像使用 CDI
选择 KubeVirt 的情况你现在就需要它多年积累的生态集成(OpenShift Virtualization、Harvester)

之前的技术栈插图:docs/assets/kairon-vs-kubevirt.jpg。


你将获得什么

Machine,而非 Pod

Machine 和 MachineSet 支持实例类型、NUMA 和 CPU 绑定、Windows 来宾、PVC 和 CSI 启动、多卷 virtiofs、CPU/内存热插拔、暂停和停止、cloud-init 以及端口转发。期望状态保存在 Kubernetes 中;节点每隔几秒就会协调一次。已交付功能 →

kaironctl create demo --image /var/lib/fluxvm/images/ubuntu.qcow2 --cpu 2 --memory 2Gi --backend qemu
kaironctl get machines
拒绝猜测的迁移

冷迁移、节点疏散,以及通过相互 TLS 和加密数据平面进行的安全实时迁移。封锁节点后,控制器可以为你疏散该节点上的 Machine,并由 MachineDisruptionBudget 控制速率。提交状态不明确时,Machine 会进入 NeedsRecovery 并等待操作员处理,而不是冒险同时运行两个副本。迁移 → · NeedsRecovery 操作手册 →

每台 VM 上的 eBPF 边缘层

每个 VM tap 都使用 FluxVM 的 eBPF 数据平面:反欺骗、DNS 和 TLS-SNI 允许列表、速率限制,以及附带原因标记的丢弃(spoof_ip、dns_deny、sni_deny、rate_limit,等等)。使用 MachineNetworkPolicy / NetworkSecurityGroup 编写策略;在 CLI 和仪表板的 Network 面板中实时查看;只需一条命令即可捕获单台 VM 的数据包。VM 边缘层 → · 网络结构 →

kaironctl network flows demo --limit 20
kaironctl network drops demo
kaironctl network capture demo --seconds 15 --output demo.pcap
AI Agent,安全可控

Agent 平面:AI 提议,Kairon 验证。ask 和 diagnose 将请求交给严格的编译器和验证器,再写入哈希链审计日志,最后到达集群。密封声明、边缘 Warning 事件、逐 Machine 基线异常评分、cosign 镜像验证、SEV-SNP/TDX 证明和经过审计的 MCP 写入工具

kaironctl mcp serve 通过 stdio 使用 Model Context Protocol。Hermes Agent、Claude、Cursor 或任何 MCP 客户端都可以列出 Machine、读取策略并拉取流、丢弃和捕获数据。Power、snapshot、capture、sealed-claim 和 policy-apply 工具仅在使用 --allow-write 时才会显示,并且每次写入都会先记录到哈希链审计日志中。kaironctl agent ask 使用任意兼容 OpenAI 的模型,将自然语言请求转换为经过验证的提案;kaironctl agent diagnose 则会对 Machine 或迁移停滞的原因进行排序;二者都不会应用任何内容,也没有模型在协调循环中运行。通过官方 MCP SDK 在 CI 中进行端到端覆盖。AI Agent → · Agent 平面 →

快照与恢复

基于 CSI VolumeSnapshots 的 MachineSnapshot、MachineSnapshotRestore 和 MachineSnapshotSchedule,并使用来宾代理冻结文件系统,以创建应用一致性快照。通过 FluxVM 创建 VM 内存快照,并提供用于灾难恢复的 CRD 备份/恢复脚本。快照 →

集群防护与运维

MachineQuota、MachineDisruptionBudget、MigrationPolicy 和可选择启用的准入 Webhook。kairon-ui 仪表板支持 SSO、按操作员划分的账户以及浏览器内 VNC 控制台。Prometheus 指标和告警、控制器 HA 租约,以及可选择启用的 OpenTelemetry spans。可观测性 → · 安全 →


仪表板

Kairon 仪表板:打开检查器的 Machine 表格
概览
概览:集群运行状况和节点使用情况
迁移
迁移页面,突出显示 NeedsRecovery
包含批量操作的所有命名空间 Machine
所有命名空间,批量 Start/Stop

选择三个 Machine 并同时停止它们 切换命名空间并筛选 Machine 表格

更多页面:图库。截图和片段由 docs/ux 中的示例数据栈生成,因此展示的是实际仪表板构建,而不是实验室集群。


工作原理

动画:客户端与 Kubernetes API 通信,kairon-controller 放置 Machine,kairon-node 将其协调为 FluxVM Machine 生命周期动画:Pending、Running、Paused、Halted、Stopped、Failed 两个节点之间通过双向身份验证的 TLS 链路进行实时迁移的动画(预览) 动画柱状图:空闲控制平面的内存占用和 SSH 连接耗时,对比 Kairon 与 KubeVirt v1.9.0
v0.10.0 新增,动画演示:Agent 会话、空闲沙箱、跨集群灾难恢复、维护与 DRS、弹性内存、增量备份、Mac Fabric 动画:Agent 的命令通过 AgentSession 传入沙箱 VM;git push 等待管理员批准,连接到允许的主机可通过,未知主机则被拒绝 动画:沙箱 Machine 进入空闲状态后自行暂停,并在下次连接时唤醒 动画:站点 A 复制到站点 B,站点 A 故障后,db 随后 web 在站点 B 启动,DNS 随之切换 动画:节点进入维护状态,Machine 迁移或休眠;DRS 在节点承压时重新平衡负载 动画:主机内存承压时,气球膨胀,直到每个 Machine 的最低内存;随后气球收缩 动画:一次完整备份、两次仅备份已更改数据块的增量备份,以及 S3 中的一次合成完整备份 动画:根据 Apple 功能将 Machine 调度到 Mac 上,再通过 Thunderbolt 接入 MacNetwork

两个 Go 二进制文件和 KVM 主机:kairon-controller、kairon-node、FluxVM 和 Kubernetes API 下的 KVM

组件端口作用
kairon-controller:32301 health、:8443 webhook放置、迁移状态机、隔离、快照、配额和预算
kairon-node:32302 health、:9443 mTLS peer、:8090 console每台主机的 Agent:FluxVM 生命周期、eBPF 策略、实时迁移对端、边缘 Warning 事件、机密计算功能标签
kairon-ui:18082(HTTPS)可选控制面板:Machine、迁移、快照、存储(Atlas)、资源池和声明、镜像、备份、网络面板、VNC 控制台;参见控制面板指南
kaironctl—CLI 和 kubectl kairon 插件、内嵌 Helm 安装程序、MCP 服务
FluxVM127.0.0.1:7788每台主机上的 VMM 层:QEMU、Cloud Hypervisor、Firecracker、FluxVM
flowchart TB
  subgraph clients["Clients"]
    cli["kaironctl / kubectl kairon"]
    dash["Dashboard (HTTPS)"]
    agent["AI agents via MCP"]
  end
  clients --> api["Kubernetes API<br/>Machine, MachineMigration, VirtualNetwork, ..."]
  api <--> ctl["kairon-controller<br/>placement, migration state machine,<br/>quota, IPAM, backup policy"]
  api <--> ui["kairon-ui"]
  api <--> node["kairon-node<br/>one per VM host"]
  node -->|"REST on 127.0.0.1"| flux["FluxVM<br/>QEMU, Cloud Hypervisor,<br/>Firecracker, FluxVM"]
  flux --> kvm["KVM + eBPF edge"]
  node <-->|"mTLS peer"| node2["kairon-node on another host"]
  flux --> s3[("S3 backups")]

完整说明:ARCHITECTURE.md · docs/architecture.md · 架构示意图:docs/assets/readme-architecture.jpg


快速开始

在 VM 主机运行 FluxVM 的 Kubernetes 集群上:

kubectl label node worker-1 kairon.zyvor.dev/capable=true

helm upgrade --install kairon oci://ghcr.io/zyvorai/charts/kairon \
  --version 0.10.2 -n kairon-system --create-namespace \
  -f https://raw.githubusercontent.com/zyvorai/kairon/v0.10.2/charts/kairon/values-production.yaml

curl -fsSL -o kaironctl https://github.com/zyvorai/kairon/releases/download/v0.10.2/kaironctl-linux-amd64
chmod +x kaironctl && sudo mv kaironctl /usr/local/bin/      # or: kubectl krew install kairon

kaironctl create demo --image /var/lib/fluxvm/images/ubuntu.qcow2 --cpu 2 --memory 2Gi

生产配置会将镜像标签固定为 Chart.AppVersion,并启用 webhook、命名空间隔离、网络默认拒绝和迁移数据平面 TLS。镜像:ghcr.io/zyvorai/kairon-{controller,node,ui},带有签名、校验和及 SBOM。

从笔记本电脑部署到裸机主机,由主机负责构建,因此笔记本电脑无需安装 Go 或 Node,最后还会运行冒烟测试:

./scripts/deploy-remote.sh user@host --remote-build --with-controller --with-ui --with-console --self-test=quick

不使用 --remote-build 时,二进制文件会在本地交叉编译,然后作为静态文件发送。无论采用哪种方式,仪表板和控制台中继均使用 HTTPS。所有标志和部署流程 →

之后,在任何安装环境中:kaironctl doctor 会检查控制平面,kaironctl selftest 会启动一台 CirrOS VM,以端到端验证整个流程。

从源代码、kind 或原始清单安装
git clone https://github.com/zyvorai/zyvor-kairon.git && cd zyvor-kairon
make docker-build
helm upgrade --install kairon ./charts/kairon -n kairon-system --create-namespace
# or: kaironctl install   (embedded Helm SDK, no helm binary needed)

原始清单:kubectl apply -f deploy/crd.yaml -f deploy/rbac.yaml -f deploy/controller.yaml -f deploy/node.yaml,仪表板还需应用 deploy/ui.yaml;仅当启用增量 S3 备份时,才应用 deploy/rbac-cbt-backup.yaml。

要求
  • Kubernetes 集群中的 VM 主机必须运行 Linux,并提供 /dev/kvm。
  • 每台 VM 主机上都要运行 FluxVM(默认地址为 127.0.0.1:7788)。
  • 使用 eBPF 边缘功能时:内核必须支持 BTF 和 cgroup v2,并且 dataplaneMode: ebpf。
后续步骤位置
从头到尾创建第一台 Machine入门指南
所有随附内容随附内容
所有命令CLI 参考
硬件验证信息兼容性矩阵

运维

# Relocate
kaironctl migrate demo --strategy cold --target-node worker-2
kaironctl migrate demo --strategy live --target-node worker-2 --mode pre-copy
kaironctl evacuate worker-1 --wait

# See the network from the VM's point of view
kaironctl network status demo
kaironctl network drop-reasons demo
kaironctl network identity demo

# Hand the fleet to an AI agent
kaironctl mcp serve                  # add --allow-write for power, snapshot, capture and claims (audited)
kaironctl agent diagnose machine/demo   # ranked causes; adds a model summary when KAIRON_LLM_URL is set

# Dashboard (HTTPS; self-signed unless ui.tls.secretName is set)
kubectl -n kairon-system port-forward svc/kairon-ui 18082:18082   # then https://localhost:18082
kaironctl ui                         # or through the API server, no port-forward

成熟度

领域状态
Machine 生命周期、MachineSet、实例类型、配额、预算稳定
容量感知调度、节点范围的 watch、控制器高可用稳定
冷迁移和疏散稳定
安全实时迁移和 NeedsRecovery预览版;2026-10-14 在双主机实验环境中运行,两端均在匹配的 QEMU 上通过;NeedsRecovery 演练 6 次中通过 5 次,另有 1 次原因不明的失败;尚未纳入 nightly CI(COMPATIBILITY)
自适应实时迁移(自动收敛、切换到 post-copy、zstd)实验性;2026-10-14 在双主机实验环境中通过自适应测试用例,尚未纳入 nightly 工作流(COMPATIBILITY)
eBPF VM 边缘、流量、丢弃、捕获预览版;单主机实验环境测试通过
来宾静默的 CSI 快照稳定
带 SSO 和 VNC 控制台的 kairon-ui稳定
面向 AI Agent 的 MCP 服务预览版;使用官方 SDK 通过 CI 端到端测试
CPU/内存热插拔仅支持扩容(QEMU)

v0.10.2 是最新版本(基于 v0.10.1 的补丁版本,修复了发布流水线;v0.10.1 添加了 MCP 服务镜像和 MCP Registry 列表)。2026-10-14 在真实实验环境中进行了双主机实时迁移(冷迁移、源端故障、控制器故障切换、所有 3 种自适应用例以及 post-copy 源端故障,均在匹配的 QEMU 10.2.1 上双向通过;高写入负载下的普通 pre-copy 未能收敛;NeedsRecovery 演练 6 次中通过 5 次,另有 1 次原因不明的失败,导致迁移停留在 Adopting)。目前尚未进行实时迁移与 eBPF 组合测试,也尚无 nightly CI,因此仍处于预览阶段。自适应实时迁移在其矩阵用例通过 nightly 实验室工作流之前,仍处于实验阶段。尚未解决的问题详见 docs/STATUS.md;后续计划见 ROADMAP.md。

文档

目标文档
入门docs/getting-started.md
发布内容docs/WHAT_SHIPS.md
架构ARCHITECTURE.md · docs/architecture.md
开发者生态SDK、模板、CI 和集成
AI Agent 和 MCPdocs/ai-agents.md
状态与不足docs/STATUS.md
硬件兼容矩阵docs/COMPATIBILITY.md
路线图ROADMAP.md
安全SECURITY.md · OpenSSF
参与贡献CONTRIBUTING.md

开发

make test-race && make cover-check      # Go tests with the race detector, coverage gate
make build smoke                        # binaries and smoke test
cd web && npm install && npm run dev    # dashboard UI

请从 CONTRIBUTING.md 开始;依赖规则见 docs/DEPENDENCIES.md。


Zyvor 技术栈的一部分

产品与 Kairon 的配合角色
Kairon在 Kubernetes 上运行 VM,无需 KubeVirt
FluxVMKairon 所运行的 VMM 层:QEMU、Cloud Hypervisor、Firecracker 及其自有管理程序、eBPF VM 边缘、沙箱、分叉
Atlas存储:kairon-controller 通过 Atlas 配置 Machine 卷、快照和 S3 备份
Machina在纯 Linux + KVM 上构建私有云:集群、HA/DRS、Fleet Cloud、原生 eBPF、Zyra AI
GuestKit与 Kairon 配套:来宾系统内 Agent、离线检查与修复、按容器配置 eBPF 策略

→ zyvor.dev


支持

在 Apache-2.0 许可下免费提供。如果它对你有帮助,你可以捐赠任意金额:https://rzp.io/rzp/utwdYh3。捐赠完全自愿,用于支持开发和维护。捐赠不是购买:不会因此获得支持、SLA、功能、优先权或许可证,也不能抵税(Zyvor AI Labs Private Limited 是一家公司,不是慈善机构)。Zyvor Enterprise(受支持的版本、SLA、指定联系人和企业功能)为独立服务:[email protected]。

许可证

Kairon 基于 Apache License 2.0 免费开源(见 NOTICE),可免费使用、修改并用于生产环境。这一点不会改变。

Zyvor Enterprise 提供生产团队所需的服务:受支持的版本、部署和升级指导、优先事件分诊、指定技术联系人以及全天候关键问题受理。方案和条款:docs/SUBSCRIPTION-MODEL.md · 定价 · [email protected]。

Bug 和功能请求 → GitHub Issues。请通过 [email protected] 或 GitHub 私密漏洞报告 私下报告漏洞;详见 SECURITY.md。参与贡献:CONTRIBUTING.md。


### 准备好弃用 `virt-launcher` 了吗?

预约演示 30 天 PoC 定价 联系销售 在 GitHub 上点星

原生 macOS

Kairon 可在 Apple silicon 上原生构建和运行,并可通过 FluxVM 的 vz 后端将 Machines 调度到 Mac 上。有关已验证的内容和限制,请参阅 docs/macos.md。

适合居家的 Mac mini、适合团队的 Mac Studio、用于开发的 MacBook Pro

每台 Mac 都会成为 Kubernetes Node:可以是家中的 Mac mini、供团队使用的 Mac Studio,也可以是来去不定的 MacBook Pro。Kairon 根据可分配的统一内存放置 Machines,FluxVM 负责运行它们,而 Velora 则在同一硬件上提供私有的 OpenAI 兼容 LLM 端点。几台 Mac Studio 就能组成安静、低功耗的本地推理集群。

由 Mac 组成的私有 LLM 集群

已验证:在 Apple M4、macOS 27.2 上,Mac 注册为 Ready Node,vz Machine 已完成调度、启动、SSH 和删除。**尚未验证:**多 Mac 集群、Thunderbolt RDMA。集群指南包含多 Mac 示例(examples/macos-fleet.yaml)、容量规划和路线图,案例参考 GK Servis 的 Mac Studio 案例研究:docs/macos-cluster.md。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。