Kairon について
Kairon は Kubernetes で仮想マシンをスケジュールし、KVM 上で実行するシステムです。VM クラスターを運用するチーム向けに、単一の Machine CRD で複数のハイパーバイザーを扱い、ネットワークポリシーや診断機能、エージェント向け機能を備えています。
主な機能
- 01Kubernetes による VM スケジューリング
- 02単一の CRD で四つのハイパーバイザーを利用
- 03VM のネットワーク境界に eBPF ポリシーを適用
- 04CLI による診断と運用操作
- 05エージェントセッションとサンドボックスに対応
活用シーン
- 01Kubernetes クラスターで VM ワークロードを実行
- 02CI やエージェント向けの隔離 VM を作成
- 03VM のネットワークポリシーとフローを確認
- 04VM またはクラスターの障害を診断
MCP 対応
`kaironctl mcp serve` は Machine、ポリシー、リアルタイムのネットワークデータを MCP クライアントに公開します。書き込み操作には `--allow-write` が必要です。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
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.2KAIRON_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 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ghcr.io/zyvorai/kairon-mcp:v0.10.2stdioツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Kairon

Pod のふりをしない VM。
Kubernetes がスケジュールし、KVM 上で直接実行する本物の仮想マシンです。 VM ごとの virt-launcher Pod も、ホットパス上の libvirt も、乱立するオペレーターもありません。Machine は望ましい状態を表し、kairon-controller が配置し、kairon-node が QEMU、Cloud Hypervisor、Firecracker、または FluxVM 独自のハイパーバイザーを使って FluxVM 上で実行します。
VM ごとの Pod はゼロ · 4 種類のハイパーバイザーを 1 つの CRD で · すべての VM エッジで eBPF を使用 · サイレントなスプリットブレインなし · AI エージェントを標準搭載(MCP)
本番クラスターではなく、ローカルのサンプルデータスタックで撮影したダッシュボードのツアーです(詳細)。

新着情報
実験的な運用機能: Kairon Rehearsal は、分離された CSI コピー上でアップグレードをテストします。高度な運用機能では、ヘルスチェックを条件とする構成変更計画、アプリケーション復旧の検証、トラフィック/RTT に基づく配置の推奨事項、修正の検証を含むインシデントの再現が追加されています。実行可能なシナリオと障害時のテストも含まれます。VM/CSI とホスト分離のハードウェア適格性評価は、引き続き保留中です。
v0.6.0 以降の新機能(最新タグ:v0.10.2。インシデントバンドルまでの項目は v0.10.0 で追加):
| エージェントセッション(実験的) | AgentSession は FluxVM エージェントセッションです。git ワークスペース、コンパイル済みの送信通信/ファイルシステム/プロセスポリシー、予算、チェックポイント、ライブフォーク、イベント台帳を備えたサンドボックス VM で、Machine と同様にスケジュールされ、クォータがカウントされます。コマンドは管理者の承認待ちにできます。チャンク単位のアップロード、インタラクティブシェル、ゲストには見えない認証情報の付与、Mac ゲストの画面表示に対応します。kaironctl session、session_* MCP ツール、両方の SDK、ダッシュボードページから利用できます。FluxVM 0.4.8 以降の Mac ノードが必要です。ガイド → |
| 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 をコピーしてホスト上でコンパイルするため、ノート PC に Go、Node、ビルドキャッシュは不要です。最速の手順 → |
| デフォルトで HTTPS | ダッシュボードと VNC コンソールリレーは、生成した証明書または持ち込み証明書を使って、すぐに TLS で接続できます。平文 HTTP は明示的にオプトアウトする設定です。ダッシュボードガイド → |
| Mac Fabric(実験的) | 複数の Mac を 1 つのプールとして扱います。それぞれがチップ、macOS、Rosetta、ネステッド仮想化、Thunderbolt Bridge の情報を公開します。spec.apple は vz Machines をその Mac 上に配置し、MacNetwork は Thunderbolt 経由で異なる Mac 上の Machines に 1 つのプライベートネットワークを提供します。現時点ではシミュレートされた Mac でのみ実行できます。ガイド → |
| クラスタ間 DR(実験的) | MachineProtectionPlan は Machines のグループを S3 に複製し、仕様と復元ポイントを 2 つ目のクラスタに保持します。RPO と RTO の目標を設定できます。kaironctl dr failover は依存関係の順序に従って、そこで Machines を起動します。--planned を指定すればデータ損失はありません。kaironctl dr test は、本番環境の稼働中に、隔離されたネットワークへコピーを復元します。こちらもスケジュール実行に対応します。Machines の VirtualNetwork アドレスは維持され、external-dns によって DNS 名はアクティブなサイトを参照します。ガイド → |
| vGPU プロファイルと GPU のヘルス(実験的) | spec.devices[].profile を指定すると、Machine は GPU 全体ではなく GPU の一部(NVIDIA vGPU または MIG ベースのプロファイル)を使用します。空きインスタンス数と GPU メモリに基づいてスケジュールされ、Machine の起動時に割り当てられ、停止時に返却されます。異常な GPU は使用されません。ガイド → |
| アクセラレータープロファイル(実験的) | クラスタースコープの MachineAcceleratorProfile で、アクセラレーターの構成(数、ベンダーまたは vGPU プロファイル、デバイスあたりのメモリ、ピアツーピア通信用の単一 PCIe ルート、単一 NUMA ノード、GPU の隣にある RDMA NIC)を定義します。Machines は spec.accelerators でプロファイルを要求します。プロファイルの status には、各ノードで追加配置できる Machine の数が表示されます。ガイド → |
| ノードのメンテナンスと DRS(実験的) | kaironctl node maintenance enter NODE はノードをスケジュール対象外にし、そのノード上の Machines を移行させ、移行先がないものは停止または休止させます。終了すると、すべて元に戻ります。DRS(`-drs-mode recommend |
| ディスクごとの I/O QoS | Machine のルートディスクとデータディスクに IOPS と帯域幅の制限(io.throttle)を設定できます。バーストに対応し、QEMU によって適用され、実行中の Machine に対して変更できます。ガイド → |
| NVMe-oF ストレージ(実験的) | Kairon の CSI ドライバーは、カーネル NVMe ターゲットを通じてネイティブマルチパス対応の nvme-tcp および nvme-rdma ボリュームをプロビジョニングします。raw Block ボリュームは Machine をその場で起動でき、ディスクごとの QEMU I/O を備えたデータディスクとしてアタッチできます。ガイド → |
| 休止(実験的) | spec.powerState: Hibernated は RAM とデバイスの状態をディスクに保存してノードを解放します。再開すると、同じ起動状態から処理を続行します。共有ストレージがあれば、元のノードまたは互換性のあるノードで再開できます。ガイド → |
| 仮想ネットワーク(実験的) | VirtualNetwork は、Geneve オーバーレイを使用して eBPF でルーティングされる分離 IPv4 ネットワークです。ネットワークごとのゲートウェイ、送信 SNAT、フローティング IP に対応します。ガイド → |
| メモリの弾力的な利用(実験的) | ノードの搭載量を超える Machine メモリを実行できます。最低保証量、virtio-balloon による再利用ループ、スケジューラーが考慮する KaironMemoryPressure シグナルを備えています。ガイド → |
| トポロジーを考慮した配置(実験的) | NUMA、GPU、NIC、NVMe の局所性に対応します。スケジューラーはノード、正確な CPU、NUMA メモリ、PCI デバイスをまとめて選択します。ガイド → |
| インシデントバンドル(実験的) | kaironctl diagnose machine --deep は、Machine のクラスタ状態に加えて、そのノードの QMP、cgroup、コンソール、データプレーン、pcap を含む、秘匿化済みの tar.gz を 1 つ作成します。オプトインでゲストメモリダンプも取得できます。ガイド → |
| ライフサイクル、診断、名前空間(v0.9) | kaironctl doctor、connectivity test、logs、events、sysdump、config、history/rollback に対応します。kaironctl upgrade は以前の Helm values を保持します。ダッシュボードには、名前空間セレクター、全名前空間の Machines 表示、一括 Start/Stop 機能があります。リリースノート → |
v1 API と新しいダッシュボード | kairon.zyvor.dev/v1 がストレージバージョンです(v1beta1/v1alpha1 は提供されていますが、非推奨です)。ダッシュボードを再設計し、Storage(Atlas)、Pools & claims、Images、Backups の各ページを追加しました。kairon-ui は :18082 でリッスンするようになりました。ガイド → |
| ネイティブ macOS ノード | kairon-node は Apple シリコン Mac を Node として登録し、FluxVM 経由で backend: vz Machines を実行します。M4 で検証済みです。複数 Mac のクラスタにはまだ対応していません。ガイド → · Mac クラスタ → |
| 開発者エコシステムキット | Python および TypeScript SDK、ダイジェスト固定のレシピ、使い捨て VM を使用する GitHub Actions、Terraform による構成に対応します。キット → |
| フリートの自動化(実験的) | オプトインの Redfish フェンシング、負荷分散、自動スケーリング、バックアップと復旧の計画、テンプレートクレーム、使用状況 CSV、フリートダッシュボードに対応します。ガイド → |
| Kairon と KubeVirt のベンチマーク | 同じノード、同じゲストで、1 つのスクリプトから両方を操作します。手法と生の JSON は docs/benchmarks にあります。 |
| VMware からのインポート | kaironctl import ova は OVA をストリーミングで一度読み込み、OVF から vCPU、メモリ、ファームウェアを取得します。FluxVM がディスクを変換し、修復します。ガイド → |
| ウォームプールとクレーム | MachinePool は起動済みの Machines を待機状態に保ちます。MachineClaim は 1 回の reconcile tick でそのうちの 1 つをバインドし、クレームごとの送信通信許可リストにも対応します。ガイド → |
| VM フォーク | kaironctl fork と MCP の fork_machine ツールは、実行中の Machine を FluxVM 経由でフォークします。ガイド → |
| エージェントサンドボックス(実験的) | 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 を Halt します。プリエンプトする側が離れると、元の Machine は再開します。ガイド → |
| 再起動後もホットプラグを維持 | 停止/起動後も、ホットプラグした CPU とメモリで起動します。hotplug-persist はその内容を spec に書き戻します。ガイド → |
| Halted からの再開後もホットプラグを維持 | Halted 状態の Machine を再開すると、CPU とメモリが Halt 前のサイズにホットプラグで戻ります。ガイド → |
| テンプレートを引き継ぐクレーム | createMachine プールクレームは、テンプレートのリソース、カーネル、cloud-init、NUMA、セキュリティ、ゲストエージェント、TTL、フォワード設定を取得します。引き継がれないものはすべて machineWarnings に一覧表示されます。ガイド → |
| 日次スナップショットスケジュール | MachineSnapshotSchedule で dailyAt: "02:30"、安定したジッター、maxAgeSeconds による保持を設定できます。ガイド → |
| CPU ピニングの検出とデプロイ | deploy-remote.sh --reserved-cpus=0-1 または Helm の node.cpuPinning を使うと、kairon-node に kubelet の CPU 状態が渡され、pinnable-cpus が検出されます。ガイド → |
| エージェントアクションの承認 | 破壊的な MCP ツールは、1 回限りの kaironctl approve による承認を待ちます。ガイド → |
| 古いノードからの退避 | オプトイン機能です。evacuate=true とマークされた Machines は、kaironctl node fence で死亡が確認されたノードから隔離されます。ガイド → |
| イメージカタログと ISO インストール | クラスタースコープの MachineImage(ディスクまたは ISO、ダイジェストで固定)、SATA 上のインストールメディアを指定する spec.cdroms、空のルートディスク、空のブートボリュームへのシードに対応します。CDI は使用しません。ガイド → |
| OCI containerDisk | spec.image.source.oci は、レイヤーごとのストリーミング検証を行いながら、ダイジェストで指定したディスクイメージを取得します。ガイド → |
Kaironを選ぶ理由
| こんなとき… | Kaironなら… |
|---|---|
すべてのVMにvirt-launcherポッド、libvirt、QEMUラッパーが付いてくる | VMごとに必要なのはVMだけです。 kairon-nodeがFluxVMのREST APIと通信し、そのAPIがKVMと通信します。 |
| 移行が途中で失敗し、どちらのコピーが正しいのか誰にも分からない | NeedsRecovery。 コミットが曖昧な場合は処理を停止して人に判断を求めます。推測したり、2つのコピーを同時に実行したりすることはありません。 |
| CIやエージェントにはマイクロVMが必要で、データベースにはフルVMが必要 | 1つのMachine CRDで4つのハイパーバイザーに対応:QEMU、Cloud Hypervisor、Firecracker、FluxVM。spec.backendでMachineごとに選択できます。 |
| VMネットワーキングにPod CNIのトリック、マスカレード、Multusが必要 | すべてのVMタップにeBPFエッジを配置:なりすまし対策、DNSおよびTLS-SNIポリシー、レート制限、フロー、属性付きドロップ、パケットキャプチャに対応します。 |
| コントロールプレーンのデバッグにはclient-goのコードベースを読む必要がある | コントローラーとノードは標準ライブラリのみを使用(依存関係ポリシー)。午後のうちに読み切れるほどコンパクトです。 |
| AIエージェントにフリートを把握・操作させたい | kaironctl mcp serve:Hermes AgentやあらゆるMCPクライアント向けに、Machine、ポリシー、リアルタイムのネットワークデータを提供します。書き込みは--allow-writeで許可する場合に限られます。また、ghcr.io/zyvorai/kairon-mcpイメージとして公開され、MCP Registryにio.github.zyvorai/kairon(v0.10.2)として登録されています(Registryからインストール)。 |

数値で見る比較

| Kairon | KubeVirt v1.9.0 | ||
|---|---|---|---|
| アイドル時のコントロールプレーンメモリ | 63 MiB | 905 MiB | 14倍少ない |
| VM 1台のSSH接続まで | 23.7 s | 67.6 s | 2.9倍速い |
| VM 5台のSSH接続まで、中央値 | 24.8 s | 184.7 s | 7.4倍速い |
| VMごとのメモリ(VM 5台) | 660 MiB | 661 MiB | 同等:同じQEMU、同じゲスト |
同じk3sノード、同じUbuntu 24.04イメージ、同じ1 vCPU / 512 MiBのゲストとcloud-initシードを使用し、1つのスクリプトで両方を実行しました。準備完了とは、ゲストのsshdが応答する状態を指します。どちらの場合もVMにかかるコストは同じです。削減できるのは、KubeVirtがVMの周囲に用意するすべての要素です。手法、生のJSON、注意事項(VM 10台の実行を含む)については、docs/benchmarksをご覧ください。
Kairon と KubeVirt の比較

取り除くレイヤーが一つ増えるごとに、パッチを適用する対象が一つ減り、読むログが一つ減り、午前2時にクラッシュするプロセスが一つ減ります。
| Kairon | KubeVirt | |
|---|---|---|
| VM とは | 独自の CRD とライフサイクルを持つ Machine | 正体を隠した Pod(virt-launcher) |
| 実行中の VM あたりの Pod 数 | 0 | 各 VM に virt-launcher Pod が 1 つ |
| アイドル状態のコントロールプレーンで、SSH 接続する VM が 5 台の場合(実測値) | 63 MiB、25 秒 | 905 MiB、185 秒 |
| KVM までの経路 | kairon-node → FluxVM REST → KVM | virt-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 ポリシー、レート制限、フロー、破棄理由、pcap | Pod CNI、マスカレード/ブリッジバインディング、Multus |
| ネットワークポリシー | MachineNetworkPolicy + NetworkSecurityGroup、Cilium との同期は任意 | Pod の NetworkPolicy |
| ライブマイグレーション | mTLS によるノード間の準備/コミット/中止、暗号化されたデータプレーン | virt スタック内の libvirt マイグレーション |
| コミット結果が不明なマイグレーション | NeedsRecovery:スプリットブレインを黙って発生させません | スタックに依存する復旧 |
| 1 台の VM のパケットキャプチャ | kaironctl network capture demo --seconds 15 | ランチャー Pod に Exec し、必要なツールを自分で用意 |
| AI エージェント | MCP サーバーを内蔵(kaironctl mcp serve) | 含まれていません |
| ブラウザーコンソール | Machine ごとの許可リストと Kubernetes RBAC を備えた noVNC リレー | virtctl vnc/外部 UI |
| 信頼できる唯一の情報源 | Kubernetes API のみ | Kubernetes と virt の抽象化 |
| インストール | OCI から 1 つの Helm チャート、または kaironctl install | Operator と CR、イメージ用の CDI |
| KubeVirt を選ぶ場合 | 現時点で長年にわたるエコシステムとの統合(OpenShift Virtualization、Harvester)が必要な場合 |
以前のレイヤースタックの図:docs/assets/kairon-vs-kubevirt.jpg。
得られるもの
Pod ではなく Machine
インスタンスタイプ、NUMA と CPU のピンニング、Windows ゲスト、PVC と CSI からのブート、マルチボリューム virtiofs、CPU/メモリのホットプラグ、一時停止と停止、cloud-init、ポートフォワードに対応した Machine と MachineSet。望ましい状態は Kubernetes に保存され、ノードが数秒ごとに調整します。提供機能 →
kaironctl create demo --image /var/lib/fluxvm/images/ubuntu.qcow2 --cpu 2 --memory 2Gi --backend qemu
kaironctl get machines
推測で処理しないマイグレーション
コールドマイグレーション、ノード退避、相互 TLS と暗号化されたデータプレーンを使った安全なライブマイグレーションに対応しています。ノードを Cordon すると、コントローラーが MachineDisruptionBudget によるスロットリングを行いながら退避できます。コミット結果が不明な場合、Machine は NeedsRecovery になり、2 つの実行中コピーが生じるリスクを避けて、オペレーターの対応を待ちます。移行 → · NeedsRecovery の運用手順 →
すべての VM に eBPF エッジ
各 VM の tap は FluxVM の eBPF データプレーンを利用します。なりすまし対策、DNS と TLS-SNI の許可リスト、レート制限に対応し、破棄の理由(spoof_ip、dns_deny、sni_deny、rate_limit、…)を特定できます。ポリシーは MachineNetworkPolicy/NetworkSecurityGroup として記述し、CLI とダッシュボードの Network パネルでリアルタイムに確認できます。1 つのコマンドで 1 台の VM のパケットをキャプチャできます。VM エッジ → · ネットワークファブリック →
kaironctl network flows demo --limit 20
kaironctl network drops demo
kaironctl network capture demo --seconds 15 --output demo.pcap
AI エージェントを安全に

kaironctl mcp serve は stdio 経由で Model Context Protocol を使用します。Hermes Agent、Claude、Cursor などの MCP クライアントは、Machine の一覧表示、ポリシーの読み取り、フロー、ドロップ、キャプチャの取得ができます。電源、スナップショット、キャプチャ、封印済みクレーム、ポリシー適用のツールは --allow-write を指定した場合にのみ表示され、すべての書き込みは最初にハッシュチェーン監査ログへ記録されます。kaironctl agent ask は、OpenAI 互換モデルを使って平易な英語のリクエストを検証済みの提案に変換し、kaironctl agent diagnose は Machine や移行が停止している理由を順位付けします。どちらも何も適用せず、調整ループ内でモデルが実行されることもありません。公式 MCP SDK を使って、CI でエンドツーエンドのテストを実施しています。AI エージェント → · エージェントプレーン →
スナップショットと復旧
CSI VolumeSnapshots 上の MachineSnapshot、MachineSnapshotRestore、MachineSnapshotSchedule に対応し、アプリケーション整合性のあるスナップショットを取得するためにゲストエージェントによるファイルシステムのフリーズを行います。FluxVM を通じた VM メモリのスナップショット、および災害復旧用の CRD バックアップ/復元スクリプトも利用できます。スナップショット →
フリートのガードと運用
MachineQuota、MachineDisruptionBudget、MigrationPolicy、オプトイン方式のアドミッション Webhook に対応しています。kairon-ui ダッシュボードでは、SSO、オペレーターごとのアカウント、ブラウザー内 VNC コンソールを利用できます。Prometheus メトリクスとアラート、コントローラー HA リース、オプトイン方式の OpenTelemetry スパンも備えています。可観測性 → · セキュリティ →
ダッシュボード
![]() 概要:フリートの健全性とノードの使用状況 | ![]() NeedsRecovery が表示された移行 | ![]() 全ネームスペース、一括 Start/Stop |
その他のページ:ギャラリー。スクリーンショットとクリップは docs/ux のサンプルデータスタックから生成されるため、ラボクラスターではなく、実際のダッシュボードのビルドを示しています。
全体の仕組み
v0.10.0 の新機能、アニメーション:エージェントセッション、アイドル状態のサンドボックス、クラスター間 DR、メンテナンスと DRS、エラスティックメモリ、増分バックアップ、Mac Fabric

| コンポーネント | ポート | 役割 |
|---|---|---|
kairon-controller | :32301 health、:8443 webhook | 配置、移行ステートマシン、フェンシング、スナップショット、クォータ、予算 |
kairon-node | :32302 health、:9443 mTLS peer、:8090 console | ホストごとのエージェント:FluxVM ライフサイクル、eBPF ポリシー、ライブマイグレーションピア、エッジ Warning イベント、機密コンピューティング機能ラベル |
kairon-ui | :18082(HTTPS) | オプションのダッシュボード:Machine、移行、スナップショット、ストレージ(Atlas)、プールとクレーム、イメージ、バックアップ、ネットワークパネル、VNC コンソール。ダッシュボードガイドを参照してください |
kaironctl | — | CLI と kubectl kairon プラグイン、組み込み Helm インストーラー、MCP サーバー |
| FluxVM | 127.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 で署名されています。
ノート PC からベアメタルホストにデプロイする場合は、ホスト上でビルドするため、ノート PC に 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 も適用してください。
要件
- VM ホストで
/dev/kvmが利用できる Linux の Kubernetes クラスター。 - 各 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、インスタンスタイプ、クォータ、予算 | 安定 |
| 容量を考慮したスケジューリング、ノード単位の監視、コントローラーの HA | 安定 |
| コールドマイグレーションと退避 | 安定 |
セキュアなライブマイグレーションと NeedsRecovery | プレビュー。2 ホストのラボで 2026-10-14 に実施。QEMU のバージョンを一致させ、両方向でテスト済み。NeedsRecovery のドリルは 6 回中 5 回成功、原因不明の失敗が 1 回あり、まだナイトリー CI には含まれていません(COMPATIBILITY) |
| 適応型ライブマイグレーション(自動収束、ポストコピーへの切り替え、zstd) | 実験的。2 ホストのラボで 2026-10-14 に適応型のケースをテストし、成功しました。ナイトリーワークフローでは未実施です(COMPATIBILITY) |
| eBPF VM エッジ、フロー、ドロップ、キャプチャ | プレビュー。単一ホストのラボで問題なし |
| ゲストの静止化に対応した CSI スナップショット | 安定 |
SSO と VNC コンソールを備えた kairon-ui | 安定 |
| AI エージェント向け MCP サーバー | プレビュー。公式 SDK を使った CI エンドツーエンドテスト済み |
| CPU/メモリのホットプラグ | 拡張のみ(QEMU) |
最新リリースは v0.10.2 です(リリースパイプラインを修正した v0.10.1 のパッチリリースです。v0.10.1 では MCP サーバーのイメージと MCP Registry の掲載が追加されました)。2026-10-14 に実際のラボ環境で 2 ホスト間のライブマイグレーションを実施しました(コールドマイグレーション、ソース障害、コントローラーのフェイルオーバー、3 つすべての適応型ケース、ポストコピー中のソース障害は、QEMU 10.2.1 のバージョンを一致させた環境で両方向とも成功しました。一方、負荷の高い書き込み中の通常のプリコピーは収束せず、NeedsRecovery のドリルは 6 回中 5 回成功しました。原因不明の失敗が 1 回あり、移行が Adopting 状態のままになりました)。ライブマイグレーションと eBPF を組み合わせた実行はまだなく、ナイトリー CI もまだないため、引き続きプレビューです。適応型ライブマイグレーションは、ナイトリーのラボワークフローでマトリックスのケースに合格するまで、実験的な扱いが続きます。未解決の課題については docs/STATUS.md、今後の予定については ROADMAP.md をご覧ください。
ドキュメント
| 目的 | ドキュメント |
|---|---|
| はじめに | docs/getting-started.md |
| 提供内容 | docs/WHAT_SHIPS.md |
| アーキテクチャ | ARCHITECTURE.md · docs/architecture.md |
| 開発者エコシステム | SDK、テンプレート、CI、インテグレーション |
| AI エージェントと MCP | docs/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 | KubeVirt を使わずに Kubernetes 上で VM を実行 |
| FluxVM | Kairon が実行される 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 と連携:ゲスト内エージェント、オフラインでの検査と修復、コンテナーごとの eBPF ポリシー |
サポート
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では、本番環境のチームが求めるサポート対象リリース、デプロイとアップグレードのガイダンス、インシデントの優先トリアージ、専任技術窓口、重大な問題に対する24時間365日の受付を提供します。プランと利用条件:docs/SUBSCRIPTION-MODEL.md · 料金 · [email protected]。
バグと機能リクエスト → GitHub Issues。脆弱性は[email protected]またはGitHub の非公開脆弱性報告から非公開で報告してください。SECURITY.mdを参照してください。コントリビューション:CONTRIBUTING.md。
macOSネイティブ
KaironはAppleシリコン上でネイティブにビルド、実行でき、FluxVMのvzバックエンドを通じてMacにマシンをスケジュールできます。検証済みの内容と制限については、docs/macos.mdをご覧ください。

すべてのMacがKubernetesノードになります。自宅のMac mini、チーム用のMac Studio、必要に応じて持ち運ぶMacBook Proです。Kaironは割り当て可能なユニファイドメモリに基づいてマシンを配置し、FluxVMがそれらを実行します。また、同じハードウェア上でVeloraが、プライベートなOpenAI互換LLMエンドポイントを提供します。数台のMac Studioで、静かで低消費電力のオンプレミス推論クラスターを構築できます。

Apple M4、macOS 27.2で検証済み:MacがReadyノードとして登録され、vzマシンがスケジュールされ、起動し、SSH接続され、削除されること。未検証:複数Macのクラスター、Thunderbolt RDMA。GK ServisのMac Studio導入事例を参考にした、複数Macのサンプル(examples/macos-fleet.yaml、サイジング、ロードマップを含むクラスターガイド:docs/macos-cluster.md。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。


