このプロジェクトについて

Zyvor Fabricは、KVMを搭載した一般的なLinuxサーバー上に構築されるプライベートクラウド向けのセルフホスト型コントロールプレーンです。API、認証、ネットワーキング、ストレージ、およびモニタリングを単一のRustデーモンであるzyvor-fabricdにパッケージ化しています。VMの実行自体を実装するのではなく、2つのコンパニオンプロジェクトであるFluxVM(REST経由で127.0.0.1:7788でアクセスされるVMエンジン)とGuestKit(初回起動前に使用されるオフラインディスク検査およびカスタマイズツール)の上位に位置するオーケストレーションおよびUXレイヤーとして機能します。 インターフェースと自動化 同一のデーモンが4つの主要なフロントエンドをサポートしています。zyvorctlコマンドラインツール、APIと共に提供されるWebコンソール(デフォルトポート9095)、実行中のfabricdインスタンスに対してVirtualMachineカスタムリソースを調整するKubernetesオペレーター、およびTerraformプロバイダーです。また、Ansibleコンテンツと「Fabric Doctor」プリフライトツールも含まれています。宣言的なVM定義は zyvorctl apply -f で適用でき、VM作成時にはオプションでテナントスコープを指定可能です。READMEによると、デーモンは480以上のRESTエンドポイントと3つのWebSocketチャネルを公開しており、RustとTypeScript全体で約48のRustクレートと約87K行のコードで構成されています。 セキュリティとマルチテナンシー 認証にはJWTを使用し、テナントクレームによってリスト、取得、変更操作のスコープを制限します。プロジェクトでは、RBACロール、監査エクスポート、保存データの暗号化をリストしており、OIDC/SSOおよびSCIMアイデンティティ統合に加え、クライアントチュートリアル資料を備えたOpenStack互換レイヤーをドキュメント化しています。 ネットワーキング READMEでは、混同すべきではない2つのポリシープレーンを区別しています。Fabric SDN(/api/network-policies経由で管理される、ラベル駆動のnftablesホスト分離)と、各VMのホスト側インターフェースにTC/eBPFプログラムをアタッチするVM-edge Network Fabricデータプレーンです。エッジデータプレーンは、VMごとのIPv4/IPv6 CIDR許可リスト(LPMマップ)、L4プロトコル/ポートの強制、Mbps/PPSレート制限、およびVMごとの統計情報とLRUフローレコードをサポートしており、これらはすべて /api/vms/{name}/dataplane/{status,policy,stats,flows} および対応する zyvorctl dataplane サブコマンドを通じて読み書き可能です。ポリシー更新はインプレースのBPFマップ書き換えとして記述されており、再構成中に「すべて許可」となる隙間はなく、短時間の「過剰拒否」ウィンドウが発生することがドキュメントに記載されています。3つのモード(レガシーnftablesのみ、VMエッジでのeBPF、Cilium共存モード)がドキュメント化されています。別途、Service FabricレイヤーがMaglev VIPロードバランシングおよび関連機能を提供します。永続的なポリシーは /var/lib/fluxvm/network-policy に保存され、ピン留めされたプログラムとマップは /sys/fs/bpf/fluxvm 配下に配置されます。汎用的なPCI/VFIOパススルーは、GPUなどのデバイス向けにREST APIを通じて公開されています。 デプロイメント 4つのドキュメント化されたパスが存在します。systemdまたはヘルパースクリプト(ワンコマンドの「ship」フローを含む)によるベアメタルへの直接バイナリ導入、/dev/kvmとホストネットワーキングを使用したローカル評価用のDocker/Podman Compose、特権付きhostNetwork DaemonSet、Helmチャート、およびリモートk3sラボスクリプトを使用したKubernetes、そして既存のデーモンに対するGitOpsワークフロー用のオペレーター専用モードです。Kubernetesの要件には、ノード上の /dev/kvm、特権Podセキュリティレベル、およびビルドホスト上のルート権限を持つコンテナエンジンが含まれます。管理者資格情報はデプロイ時に生成され、ディスクまたは zyvor-fabric-secrets Kubernetes Secret から取得可能です。また、環境変数を使用してこれらを設定またはリセットできます。 評価に関する注意点 READMEには、本プロジェクトのVM-edgeポリシーへのアプローチが、libvirt/nftables、共有ブリッジファイアウォール、QEMUユーザーモードNAT、および一般的なmicroVM+CNIセットアップよりも優れていると主張する比較資料が含まれています。これらはメンテナー自身の主張であり、引用されているいくつかのパフォーマンス数値(ポリシー更新レイテンシなど)はラボでの測定値として記述されています。リポジトリ内の主要なドキュメントセットは、クイックスタート、Kubernetes、Docker、アーキテクチャ、ネットワーキング、Web UX、ホストライフサイクル、ガバナンス、およびセキュリティポリシーをカバーしています。ライセンスはApache-2.0です。