5.2. CSI 인라인 임시 볼륨


CSI(Container Storage Interface) 인라인 임시 볼륨을 사용하여 Pod가 배포되고 Pod가 제거될 때 인라인 임시 볼륨을 생성하는 Pod 사양을 정의할 수 있습니다.

이 기능은 지원되는 CSI(Container Storage Interface) 드라이버인 * 공유 리소스 CSI 드라이버 * Azure File CSI 드라이버에서만 사용할 수 있습니다.

5.2.1. CSI 인라인 임시 볼륨 개요

일반적으로 CSI(Container Storage Interface) 드라이버에서 지원하는 볼륨은 PersistentVolumePersistentVolumeClaim 오브젝트 조합에서만 사용할 수 있습니다.

이 기능을 사용하면 PersistentVolume 오브젝트가 아닌 Pod 사양에 직접 CSI 볼륨을 지정할 수 있습니다. 인라인 볼륨은 임시 볼륨이며 Pod를 다시 시작하면 유지되지 않습니다.

5.2.1.1. 지원 제한

기본적으로 OpenShift Container Platform에서는 다음과 같은 제한이 있는 CSI 인라인 임시 볼륨을 지원합니다.

  • CSI 드라이버에서만 지원을 사용할 수 있습니다. In-tree 및 FlexVolumes는 지원되지 않습니다.
  • 공유 리소스 CSI 드라이버는 여러 네임스페이스에서 기술 프리뷰 기능으로 시크릿 또는 ConfigMap에 액세스하기 위해서만 인라인 임시 볼륨 사용을 지원합니다.
  • 커뮤니티 또는 스토리지 벤더는 이러한 볼륨을 지원하는 다른 CSI 드라이버를 제공합니다. CSI 드라이버 공급자가 제공하는 설치 지침을 따르십시오.

CSI 드라이버는 임시 용량을 포함하여 인라인 볼륨 기능을 구현하지 못할 수 있습니다. 자세한 내용은 CSI 드라이버 설명서를 참조하십시오.

중요

공유 리소스 CSI 드라이버는 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.

Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.

5.2.2. CSI 볼륨 승인 플러그인

CSI(Container Storage Interface) 볼륨 승인 플러그인을 사용하면 Pod 승인에서 CSI 임시 볼륨을 프로비저닝할 수 있는 개별 CSI 드라이버 사용을 제한할 수 있습니다. 관리자는 csi-ephemeral-volume-profile 라벨을 추가할 수 있으며 이 레이블은 Admission 플러그인에서 검사하고 시행, 경고 및 감사 결정에 사용됩니다.

5.2.2.1. 개요

CSI Volume Admission 플러그인을 사용하려면 다음 예제와 같이 CSI 드라이버의 유효 Pod 보안 프로필을 선언하는 CSIDriver 오브젝트에 security.openshift.io/csi-ephemeral-volume-profile 라벨을 추가합니다.

kind: CSIDriver
metadata:
  name: csi.mydriver.company.org
  labels:
    security.openshift.io/csi-ephemeral-volume-profile: restricted 1
1
csi-ephemeral-volume-profile 레이블이 있는 CSI 드라이버 오브젝트 YAML 파일 "restricted"로 설정

이 "효력 프로파일"은 Pod의 네임스페이스가 Pod 보안 표준에 의해 관리될 때 Pod에서 CSI 임시 볼륨을 마운트할 수 있음을 전달합니다.

CSI Volume Admission 플러그인은 Pod가 생성될 때 Pod 볼륨을 검사합니다. CSI 볼륨을 사용하는 기존 Pod는 영향을 받지 않습니다. Pod에서 CSI(컨테이너 스토리지 인터페이스) 볼륨을 사용하는 경우 플러그인은 CSIDriver 오브젝트를 조회하고 csi-ephemeral-volume-profile 라벨을 검사한 다음 시행, 경고 및 감사 결정에 레이블 값을 사용합니다.

5.2.2.2. Pod 보안 프로필 적용

CSI 드라이버에 csi-ephemeral-volume-profile 레이블이 있는 경우 CSI 드라이버를 사용하여 CSI 임시 볼륨을 마운트하는 Pod는 Pod 보안 표준을 동일하거나 더 큰 권한을 적용하는 네임스페이스에서 실행해야 합니다. 네임스페이스가 보다 제한적인 표준을 적용하면 CSI Volume Admission 플러그인이 승인을 거부합니다. 다음 표에서는 지정된 라벨 값에 대해 다양한 Pod 보안 프로필에 대한 적용 동작을 설명합니다.

표 5.2. Pod 보안 프로필 적용
Pod 보안 프로필드라이버 라벨: restricted드라이버 라벨: 기준드라이버 라벨: privileged

restricted

Allowed

Denied

Denied

기준

Allowed

Allowed

Denied

privileged

Allowed

Allowed

Allowed

5.2.2.3. Pod 보안 프로필 경고

CSI Volume Admission 플러그인은 CSI 드라이버의 유효 프로파일이 Pod 네임스페이스의 Pod 보안 경고 프로필보다 허용적인 경우 경고할 수 있습니다. 다음 표는 지정된 라벨 값에 대해 다양한 Pod 보안 프로파일에 대한 경고가 발생하는 경우를 보여줍니다.

표 5.3. Pod 보안 프로필 경고
Pod 보안 프로필드라이버 라벨: restricted드라이버 라벨: 기준드라이버 라벨: privileged

restricted

No warning

Warning

Warning

기준

No warning

No warning

Warning

privileged

No warning

No warning

No warning

5.2.2.4. Pod 보안 프로필 감사

CSI 볼륨 Admission 플러그인은 CSI 드라이버의 유효 프로파일이 Pod 네임스페이스의 Pod 보안 감사 프로필보다 허용적인 경우 감사 주석을 Pod에 적용할 수 있습니다. 다음 표는 지정된 라벨 값에 대해 다른 Pod 보안 프로필에 적용되는 감사 주석을 보여줍니다.

표 5.4. Pod 보안 프로필 감사
Pod 보안 프로필드라이버 라벨: restricted드라이버 라벨: 기준드라이버 라벨: privileged

restricted

No audit

Audit

Audit

기준

No audit

No audit

Audit

privileged

No audit

No audit

No audit

5.2.2.5. CSI Volume Admission 플러그인의 기본 동작

CSI 임시 볼륨에서 참조된 CSI 드라이버에 csi-ephemeral-volume-profile 레이블이 없는 경우 CSI Volume Admission 플러그인은 드라이버에 시행, 경고, 감사 동작을 위한 권한 있는 프로필이 있는 것으로 간주합니다. 마찬가지로 Pod의 네임스페이스에 Pod 보안 승인 라벨이 설정되지 않은 경우 Admission 플러그인은 적용, 경고 및 감사 결정에 제한된 프로필이 허용되는 것으로 가정합니다. 따라서 라벨이 설정되지 않은 경우 해당 CSI 드라이버를 사용하는 CSI 임시 볼륨은 기본적으로 권한 있는 네임스페이스에서만 사용할 수 있습니다.

OpenShift Container Platform과 함께 제공되며 임시 볼륨을 지원하는 CSI 드라이버는 csi-ephemeral-volume-profile 레이블에 대해 적절한 기본 설정이 있습니다.

  • 공유 리소스 CSI 드라이버: restricted
  • Azure File CSI 드라이버: 권한

원하는 경우 관리자는 레이블의 기본값을 변경할 수 있습니다.

5.2.3. Pod 사양에 CSI 인라인 임시 볼륨 포함

OpenShift Container Platform의 Pod 사양에 CSI 인라인 임시 볼륨을 포함할 수 있습니다. 런타임 시 중첩된 인라인 볼륨은 관련 Pod의 임시 라이프사이클을 따라 CSI 드라이버가 Pod를 생성 및 삭제할 때 볼륨 작업의 모든 단계를 처리합니다.

절차

  1. Pod 오브젝트 정의를 생성하여 파일에 저장합니다.
  2. 파일에 CSI 인라인 임시 볼륨을 삽입합니다.

    my-csi-app.yaml

    kind: Pod
    apiVersion: v1
    metadata:
      name: my-csi-app
    spec:
      containers:
        - name: my-frontend
          image: busybox
          volumeMounts:
          - mountPath: "/data"
            name: my-csi-inline-vol
          command: [ "sleep", "1000000" ]
      volumes: 1
        - name: my-csi-inline-vol
          csi:
            driver: inline.storage.kubernetes.io
            volumeAttributes:
              foo: bar

    1
    풀에서 사용되는 볼륨의 이름입니다.
  3. 이전 단계에서 저장한 오브젝트 정의 파일을 생성합니다.

    $ oc create -f my-csi-app.yaml

5.2.4. 추가 리소스

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.