【mNi Cloud】5月~10月の開発状況【国産クラウド】
はじめに
こんにちは。mNi Cloud開発チームです。
2024年7月に開発を開始した国産クラウドプラットフォーム「mNi Cloud」は、開始から1年が経過し、今も開発を続けております。
2025年5月から10月にかけては、主にバックエンドアーキテクチャのリファクタリングを中心に改修を行いました。
本記事では、その内容を中心に最近の進捗をご報告します。
mNi Cloudとは
mNi Cloudの概要については、以下の記事に詳しくまとめています。
https://zenn.dev/mnicloud/articles/7144cc817d7aa4
1月〜4月の開発状況
以前の開発経過は以下の記事をご参照ください。
Operator(バックエンド)の開発状況
mNi Cloudでは、Kubernetes Operatorを活用する設計へ移行しました(詳細は1〜3月の進捗記事を参照)。
以下では、各Operatorの概要と開発進捗を紹介します。
概要図
以下は、現在開発中のmNi Cloudバックエンドアーキテクチャ図です。
API Gateway(新規作成)
概要
今回のリファクタリングに合わせて新たに開発したコンポーネントです。
各種Controllerへの統一的な入り口として機能し、mNiリソースをYAMLによる宣言的管理で操作できるようになりました。
リソース例
以下はVPCリソースのYAML例です。
apiVersion: vpc/v1alpha
kind: Vpc
metadata:
name: demo-vpc
namespace: tenant-a
displayName: "Tenant A Shared VPC"
description: "VPC for tenant-a workloads"
labels:
env: dev
owner: platform-team
spec:
cidr: 10.42.0.0/16
このようにYAMLでリソースを管理できるため、Gitなどによるバージョン管理や再デプロイ、コピーも容易になりました。
機能詳細
-
*.mnicloud.jp配下の全CRDを自動検出し、動的クライアントを構築。 - OpenAPIを自動生成し、フロントエンドやCLIからアクセス可能に。
Dependency Controller(新規作成)
概要
これまでのmNi Cloudでは、リソース間の依存関係が管理できない問題がありました。
たとえば、VMが存在するVPCを削除しようとすると、削除処理が完了しないケースが発生していました。
今回新たに導入したDependency Controllerによって、このような依存関係を適切に管理できるようになりました。
機能詳細
- 各リソースは
spec.dependsOnを通じて依存関係を明示可能。 - 削除時にはファイナライザを付与し、依存リソースが削除完了するまで待機。
- カスケード削除・逆参照を同期し、孤立リソースを防止。
VPC Controller
概要
以前から存在していたmNi VPC機能を再設計し、Controllerとして正式に独立させました。
Kube-OVNのCRDを直接操作していた旧構成から、VPC ControllerがKube-OVNを抽象化して管理する構成へ変更。
これにより、Kube-OVN側のエラーを吸収しつつ、不要な設定項目をユーザに露出させない安全な仕組みとなりました。
機能詳細
- VpcリソースをKube-OVNのVpcオブジェクトへ同期。
- CIDRを論理ルーターへ変換し、結果をステータスに反映。
- 親VpcがReadyになった後にSubnetを調整。
- 状態(Pending, Provisioning, Readyなど)を更新し、他Controllerと共有。
CTR Controller
概要
CTR(Container)機能も従来から存在していましたが、今回のリファクタリングでControllerとして再構築しました。
これにより、DeploymentやStatefulSetの管理が自動化され、Stateless/Stateful両モードに対応。
さらに、プライベートレジストリ認証にも対応しました。
機能詳細
- Containerリソースを監視し、VPC/Subnet情報を付与したPodを生成。
- ContainerPoolを管理し、スケーラブルなDeploymentを生成。
- RegistrySecretリソースからDocker認証シークレットを自動作成。
- Dependency Controllerと連携し、依存ネットワークがReadyになるまでワークロード起動を待機。
VM Controller
概要
mNi Cloudには以前から仮想マシン(VM)機能が存在していましたが、当時はControllerとして実装されていませんでした。
今回のリファクタリングで、このVM機能を正式にController化し、KubeVirtをベースとした自動化・統合管理を実現しました。
これにより、VPCやDependency Controllerとの連携が容易になり、信頼性・拡張性が大きく向上しました。
技術詳細
- VirtualMachineリソースをKubeVirtのVirtualMachineに投影し、CDIでブロックストレージをクローン。
- VirtualMachinePoolを監視し、指定されたレプリカ数のVMをスケーラブルに生成。
- Imageリソースを処理し、停止中のVMディスクやHTTPソースから再利用可能なイメージを作成。
- 依存するSubnet/VPCがReadyであることを検証し、安定稼働まで起動を待機。
BS Controller
概要
mNi Cloudのボリューム管理を担うBS(Block Storage)機能も、今回のリファクタリングでControllerとして整理しました。
Kubernetes標準のPVCをベースに、Volumeリソースとの整合性を確保しています。
技術詳細
- Volumeリソースを監視し、指定サイズのPVCを作成・更新。
- ファイナライザを利用して削除処理の整合性を確保し、孤立ボリュームを防止。
VPN Controller(新規作成)
概要
新機能として、VPC内部リソースへ安全にアクセス可能なクライアントVPN機能を追加しました。
実装にはTailscaleおよびそのOSS版Ionscaleを採用。
Kubernetes向けOperatorが存在しなかったため、自作Operator「kodiak」を開発し、Ionscaleをクラスタ内に自動展開できるようにしました。
技術詳細
- VpnリソースをKodiak(Tailscale自動化)リソース群に投影。
- ControlServer、Tailnet、AuthKey、Connectorを自動生成。
- クライアント認証用シークレットを管理し、安全にTailnetへ参加可能に。
- 参照するVpcのCIDRを取得し、Tailscale経由で広告。
- ステータスに接続状態・Tailscale IP・コントロールプレーンURLを反映。
フロントエンドの開発状況
バックエンドの大幅な構造変更に合わせ、フロントエンドも全面的にリファクタリングしました。
フレームワークの再選定
従来はNext.jsを採用していましたが、以下の課題がありました。
- ビルド時間が長い
- メジャーアップデート時の破壊的変更
- Vercel依存によるベンダーロックイン
これらを踏まえ、Tanstack Startを新たに採用。
SSRを廃止してSPA構成へ移行し、Monorepo構成も廃止してPolyrepo方式へ転換しました。
選定理由
- Viteによる高速ビルド
- Reactの標準的な思想に近い設計
- SSR不要のためデプロイが容易
ShadCN Registryの活用
UIフレームワークとして引き続きShadCNを利用しています。
Registry機能を活用し、独自のUIコンポーネント群をShadCN形式で配布可能にしました。
これにより、各アプリケーションで必要なUIを柔軟に取り込めるようになりました。
UIの更新
デザインも一新し、より現代的で一貫性のあるUIを目指しています。


Kube-OVN依存からの脱却 ― 自作CNIの開発
背景
mNi Cloudのネットワーク機能はKube-OVNに依存していましたが、以下のような問題が発生していました。
- VPC, Subnetの削除が完了しない不具合
- EIP割り当ての不具合
- SGの制約
- kube-proxyとの連携が不十分
Kube-OVNは活発に開発されていますが、OVSベースであるため柔軟性に制約がありました。
そこで、自作CNIの開発を進めています。
自作CNIの方針
CNIの中核には eBPF(TC, XDP) を採用します。
採用理由
- Linuxカーネル上で高速動作
- iptablesに依存しない柔軟なパケット処理
VPCによるテナント分離、BGPによるアンダーレイIPの広報などを実現し、
SDN的な設計思想を維持しつつ、eBPFによる高性能・軽量なCNIを目指しています。
今後のmNi Cloudの予定
- リファクタリングの完了
- mNi Monitoringの開発とモニタリング機能の提供
- mNi VPNを活用したリモート勉強会の開催
- mNi Cloud上に自社製品を載せてリリース
おわりに
ここまでお読みいただきありがとうございます。
mNi Cloudはインフラ層からUI層まで一貫した改善を続けています。
今後は自作CNIの実装、監視・メトリクス基盤の整備、クラスタ管理機能の拡張などを予定しています。
引き続きmNi Cloudをよろしくお願いいたします。
Discussion