5.2. CSI 인라인 임시 볼륨


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

이 기능은 지원되는 CSI(Container Storage Interface) 드라이버에서만 사용할 수 있습니다.

  • 공유 리소스 CSI 드라이버
  • Azure File CSI 드라이버
  • 보안 저장소 CSI 드라이버

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

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

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

5.2.1.1. 지원 제한

중요

이제 Red Hat OpenShift 1.1 빌드 에서 공유 리소스 CSI 드라이버 기능을 사용할 수 있습니다. 이 기능은 OpenShift Container Platform에서 더 이상 사용되지 않습니다. 이 기능을 사용하려면 Red Hat OpenShift 1.1 또는 최신 버전의 빌드를 사용해야 합니다.

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

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

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

5.2.2. CSI 볼륨 Admission 플러그인

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

5.2.2.1. 개요

관리자는 CSI 볼륨 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 파일

이 "효율 프로파일"은 Pod의 네임스페이스가 Pod 보안 표준에 의해 관리될 때 Pod에서 CSI 드라이버를 사용하여 CSI 임시 볼륨을 마운트할 수 있다고 통신합니다.

CSI 볼륨 Admission 플러그인은 Pod가 생성되면 Pod 볼륨을 검사합니다. CSI 볼륨을 사용하는 기존 Pod는 영향을 받지 않습니다. Pod에서 CSI(Container Storage Interface) 볼륨을 사용하는 경우 플러그인은 CSIDriver 오브젝트를 조회하고 csi-ephemeral-volume-profile 라벨을 검사한 다음 적용, 경고 및 감사 결정에 레이블의 값을 사용합니다.

5.2.2.2. Pod 보안 프로필 적용

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

표 5.2. Pod 보안 프로필 적용
Pod 보안 프로필드라이버 레이블: restricted드라이버 레이블: baseline드라이버 레이블: privileged

restricted

Allowed

Denied

Denied

기준

Allowed

Allowed

Denied

privileged

Allowed

Allowed

Allowed

5.2.2.3. Pod 보안 프로필 경고

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

표 5.3. Pod 보안 프로필 경고
Pod 보안 프로필드라이버 레이블: restricted드라이버 레이블: baseline드라이버 레이블: privileged

restricted

No warning

Warning

Warning

기준

No warning

No warning

Warning

privileged

No warning

No warning

No warning

5.2.2.4. Pod 보안 프로필 감사

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

표 5.4. Pod 보안 프로필 감사
Pod 보안 프로필드라이버 레이블: restricted드라이버 레이블: baseline드라이버 레이블: privileged

restricted

No audit

Audit

Audit

기준

No audit

No audit

Audit

privileged

No audit

No audit

No audit

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

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

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

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

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

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.