This documentation is for a release that is no longer maintained
See documentation for the latest supported version.4.12. fuse-overlayfs の設定
デフォルトでは、Universal Developer Image (UDI) には、ワークスペース内でコンテナーイメージをビルドおよびプッシュするために使用できる Podman と Buildah が含まれています。ただし、UDI の Podman と Buildah は、コピーオンライトのサポートを提供しない vfs
ストレージドライバーを使用するように設定されています。より効率的なイメージ管理を行うには、ルートレス環境でコピーオンライトをサポートする fuse-overlayfs ストレージドライバーを使用します。
OpenShift バージョン 4.15 より前のワークスペースで fuse-overlayfs を有効にするには、管理者はまず 「OpenShift バージョン 4.15 より前のバージョンへのアクセスを有効にする」 の手順でクラスター上の /dev/fuse
アクセスを有効にする必要があります。
OpenShift バージョン 4.15 以降では、/dev/fuse
デバイスがデフォルトで使用できるため、これは必要ありません。リリースノート を参照してください。
/dev/fuse
アクセスを有効にした後、fuse-overlayfs は次の 2 つの方法で有効にできます。
- クラスター内のすべてのユーザーワークスペースの場合、「すべてのワークスペースで fuse-overlayfs を有効にする」 を参照してください。
- 特定のユーザーに属するワークスペースの場合、https://access.redhat.com/documentation/ja-jp/red_hat_openshift_dev_spaces/3.18/html-single/user_guide/index#end-user-guide:using-the-fuse-overlay-storage-driver を参照してください。
4.12.1. OpenShift バージョン 4.15 より前のバージョンへのアクセスを有効にする リンクのコピーリンクがクリップボードにコピーされました!
fuse-overlayfs を使用するには、まず /dev/fuse
をワークスペースコンテナーからアクセスできるようにする必要があります。
OpenShift バージョン 4.15 以降では、/dev/fuse
デバイスがデフォルトで使用できるため、この手順は必要ありません。リリースノート を参照してください。
OpenShift クラスター上で MachineConfig
リソースを作成することは、クラスターに高度なシステムレベルの変更を加えることになるため、潜在的に危険なタスクです。
詳細および考えられるリスクは、MachineConfig のドキュメント を参照してください。
前提条件
手順
OpenShift クラスターのタイプ (シングルノードクラスター、または個別のコントロールプレーンとワーカーノードを持つマルチノードクラスター) に基づいて環境変数を設定します。
シングルノードクラスターの場合は、次のように設定します。
NODE_ROLE=master
$ NODE_ROLE=master
Copy to Clipboard Copied! Toggle word wrap Toggle overflow マルチノードクラスターの場合は、次のように設定します。
NODE_ROLE=worker
$ NODE_ROLE=worker
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
OpenShift Butane 設定バージョンの環境変数を設定します。この変数は、OpenShift クラスターのメジャーバージョンとマイナーバージョンです。たとえば、
4.12.0
、4.13.0
、または4.14.0
です。VERSION=4.12.0
$ VERSION=4.12.0
Copy to Clipboard Copied! Toggle word wrap Toggle overflow NODE_ROLE
ノードに99-podman-fuse
という名前のドロップイン CRI-O 設定ファイルを作成するMachineConfig
リソースを作成します。この設定ファイルにより、特定の Pod が/dev/fuse
デバイスにアクセスできるようになります。Copy to Clipboard Copied! Toggle word wrap Toggle overflow MachineConfig
リソースを適用した後、変更が適用されると、worker
ロールを持つ各ノードのスケジュール設定が一時的に無効になります。ノードのステータスを表示します。oc get nodes
$ oc get nodes
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow worker
ロールを持つすべてのノードのステータスがReady
になると、次のアノテーションを持つすべての Pod で/dev/fuse
が利用できるようになります。io.openshift.podman-fuse: '' io.kubernetes.cri-o.Devices: /dev/fuse
io.openshift.podman-fuse: '' io.kubernetes.cri-o.Devices: /dev/fuse
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証手順
worker
ロールを持つノードの名前を取得します。oc get nodes
$ oc get nodes
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ワーカーノードへの
oc debug
セッションを開きます。oc debug node/<nodename>
$ oc debug node/<nodename>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 99-podman-fuse
という名前の新しい CRI-O 設定ファイルが存在することを確認します。stat /host/etc/crio/crio.conf.d/99-podman-fuse
sh-4.4# stat /host/etc/crio/crio.conf.d/99-podman-fuse
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.12.1.1. ワークスペース内で Podman と Buildah への fuse-overlayfs の使用 リンクのコピーリンクがクリップボードにコピーされました!
https://access.redhat.com/documentation/ja-jp/red_hat_openshift_dev_spaces/3.18/html-single/user_guide/index#end-user-guide:using-the-fuse-overlay-storage-driver に従って、既存のワークスペースを更新し、Podman および Buildah 用の fuse-overlayfs ストレージドライバーを使用できます。
4.12.2. すべてのワークスペースで fuse-overlayfs を有効にする リンクのコピーリンクがクリップボードにコピーされました!
ワークスペースのコンテナーエントリーポイントスクリプトを設定して、そのコンテナーを使用するすべてのワークスペースで Fuse-overlayfs が使用されるようにする方法を説明します。
Universal Developer Image (UDI) には、必要な設定がデフォルトですでに含まれています。ただし、Podman 5.x では /home/user/.config
フォルダーを現在のユーザーが所有する必要があるため、カスタムイメージを使用する場合はスクリプトを手動で設定する必要があります。
前提条件
- OpenShift バージョンが 4.14 以前の場合は 「OpenShift バージョン 4.15 より前のバージョンへのアクセスを有効にする」セクションを完了した。
-
宛先 OpenShift クラスターへの管理権限を持つアクティブな
oc
セッション。CLI の使用方法 を参照してください。
手順
CheCluster カスタムリソースの
spec.devEnvironments.workspacesPodAnnotations
フィールドに必要なアノテーションを設定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記OpenShift バージョン 4.14 以下の場合は、
io.openshift.podman-Fuse: ""
アノテーションも必要です。オプション: ワークスペースコンテナーにカスタムイメージを使用している場合は、
/home/user/.config
フォルダーを作成し、エントリーポイントを介して実行時にstorage.conf
ファイルを設定します。これを行うには、イメージをビルドする前に、ワークスペースコンテナーイメージのエントリーポイントスクリプトに次のコードを追加します。エントリーポイントに/home/user/.config
フォルダーを作成すると、フォルダーは現在のユーザーによって所有されることになりますが、これはイメージのビルド時にはわかりません。Copy to Clipboard Copied! Toggle word wrap Toggle overflow これにより、
/home/user/.config
がまだ存在しない場合は、フォルダーが作成され、所有者はuser
になります。たとえば、永続ボリュームに保存されている場合、/home/user/.config
がすでに存在している可能性があります。ワークスペースを起動し、
/home/user/.config
の所有者がuser
であることを確認します。ls -la /home/user
$ ls -la /home/user
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例:
... drwxrwsr-x. 3 user 1000660000 24 Dec 24 15:40 .config
... drwxrwsr-x. 3 user 1000660000 24 Dec 24 15:40 .config
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ストレージドライバーが
overlay
であることを確認します。podman info | grep overlay
$ podman info | grep overlay
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記既存のワークスペースで、次のエラーが発生する可能性があります。
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
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 Copied! Toggle word wrap Toggle overflow この場合、エラーメッセージに記載されているように libpod ローカルファイルを削除します。