1.5. Podman および Buildah 用の fuse-overlayfs ストレージドライバーの使用


デフォルトでは、devfile を指定しない新しく作成されたワークスペースは、Universal Developer Image (UDI) を使用します。UDI には、開発者が一般的に使用する共通の開発ツールと依存関係が含まれています。

UDI には Podman と Buildah が含まれており、開発者はワークスペースからコンテナーイメージを構築してプッシュできます。

デフォルトでは、UDI の Podman と Buildah は vfs ストレージドライバーを使用するように設定されています。より効率的なイメージ管理を行うには、ルートレス環境でコピーオンライトをサポートする fuse-overlayfs ストレージドライバーを使用します。

ワークスペースで fuse-overlayfs を使用するには、次の要件を満たす必要があります。

  1. OpenShift バージョン 4.15 より前のバージョンの場合、管理者が https://access.redhat.com/documentation/ja-jp/red_hat_openshift_dev_spaces/3.20/html-single/administration_guide/index#administration-guide:configuring-fuse に従って、クラスターで /dev/fuse へのアクセスを有効にした。
  2. ワークスペースに、/dev/fuse デバイスを使用するために必要なアノテーションがある。「/dev/fuse へのアクセス」 を参照してください。
  3. ワークスペースコンテナー内の storage.conf ファイルが、fuse-overlayfs を使用するように設定されている。「ConfigMap で fuse-overlayfs を有効にする」 を参照してください。

1.5.1. /dev/fuse へのアクセス

/dev/fuse を使用するには、/dev/fuse にアクセスできる必要があります。このセクションでは、ワークスペースコンテナーから /dev/fuse にアクセスできるようにする方法を説明します。

前提条件

手順

  1. pod-overrides 属性を使用して、https://access.redhat.com/documentation/ja-jp/red_hat_openshift_dev_spaces/3.20/html-single/administration_guide/index#administration-guide:configuring-fuse で定義されている必要なアノテーションをワークスペースに追加します。pod-overrides 属性を使用すると、ワークスペース Pod の spec 内の特定のフィールドをマージできます。

    OpenShift バージョン 4.15 より前のバージョンの場合:

    $ oc patch devworkspace <DevWorkspace_name> \
      --patch '{"spec":{"template":{"attributes":{"pod-overrides":{"metadata":{"annotations":{"io.kubernetes.cri-o.Devices":"/dev/fuse","io.openshift.podman-fuse":""}}}}}}}' \
      --type=merge
    Copy to Clipboard Toggle word wrap

    OpenShift バージョン 4.15 以降の場合:

    $ oc patch devworkspace <DevWorkspace_name> \
      --patch '{"spec":{"template":{"attributes":{"pod-overrides":{"metadata":{"annotations":{"io.kubernetes.cri-o.Devices":"/dev/fuse"}}}}}}}' \
      --type=merge
    Copy to Clipboard Toggle word wrap

検証手順

  1. ワークスペースを起動し、ワークスペースコンテナーで /dev/fuse が使用できることを確認します。

    $ stat /dev/fuse
    Copy to Clipboard Toggle word wrap

この手順を完了したら、Podman に fuse-overlayfs を使用する 「ConfigMap で fuse-overlayfs を有効にする」 の手順に従ってください。

1.5.2. ConfigMap で fuse-overlayfs を有効にする

~/.config/containers/storage.conf ファイルで、Podman および Buildah のストレージドライバーを定義できます。UDI コンテナー内の /home/user/.config/containers/storage.conf ファイルのデフォルトの内容は次のとおりです。

storage.conf

[storage]
driver = "vfs"
Copy to Clipboard Toggle word wrap

fuse-overlayfs を使用するには、storage.conf を次のように設定します。

storage.conf

[storage]
driver = "overlay"

[storage.options.overlay]
mount_program="/usr/bin/fuse-overlayfs" 
1
Copy to Clipboard Toggle word wrap

1
fuse-overlayfs バイナリーへの絶対パス。/usr/bin/fuse-overlayfs パスは UDI のデフォルトです。

ワークスペースを起動した後、これを手動で実行できます。もう 1 つのオプションは、storage.conf を変更した UDI に基づいて新しいイメージを構築し、その新しいイメージをワークスペースに使用することです。

それ以外の場合は、更新されたファイルをマウントする ConfigMap を作成することで、プロジェクト内のすべてのワークスペースの /home/user/.config/containers/storage.conf を更新できます。「ConfigMap のマウント」を参照してください。

前提条件

注記

このガイド に従ってマウントされた ConfigMap は、ConfigMap のデータをすべてのワークスペースにマウントするため、この手順に従うと、すべてのワークスペースのストレージドライバーが fuse-overlayfs に設定されます。「/dev/fuse へのアクセス」 に従って、ワークスペースに fuse-overlayfs を使用するために必要なアノテーションが含まれていることを確認してください。

手順

  1. プロジェクトに /home/user/.config/containers/storage.conf ファイルをマウントする ConfigMap を適用します。

    kind: ConfigMap
    apiVersion: v1
    metadata:
      name: fuse-overlay
      labels:
        controller.devfile.io/mount-to-devworkspace: 'true'
        controller.devfile.io/watch-configmap: 'true'
      annotations:
        controller.devfile.io/mount-as: subpath
        controller.devfile.io/mount-path: /home/user/.config/containers
    data:
      storage.conf: |
        [storage]
        driver = "overlay"
    
        [storage.options.overlay]
        mount_program="/usr/bin/fuse-overlayfs"
    Copy to Clipboard Toggle word wrap
    警告

    この ConfigMap を作成すると、実行中のワークスペースがすべて再起動されます。

検証手順

  1. 必要なアノテーションを含むワークスペースを起動し、ストレージドライバーが overlay であることを確認します。

    $ podman info | grep overlay
    Copy to Clipboard Toggle word wrap

    出力例:

    graphDriverName: overlay
      overlay.mount_program:
        Executable: /usr/bin/fuse-overlayfs
        Package: fuse-overlayfs-1.12-1.module+el8.9.0+20326+387084d0.x86_64
          fuse-overlayfs: version 1.12
      Backing Filesystem: overlayfs
    Copy to Clipboard Toggle word wrap
    注記

    既存のワークスペースで、次のエラーが発生する可能性があります。

    ERRO[0000] User-selected graph driver "overlay" overwritten by graph driver "vfs" from database - delete libpod local files ("/home/user/.local/share/containers/storage") to resolve.  May prevent use of images created by other tools
    Copy to Clipboard Toggle word wrap

    この場合、エラーメッセージに記載されているように libpod ローカルファイルを削除します。

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat