2.11. Pod에 OCI 이미지 마운트


OCI(Open Container Initiative) 호환 컨테이너 이미지 또는 아티팩트를 Pod에 직접 마운트하여 기본 이미지에 포함하지 않고도 컨테이너에 이미지에 액세스할 수 있으므로 OCI 호환 레지스트리에서 데이터를 호스팅할 수 있습니다.

2.11.1. 이미지 볼륨 이해

이미지 볼륨 을 사용하여 OCI(Open Container Initiative) 호환 컨테이너 이미지 또는 아티팩트를 Pod에 직접 마운트하여 기본 이미지에 포함하지 않고도 이미지에 액세스할 수 있습니다. 즉, OCI 호환 레지스트리에서 데이터를 호스팅할 수 있습니다.

Pod에서 이미지 볼륨을 사용하면 OCI 이미지 및 배포 사양 표준을 활용하여 다음 사용 사례를 비롯한 여러 작업을 수행할 수 있습니다.

  • 기본 이미지에 파일을 포함할 필요 없이 Pod의 여러 컨테이너 간에 구성 파일을 공유할 수 있으므로 보안 위험 및 이미지 크기를 최소화할 수 있습니다.
  • 인공 지능 환경에서는 이미지 볼륨을 사용하여 모델 서버와 함께 Pod에 대규모 언어 모델 가중치 또는 머신러닝 모델 가중치를 마운트할 수 있습니다. model-server 컨테이너 이미지에 포함하지 않고 모델의 가중치를 효율적으로 제공할 수 있습니다. 따라서 모델 사양과 콘텐츠를 처리하는 실행 파일과 분리할 수 있습니다.
  • 바이너리 아티팩트를 패키지 및 배포하고 Pod에 직접 마운트하여 CI/CD 파이프라인을 간소화할 수 있습니다. 이를 통해 CI/CD 아티팩트를 이미지 볼륨에 연결하여 작은 기본 이미지 세트를 유지 관리할 수 있습니다.
  • 악성 코드 스캐너의 공개 이미지를 사용하여 개인 악성 코드 서명의 볼륨에 마운트하여 이미지를 기본 이미지에 통합하지 않고 해당 서명을 로드할 수 있으므로 공개 이미지의 저작권에서 허용되지 않을 수 있습니다.

이미지 볼륨을 마운트하려면 Pod에 이미지 볼륨 추가에 설명된 대로 선택적 풀 정책을 사용하여 Pod 사양에 이미지 또는 아티팩트 경로를 포함합니다.

2.11.2. Pod에 이미지 볼륨 추가

OCI(Open Container Initiative) 호환 컨테이너 이미지 또는 아티팩트를 마운트하려면 volume 매개변수를 사용하여 선택적 풀 정책을 사용하여 Pod 사양에 이미지 또는 아티팩트 경로를 포함합니다. Pod를 직접 생성하거나 배포 또는 복제본 세트와 같은 제어 오브젝트를 사용할 수 있습니다.

프로세스

  1. 다음과 유사한 YAML 파일을 생성합니다.

    apiVersion: v1
    kind: Pod
    metadata:
      name: image-volume
    spec:
      containers:
      - name: shell
        command: ["sleep", "infinity"]
        image: debian
        volumeMounts:
        - name: volume
          mountPath: /volume
      volumes:
      - name: volume
        image: 
    1
    
          reference: quay.io/crio/artifact:v2 
    2
    
          pullPolicy: Always 
    3
    Copy to Clipboard Toggle word wrap
    1
    호스트 시스템에서 사용할 수 있는 OCI 컨테이너 이미지 또는 아티팩트를 지정합니다.
    2
    이미지 또는 아티팩트의 경로를 지정합니다.
    3
    다음 옵션 중 하나인 가져오기 정책을 지정합니다.
    • Always 인 경우 kubelet은 항상 이미지를 가져오려고 합니다. 가져오기에 실패하면 kubelet에서 Pod를 Failed 로 설정합니다.
    • Never 인 경우 kubelet은 이미지를 가져오지 않으며 로컬 이미지 또는 아티팩트만 사용합니다. 이미지의 계층이 로컬에 없거나 해당 이미지의 매니페스트가 아직 캐시되지 않은 경우 Pod가 Failed 됩니다.
    • IfNotPresent the kubelet이 없는 경우 이미지를 가져옵니다. 이미지가 없으면 Pod가 실패 되고 가져오기가 실패합니다. 이는 기본값입니다.
  2. 다음 명령을 실행하여 Pod를 생성합니다.

    $ oc create -f <file_name>.yaml
    Copy to Clipboard Toggle word wrap

검증

  • 다음과 유사한 명령을 사용하여 이미지 가져오기 및 마운트에 대한 자세한 정보를 보려면 Pod를 검사합니다.

    $ oc describe pod <pod_name>
    Copy to Clipboard Toggle word wrap

    출력 예

    Name:             image-volume
    Namespace:        default
    # ...
    Volumes:
      volume: 
    1
    
        Type:        Image (a container image or OCI artifact)
        Reference:   quay.io/crio/artifact:v2
        PullPolicy:  IfNotPresent
    # ...
    Events:
      Type    Reason          Age                From               Message
      ----    ------          ----               ----               -------
    # ...
      Normal  Pulling         46s                kubelet            Pulling image "quay.io/crio/artifact:v2"
      Normal  Pulled          44s                kubelet            Successfully pulled image "quay.io/crio/artifact:v2" in 2.261s (2.261s including waiting). Image size: 6707 bytes. 
    2
    
    # ...
    Copy to Clipboard Toggle word wrap

    1
    이미지 볼륨이 Pod에 마운트되었음을 나타냅니다.
    2
    이미지를 성공적으로 가져왔음을 나타냅니다.
맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

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

Red Hat 소개

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

Theme

© 2025 Red Hat