mcpField
K
Kairon

Kairon

ローカル
github.comクラウド・インフラ206 日前に更新

Kairon について

Kairon は Kubernetes で仮想マシンをスケジュールし、KVM 上で実行するシステムです。VM クラスターを運用するチーム向けに、単一の Machine CRD で複数のハイパーバイザーを扱い、ネットワークポリシーや診断機能、エージェント向け機能を備えています。

主な機能

  1. 01Kubernetes による VM スケジューリング
  2. 02単一の CRD で四つのハイパーバイザーを利用
  3. 03VM のネットワーク境界に eBPF ポリシーを適用
  4. 04CLI による診断と運用操作
  5. 05エージェントセッションとサンドボックスに対応

活用シーン

  1. 01Kubernetes クラスターで VM ワークロードを実行
  2. 02CI やエージェント向けの隔離 VM を作成
  3. 03VM のネットワークポリシーとフローを確認
  4. 04VM またはクラスターの障害を診断

MCP 対応

`kaironctl mcp serve` は Machine、ポリシー、リアルタイムのネットワークデータを 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

Book a demo 30-day PoC Quickstart

Kairon:Kubernetes 上の本物の VM。Pod のふりはしません

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 ダッシュボード:概要、マシン、移行、スナップショット、ノード、ネットワークポリシー、全ネームスペース表示

本番クラスターではなく、ローカルのサンプルデータスタックで撮影したダッシュボードのツアーです(詳細)。

Kairon:Pod のふりをしない VM。KubeVirt v1.9.0 との比較:アイドル時のコントロールプレーンは 14 倍軽量、5 台の VM への SSH 接続は 7.4 倍高速


新着情報

実験的な運用機能: 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 QoSMachine のルートディスクとデータディスクに 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 containerDiskspec.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の比較:アイドル時のコントロールプレーンメモリは14倍少なく、VM 1台のSSH接続は2.9倍速く、5台では7.4倍速く、VMごとのメモリは同じ

KaironKubeVirt v1.9.0
アイドル時のコントロールプレーンメモリ63 MiB905 MiB14倍少ない
VM 1台のSSH接続まで23.7 s67.6 s2.9倍速い
VM 5台のSSH接続まで、中央値24.8 s184.7 s7.4倍速い
VMごとのメモリ(VM 5台)660 MiB661 MiB同等:同じQEMU、同じゲスト

同じk3sノード、同じUbuntu 24.04イメージ、同じ1 vCPU / 512 MiBのゲストとcloud-initシードを使用し、1つのスクリプトで両方を実行しました。準備完了とは、ゲストのsshdが応答する状態を指します。どちらの場合もVMにかかるコストは同じです。削減できるのは、KubeVirtがVMの周囲に用意するすべての要素です。手法、生のJSON、注意事項(VM 10台の実行を含む)については、docs/benchmarksをご覧ください。


Kairon と KubeVirt の比較

Kairon と KubeVirt の比較:同じ kubectl と KVM、その間のスタックは半分

取り除くレイヤーが一つ増えるごとに、パッチを適用する対象が一つ減り、読むログが一つ減り、午前2時にクラッシュするプロセスが一つ減ります。

KaironKubeVirt
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 → KVMvirt-handler → virt-launcher → libvirt → QEMU
ハイパーバイザーQEMU、Cloud Hypervisor、Firecracker、FluxVMlibvirt 経由の QEMU
MicroVM とウォームプールFirecracker/FluxVM サンドボックス、FluxVM ウォームプール(24 ms の主張を実測)対象外
スケジューリング実際の割り当て可能容量を考慮した Kairon の配置Pod スケジューラーと virt の追加機能
コントロールプレーンのコードGo 標準ライブラリのみ(コントローラー、ノード)client-go/controller-runtime の大規模な依存範囲
VM ネットワークeBPF VM エッジ:なりすまし対策、DNS/SNI ポリシー、レート制限、フロー、破棄理由、pcapPod 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 installOperator と 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 エージェントを安全に

エージェントプレーン:AI が提案し、Kairon が検証します。ask と diagnose は厳格なコンパイラーとバリデーターに渡され、続いてハッシュチェーン監査ログを経て、クラスターに到達します。封印済みクレーム、エッジの Warning イベント、Machine ごとのベースライン異常スコアリング、cosign によるイメージ検証、SEV-SNP/TDX アテステーション、監査済み MCP 書き込みツール

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 スパンも備えています。可観測性 → · セキュリティ →


ダッシュボード

Kairon ダッシュボード:インスペクターを開いた状態の Machines テーブル
概要
概要:フリートの健全性とノードの使用状況
移行
NeedsRecovery が表示された移行
一括操作を備えた全ネームスペースの Machines
全ネームスペース、一括 Start/Stop

3 台の Machine を選択して一括停止 ネームスペースを切り替え、Machines テーブルをフィルタリング

その他のページ:ギャラリー。スクリーンショットとクリップは docs/ux のサンプルデータスタックから生成されるため、ラボクラスターではなく、実際のダッシュボードのビルドを示しています。


全体の仕組み

アニメーション:クライアントが Kubernetes API と通信し、kairon-controller が Machine を配置し、kairon-node がそれらを FluxVM として調整します アニメーション:Machine のライフサイクル(Pending、Running、Paused、Halted、Stopped、Failed) アニメーション:相互認証 TLS リンクを介した 2 つのノード間のライブマイグレーション(プレビュー) アニメーションの棒グラフ:アイドル状態のコントロールプレーンのメモリ使用量と SSH 接続までの時間を、Kairon と KubeVirt v1.9.0 で比較
v0.10.0 の新機能、アニメーション:エージェントセッション、アイドル状態のサンドボックス、クラスター間 DR、メンテナンスと DRS、エラスティックメモリ、増分バックアップ、Mac Fabric アニメーション:エージェントのコマンドは AgentSession を通じてサンドボックス VM に渡されます。git push は管理者の承認を待ち、許可されたホストへのエグレスは通過し、不明なホストへの接続は拒否されます アニメーション:サンドボックス Machine がアイドル状態になり、自ら一時停止し、次の接続で復帰します アニメーション:サイト A がサイト B にレプリケートされ、サイト A が失われた後、サイト B で db、次に web が起動し、DNS が切り替わります アニメーション:ノードがメンテナンスモードに入り、Machine が移行または休止し、DRS が負荷の高いノードを再調整します アニメーション:ホストのメモリに負荷がかかると、各 Machine の最小値まで風船が膨らみ、その後しぼみます アニメーション:フルバックアップ、変更されたブロックの 2 回の増分バックアップ、S3 上の合成フルバックアップ アニメーション:Apple の機能に基づいて Mac にスケジュールされた Machine が、Thunderbolt 経由で MacNetwork に参加します

2 つの 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ホストごとのエージェント: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 で署名されています。

ノート 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 エージェントと 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 と連携する役割
KaironKubeVirt を使わずに Kubernetes 上で VM を実行
FluxVMKairon が実行される VMM レイヤー:QEMU、Cloud Hypervisor、Firecracker、独自ハイパーバイザー、eBPF VM エッジ、サンドボックス、フォーク
Atlasストレージ:kairon-controllerが Atlas を通じて Machine ボリューム、スナップショット、S3 バックアップをプロビジョニング
Machina通常の Linux + KVM 上のプライベートクラウド:フリート、HA/DRS、Fleet Cloud、ネイティブ eBPF、Zyra AI
GuestKitKairon と連携:ゲスト内エージェント、オフラインでの検査と修復、コンテナーごとの 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では、本番環境のチームが求めるサポート対象リリース、デプロイとアップグレードのガイダンス、インシデントの優先トリアージ、専任技術窓口、重大な問題に対する24時間365日の受付を提供します。プランと利用条件:docs/SUBSCRIPTION-MODEL.md · 料金 · [email protected]。

バグと機能リクエスト → GitHub Issues。脆弱性は[email protected]またはGitHub の非公開脆弱性報告から非公開で報告してください。SECURITY.mdを参照してください。コントリビューション:CONTRIBUTING.md。


### `virt-launcher` を廃止する準備はできていますか?

デモを予約 30日間のPoC 料金 営業に問い合わせる GitHubでスターを付ける

macOSネイティブ

KaironはAppleシリコン上でネイティブにビルド、実行でき、FluxVMのvzバックエンドを通じてMacにマシンをスケジュールできます。検証済みの内容と制限については、docs/macos.mdをご覧ください。

自宅用のMac mini、チーム用のMac Studio、開発用のMacBook Pro

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

Macで構成されたプライベートLLMクラスター

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。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。