1.5. Podman 및 Buildah에 fuse-overlayfs 스토리지 드라이버 사용
기본적으로 devfile을 지정하지 않는 새로 생성된 작업 공간은 UDI(Universal Developer Image)를 사용합니다. UDI에는 일반적으로 개발자가 사용하는 공통 개발 툴과 종속성이 포함되어 있습니다.
Podman 및 Buildah는 UDI에 포함되어 있어 개발자가 작업 영역에서 컨테이너 이미지를 빌드하고 내보낼 수 있습니다.
기본적으로 UDI의 Podman 및 Buildah는 vfs
스토리지 드라이버를 사용하도록 구성됩니다. 보다 효율적인 이미지 관리를 위해 루트 없는 환경에서 COW(Copy-On-Write)를 지원하는 fuse-overlayfs 스토리지 드라이버를 사용하십시오.
작업 영역에서 fuse-overlayfs를 사용하려면 다음 요구 사항을 충족해야 합니다.
-
4.15 이전 버전의 OpenShift의 경우 관리자는 https://access.redhat.com/documentation/en-us/red_hat_openshift_dev_spaces/3.23/html-single/administration_guide/index#administration-guide:configuring-fuse 에 따라 클러스터에서
/dev/fuse
액세스를 활성화했습니다. -
작업 공간에는
/dev/fuse
장치를 사용하는 데 필요한 주석이 있습니다. 1.5.1절. “/dev/fuse에 액세스”을 참조하십시오. -
작업 공간 컨테이너의
storage.conf
파일이 fuse-overlayfs를 사용하도록 구성되어 있습니다. 1.5.2절. “ConfigMap을 사용하여 fuse-overlayfs 활성화”을 참조하십시오.
추가 리소스
1.5.1. /dev/fuse에 액세스 링크 복사링크가 클립보드에 복사되었습니다!
fuse-overlayfs를 사용하려면 /dev/fuse
에 액세스할 수 있어야 합니다. 이 섹션에서는 작업 공간 컨테이너에서 /dev/fuse
를 액세스하는 방법을 설명합니다.
사전 요구 사항
-
4.15 이전 버전의 경우 관리자는 https://access.redhat.com/documentation/en-us/red_hat_openshift_dev_spaces/3.23/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.23/html-single/administration_guide/index#administration-guide:configuring-fuse 에 정의된 필수 주석을 작업 공간에 추가합니다.pod-overrides
특성을 사용하면 작업 공간 Pod의 사양에서 특정 필드를 병합할 수 있습니다.4.15 이전 버전의 OpenShift의 경우:
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
$ 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 Copied! Toggle word wrap Toggle overflow 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
$ 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 Copied! Toggle word wrap Toggle overflow
검증 단계
작업 영역을 시작하고 작업 공간 컨테이너에서
/dev/fuse
를 사용할 수 있는지 확인합니다.stat /dev/fuse
$ stat /dev/fuse
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
이 절차를 완료한 후 1.5.2절. “ConfigMap을 사용하여 fuse-overlayfs 활성화” 의 단계에 따라 Podman에 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"
[storage]
driver = "vfs"
fuse-overlayfs를 사용하려면 storage.conf
를 다음으로 설정할 수 있습니다.
storage.conf
[storage] driver = "overlay" [storage.options.overlay] mount_program="/usr/bin/fuse-overlayfs"
[storage]
driver = "overlay"
[storage.options.overlay]
mount_program="/usr/bin/fuse-overlayfs"
- 1
fuse-overlayfs
바이너리의 절대 경로입니다./usr/bin/fuse-overlayfs
경로는 UDI의 기본값입니다.
작업 영역을 시작한 후 수동으로 이 작업을 수행할 수 있습니다. 또 다른 옵션은 storage.conf
변경 사항으로 UDI를 기반으로 새 이미지를 빌드하고 작업 공간에 새 이미지를 사용하는 것입니다.
그렇지 않으면 업데이트된 파일을 마운트하는 ConfigMap을 생성하여 프로젝트의 모든 작업 공간에 대해 /home/user/.config/containers/storage.conf
를 업데이트할 수 있습니다. 6.2절. “마운트 ConfigMap”을 참조하십시오.
사전 요구 사항
-
4.15 이전 버전의 경우 관리자는 https://access.redhat.com/documentation/en-us/red_hat_openshift_dev_spaces/3.23/html-single/administration_guide/index#administration-guide:configuring-fuse 을 사용하여
/dev/fuse
에 액세스할 수 있습니다. - 필요한 주석이 있는 작업 공간은 다음과 같이 설정됩니다. 1.5.1절. “/dev/fuse에 액세스”
이 가이드에 따라 마운트된 ConfigMap은 ConfigMap의 데이터를 모든 작업 공간에 마운트하므로 이 절차에 따라 모든 작업 공간에 대한 스토리지 드라이버를 fuse-overlayfs로 설정합니다. 1.5.1절. “/dev/fuse에 액세스” 에서 fuse-overlayfs를 사용하는 데 필요한 주석이 작업 공간에 포함되어 있는지 확인합니다.
프로세스
프로젝트에
/home/user/.config/containers/storage.conf
파일을 마운트하는 ConfigMap을 적용합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 주의이 ConfigMap을 생성하면 실행 중인 모든 작업 공간이 다시 시작됩니다.
검증 단계
필요한 주석이 포함된 작업 공간을 시작하고 스토리지 드라이버가
오버레이
인지 확인합니다.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 로컬 파일을 삭제합니다.