Dragonfly
コンテナイメージ・ファイル・AI モデルの配信を、大規模クラスタ全体でピアツーピア (P2P) で高速化する配布システム。
- カテゴリ: Runtime
- CNCF 成熟度: Graduated
- 言語: Go
- ライセンス: Apache-2.0
- リポジトリ: dragonflyoss/dragonfly
- ドキュメント基準コミット:
0041afa(main, 2026-06-22)
何をするものか
Dragonfly は、消費者そのものを配布者に変えることで大きな成果物を配る。多数のマシンが同じコンテナイメージ・ファイル・モデル重みを必要とするとき、各コピーをオリジンから直接引くとレジストリとネットワークが飽和する。Dragonfly では各ノードが、すでにそのピースを持つピアから取得し、必要なときだけオリジンにフォールバックする。結果としてオリジンはノード数ぶんではなく少数回だけデータを供給する。
このリポジトリには 2 つの Go 製コントロールプレーンサービス、manager と scheduler が入っている。manager (manager/) は動的設定・クラスタ状態・コンソール UI・アクセス制御を担う。scheduler (scheduler/) は各ダウンロードについて、あるノードがどのピアからピースを引くべきかを決める。実データ転送は別のクライアント (dfdaemon/dfget) が行い、これは dragonflyoss/client リポジトリで Rust で実装されている。scheduler は gRPC で指示を返すだけだ。
Dragonfly は Alibaba Cloud のイメージ高速化システムとして始まり、その後 Hugging Face や ModelScope のモデルファイルを含む任意の成果物を配れるよう拡張された。コンテナランタイムの下にレジストリミラー兼プル高速化レイヤとして位置し、ワークロードはイメージの参照方法を変えずに Dragonfly 経由でプルする。
いつ使うか
- 同じイメージやファイルを繰り返しプルする大規模クラスタを運用しており、レジストリやリージョン間帯域がボトルネックになっている。
- AI/ML のモデル重みを多数のノードへ配り、全ノードがオブジェクトストレージを叩く代わりにピア共有させたい。
- 単一ランタイムに縛られず、複数レジストリや任意のファイル URL に効くレジストリミラーが欲しい。
- 小規模クラスタやプルが稀な環境には不向き。manager・scheduler・seed peer などの構成要素は規模が出て初めて見合う運用コストを足す。
- クラスタローカルな containerd ミラーを最小構成で済ませたいだけなら、より軽量なステートレス系の方が向くこともある。
このディープダイブの構成
- 歴史: 起源・マイルストーン・存在理由。
- アーキテクチャ: コンポーネントとリクエストの流れ。
- 採用事例・エコシステム: 誰が動かし、周囲に何があるか。
- 内部実装: ソースから読んだ重要なコードパス。
- はじめに: インストールと最初の動く構成。
出典
- dragonflyoss/dragonfly リポジトリ (README, ADOPTERS, LICENSE, ソース)、参照日 2026-06-22。
- 固定コミット
0041afa、参照日 2026-06-22。 - CNCF projects: Dragonfly、参照日 2026-06-22。
- CNCF blog: TOC votes to move Dragonfly into CNCF incubator、参照日 2026-06-22。
- The New Stack: CNCF Dragonfly Speeds Container, Model Sharing with P2P、参照日 2026-06-22。
- The New Stack: Dragonfly Brings Peer-to-Peer Image Sharing to Kubernetes、参照日 2026-06-22。
- Alibaba Cloud: P2P-Based Intelligent Image Acceleration System of Dragonfly、参照日 2026-06-22。
- CNCF blog: Peer-to-Peer acceleration for AI model distribution with Dragonfly、参照日 2026-06-22。
- Dragonfly Kubernetes quick start、参照日 2026-06-22。