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를 사용하려면 다음 요구 사항을 충족해야 합니다.

  1. 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 액세스를 활성화했습니다.
  2. 작업 공간에는 /dev/fuse 장치를 사용하는 데 필요한 주석이 있습니다. 1.5.1절. “/dev/fuse에 액세스”을 참조하십시오.
  3. 작업 공간 컨테이너의 storage.conf 파일이 fuse-overlayfs를 사용하도록 구성되어 있습니다. 1.5.2절. “ConfigMap을 사용하여 fuse-overlayfs 활성화”을 참조하십시오.

추가 리소스

1.5.1. /dev/fuse에 액세스

fuse-overlayfs를 사용하려면 /dev/fuse 에 액세스할 수 있어야 합니다. 이 섹션에서는 작업 공간 컨테이너에서 /dev/fuse 를 액세스하는 방법을 설명합니다.

사전 요구 사항

프로세스

  1. 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
    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

이 절차를 완료한 후 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"
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의 기본값입니다.

작업 영역을 시작한 후 수동으로 이 작업을 수행할 수 있습니다. 또 다른 옵션은 storage.conf 변경 사항으로 UDI를 기반으로 새 이미지를 빌드하고 작업 공간에 새 이미지를 사용하는 것입니다.

그렇지 않으면 업데이트된 파일을 마운트하는 ConfigMap을 생성하여 프로젝트의 모든 작업 공간에 대해 /home/user/.config/containers/storage.conf 를 업데이트할 수 있습니다. 6.2절. “마운트 ConfigMap”을 참조하십시오.

사전 요구 사항

참고

이 가이드에 따라 마운트된 ConfigMap은 ConfigMap의 데이터를 모든 작업 공간에 마운트하므로 이 절차에 따라 모든 작업 공간에 대한 스토리지 드라이버를 fuse-overlayfs로 설정합니다. 1.5.1절. “/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. 필요한 주석이 포함된 작업 공간을 시작하고 스토리지 드라이버가 오버레이 인지 확인합니다.

    $ 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은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2025 Red Hat