1.5. Podman および Buildah 用の fuse-overlayfs ストレージドライバーの使用
デフォルトでは、devfile を指定しない新しく作成されたワークスペースは、Universal Developer Image (UDI) を使用します。UDI には、開発者が一般的に使用する共通の開発ツールと依存関係が含まれています。
UDI には Podman と Buildah が含まれており、開発者はワークスペースからコンテナーイメージを構築してプッシュできます。
デフォルトでは、UDI の Podman と Buildah は vfs ストレージドライバーを使用するように設定されています。より効率的なイメージ管理を行うには、ルートレス環境でコピーオンライトをサポートする fuse-overlayfs ストレージドライバーを使用します。
ワークスペースで fuse-overlayfs を使用するには、次の要件を満たす必要があります。
-
OpenShift バージョン 4.15 より前のバージョンの場合、管理者が https://access.redhat.com/documentation/en-us/red_hat_openshift_dev_spaces/3.25/html-single/administration_guide/index#administration-guide:configuring-fuse に従って、クラスターで
/dev/fuseへのアクセスを有効にしている。 -
ワークスペースに、
/dev/fuseデバイスを使用するために必要なアノテーションがある。「/dev/fuse へのアクセス」 を参照してください。 -
ワークスペースコンテナー内の
storage.confファイルが、fuse-overlayfs を使用するように設定されている。「ConfigMap で fuse-overlayfs を有効にする」 を参照してください。
1.5.1. /dev/fuse へのアクセス リンクのコピーリンクがクリップボードにコピーされました!
/dev/fuse を使用するには、/dev/fuse にアクセスできる必要があります。このセクションでは、ワークスペースコンテナーから /dev/fuse にアクセスできるようにする方法を説明します。
前提条件
-
OpenShift バージョン 4.15 より前のバージョンの場合、管理者が https://access.redhat.com/documentation/en-us/red_hat_openshift_dev_spaces/3.25/html-single/administration_guide/index#administration-guide:configuring-fuse に従って
/dev/fuseへのアクセスを有効にしている。 - fuse-overlayfs を使用するワークスペースを決定する。
手順
pod-overrides属性を使用して、https://access.redhat.com/documentation/en-us/red_hat_openshift_dev_spaces/3.25/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=mergeOpenShift バージョン 4.15 以降の場合:
$ oc patch devworkspace <DevWorkspace_name> \ --patch '{"spec":{"template":{"attributes":{"pod-overrides":{"metadata":{"annotations":{"io.kubernetes.cri-o.Devices":"/dev/fuse"}}}}}}}' \ --type=merge
検証手順
ワークスペースを起動し、ワークスペースコンテナーで
/dev/fuseが使用できることを確認します。$ stat /dev/fuse
この手順を完了したら、Podman に fuse-overlayfs を使用する 「ConfigMap で fuse-overlayfs を有効にする」 の手順に従ってください。