2.11. OCI イメージの Pod へのマウント


Open Container Initiative (OCI)準拠のコンテナーイメージまたはアーティファクトを Pod に直接マウントすることができます。これにより、イメージ内のファイルをベースイメージに含める必要なく、イメージ内のファイルをベースイメージに含める必要がなくなります。これにより、OCI 準拠のレジストリーでデータをホストできるようになります。

2.11.1. イメージボリュームについて

イメージボリューム を使用して、Open Container Initiative (OCI)準拠のコンテナーイメージまたはアーティファクトを Pod に直接マウントし、イメージ内のファイルをベースイメージに含めることなくコンテナーからアクセスできるようにすることができます。これは、OCI 準拠のレジストリーでデータをホストできることを意味します。

Pod でイメージボリュームを使用することで、OCI イメージとディストリビューション仕様標準を利用して、以下のユースケースを含むいくつかのタスクを実行できます。

  • ベースイメージにファイルを含めることなく、Pod 内の複数のコンテナー間で設定ファイルを共有することができるため、セキュリティーリスクとイメージサイズが最小限に抑えられます。
  • 人工知能環境では、イメージボリュームを使用して、モデルサーバーとともに Pod に大規模な言語モデルの加重または機械学習モデルの重みをマウントすることができます。このように、モデルサーバーのコンテナーイメージに含めることなく、モデルの重みを効率的に提供できます。したがって、モデルの仕様とコンテンツは、モデルを処理する実行可能ファイルから分離できます。
  • バイナリーアーティファクトをパッケージ化および配布して Pod に直接マウントできるため、CI/CD パイプラインを合理化できます。これにより、CI/CD アーティファクトをイメージボリュームに割り当てることで、ベースイメージの小さなセットを維持できます。
  • マルウェアスキャナーの公開イメージを使用して、プライベートマルウェア署名のボリュームにマウントすることができます。これにより、イメージをベースイメージに組み込むことなく、公開イメージに対する著作権で許可されていない可能性がある。

イメージボリュームをマウントするには、Pod へのイメージ ボリュームの追加 で説明されているように、オプションのプルポリシーを使用して Pod 仕様にイメージまたはアーティファクトへのパスを 含めます。

2.11.2. Pod へのイメージボリュームの追加

Open Container Initiative (OCI)準拠のコンテナーイメージまたはアーティファクトをマウントするには、ボリューム パラメーターを使用して、オプションのプルポリシーを使用して Pod 仕様にイメージまたはアーティファクトへのパスを追加します。Pod を直接作成するか、デプロイメントやレプリカセットなどの制御オブジェクトを使用できます。

手順

  1. 以下のような YAML ファイルを作成します。

    apiVersion: v1
    kind: Pod
    metadata:
      name: image-volume
    spec:
      containers:
      - name: shell
        command: ["sleep", "infinity"]
        image: debian
        volumeMounts:
        - name: volume
          mountPath: /volume
      volumes:
      - name: volume
        image: 
    1
    
          reference: quay.io/crio/artifact:v2 
    2
    
          pullPolicy: Always 
    3
    Copy to Clipboard Toggle word wrap
    1
    ホストマシンで利用可能な OCI コンテナーイメージまたはアーティファクトを指定します。
    2
    イメージまたはアーティファクトへのパスを指定します。
    3
    次のいずれかのオプションのプルポリシーを指定します。
    • Always の場合、kubelet は常にイメージのプルを試行します。プルが失敗した場合、kubelet は Pod を Failed に設定します。
    • Never を指定した場合、kubelet はイメージをプルせず、ローカルイメージまたはアーティファクトのみを使用します。イメージのレイヤーがローカルに存在しない場合や、そのイメージのマニフェストがまだキャッシュされていない場合は、Pod は Failed になります。
    • IfNotPresent の場合、kubelet が存在しない場合はイメージをプルします。イメージが存在しず、プルが失敗すると、Pod は Failed になります。これがデフォルトです。
  2. 以下のコマンドを実行して Pod を作成します。

    $ oc create -f <file_name>.yaml
    Copy to Clipboard Toggle word wrap

検証

  • 以下のようなコマンドを使用して、イメージのプルおよびマウントに関する詳細情報を表示します。

    $ oc describe pod <pod_name>
    Copy to Clipboard Toggle word wrap

    出力例

    Name:             image-volume
    Namespace:        default
    # ...
    Volumes:
      volume: 
    1
    
        Type:        Image (a container image or OCI artifact)
        Reference:   quay.io/crio/artifact:v2
        PullPolicy:  IfNotPresent
    # ...
    Events:
      Type    Reason          Age                From               Message
      ----    ------          ----               ----               -------
    # ...
      Normal  Pulling         46s                kubelet            Pulling image "quay.io/crio/artifact:v2"
      Normal  Pulled          44s                kubelet            Successfully pulled image "quay.io/crio/artifact:v2" in 2.261s (2.261s including waiting). Image size: 6707 bytes. 
    2
    
    # ...
    Copy to Clipboard Toggle word wrap

    1
    イメージボリュームが Pod にマウントされたことを示します。
    2
    イメージが正常にプルされたことを示します。
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat