Nydus Snapshotterを使用した遅延プル
nerdctl >= 0.22 | |
---|---|
Nydus snapshotterは、Nydusイメージサービス用のcontainerdのリモートスナップショットプラグインであり、コンテナの起動速度、イメージスペース、ネットワーク帯域幅の効率、およびいくつかのランタイムバックエンド(FUSE、virtiofs、およびカーネル内EROFS(Linuxカーネル5.19+))とのデータの整合性の観点から、現在のOCIイメージ仕様を向上させるチャンクベースのコンテンツアドレス指定可能なファイルシステムを実装しています。
nerdctl実行
の遅延プルを有効にする
-
https://github.com/containerd/nydus-snapshotter から containerd リモートスナップショットプラグイン (
containerd-nydus-grpc
) をインストールします -
以下を /
etc/containerd/config.toml
に追加します。 -
Launch
containerd
andcontainerd-nydus-grpc
-
Run
nerdctl
with--snapshotter=nydus
変換前の Nydus イメージの一覧については、https://github.com/orgs/dragonflyoss/packages?page=1&repo_name=image-service を参照してください。
nerdctl image convert
を使用して Nydus イメージをビルドする
Nerdctlは、nerdctl image convert
コマンドを使用して、OCIイメージまたはDocker形式のv2イメージをNydusイメージへの変換をサポートしています。
変換の前に、 "nydus static package"に含まれるnydus-image
バイナリがインストールされている必要があります。nerdctl image convert--nydus--oci--nydus-image<the_path_of_nydus_image><source_image><target_image>
のようなコマンドを実行すると、<source_image>
を<target_image>
というタグを持つNydusのイメージに変換できます。
今のところ、変換されたNydusイメージを直接実行することはできません。 nerdctl run
の前に、nerdctl image pull
の処理フローの一部として、nydus snapshotter への解凍を行なう必要があります。そのため、変換後に変換されたイメージをレジストリにプッシュし、イメージを実行する前に nerdctl --snapshotter nydus image pull
を使用して nydus snapshotterに解凍する必要があります。
必要に応じて、nydusify 変換ツールを使用して、変換された Nydus イメージの形式が有効かどうかを確認できます。Nydus イメージの検証と Nydus イメージのビルド方法の詳細については、nydusify と acceld を参照してください。