5.6. 기본 스토리지 클래스 관리


5.6.1. 개요

기본 스토리지 클래스를 관리하면 다음과 같은 몇 가지 다른 목표를 달성할 수 있습니다.

  • 동적 프로비저닝을 비활성화하여 정적 프로비저닝을 강제 적용합니다.
  • 다른 기본 스토리지 클래스가 있는 경우 스토리지 Operator가 초기 기본 스토리지 클래스를 다시 생성하지 못하도록 합니다.
  • 기본 스토리지 클래스 이름 변경 또는 변경

이러한 목표를 달성하려면 ClusterCSIDriver 오브젝트의 spec.storageClassState 필드에 대한 설정을 변경합니다. 이 필드에 가능한 설정은 다음과 같습니다.

  • Managed: (기본값) CSI(Container Storage Interface) Operator는 기본 스토리지 클래스를 적극적으로 관리하므로 클러스터 관리자가 기본 스토리지 클래스에 대한 대부분의 수동 변경 사항이 제거되고 수동으로 삭제하려고 하면 기본 스토리지 클래스가 지속적으로 다시 생성됩니다.
  • Unmanaged: 기본 스토리지 클래스를 수정할 수 있습니다. CSI Operator는 스토리지 클래스를 적극적으로 관리하지 않으므로 자동으로 생성하는 기본 스토리지 클래스를 조정하지 않습니다.
  • Removed: CSI Operator가 기본 스토리지 클래스를 삭제합니다.

기본 스토리지 클래스 관리는 다음 CSI(Container Storage Interface) 드라이버 Operator에서 지원합니다.

5.6.2. 웹 콘솔을 사용하여 기본 스토리지 클래스 관리

사전 요구 사항

  • OpenShift Container Platform 웹 콘솔에 액세스합니다.
  • cluster-admin 권한으로 클러스터에 액세스합니다.

프로세스

웹 콘솔을 사용하여 기본 스토리지 클래스를 관리하려면 다음을 수행합니다.

  1. 웹 콘솔에 로그인합니다.
  2. Administration > CustomResourceDefinitions 를 클릭합니다.
  3. CustomResourceDefinitions 페이지에서 clustercsidrivers를 입력하여 ClusterCSIDriver 오브젝트를 찾습니다.
  4. ClusterCSIDriver 를 클릭한 다음 Instances 탭을 클릭합니다.
  5. 원하는 인스턴스의 이름을 클릭한 다음 YAML 탭을 클릭합니다.
  6. Managed,Unmanaged 또는 Removed 의 값을 사용하여 spec.storageClassState 필드를 추가합니다.

    예제

    ...
    spec:
      driverConfig:
        driverType: ''
      logLevel: Normal
      managementState: Managed
      observedConfig: null
      operatorLogLevel: Normal
      storageClassState: Unmanaged 1
    ...

    1
    spec.storageClassState 필드가 "Unmanaged"로 설정
  7. 저장을 클릭합니다.

5.6.3. CLI를 사용하여 기본 스토리지 클래스 관리

사전 요구 사항

  • cluster-admin 권한으로 클러스터에 액세스합니다.

프로세스

CLI를 사용하여 스토리지 클래스를 관리하려면 다음 명령을 실행합니다.

oc patch clustercsidriver $DRIVERNAME --type=merge -p "{\"spec\":{\"storageClassState\":\"${STATE}\"}}" 1
1
여기서 ${STATE} 는 "제거" 또는 "관리되지 않음" 또는 "관리되지 않음"입니다.

여기서 $DRIVERNAME 은 프로비저너 이름입니다. oc get sc 명령을 실행하여 프로비저너 이름을 찾을 수 있습니다.

5.6.4. absent 또는 여러 기본 스토리지 클래스

5.6.4.1. 여러 기본 스토리지 클래스

기본이 아닌 스토리지 클래스를 기본값으로 표시하고 기존 기본 스토리지 클래스를 설정하지 않거나 기본 스토리지 클래스가 이미 있을 때 기본 스토리지 클래스를 생성하는 경우 여러 기본 스토리지 클래스가 발생할 수 있습니다. 여러 기본 스토리지 클래스가 있는 경우 기본 스토리지 클래스 pvc.spec.storageClassName=nil)를 요청하는 모든 영구 볼륨 클레임(PVC)은 해당 스토리지 클래스의 기본 상태와 관계없이 가장 최근에 생성된 기본 스토리지 클래스를 가져옵니다. 경고 대시보드에서 여러 기본 스토리지 클래스인 MultipleDefaultStorageClasses 가 있다는 경고를 받습니다.

5.6.4.2. 기본 스토리지 클래스가 없음

PVC에서 존재하지 않는 기본 스토리지 클래스를 사용하려는 두 가지 시나리오가 있습니다.

  • 관리자는 기본 스토리지 클래스를 제거하거나 기본이 아닌 것으로 표시한 다음 사용자가 기본 스토리지 클래스를 요청하는 PVC를 생성합니다.
  • 설치 중에 설치 프로그램은 아직 생성되지 않은 기본 스토리지 클래스를 요청하는 PVC를 생성합니다.

이전 시나리오에서는 PVC가 무기한 보류 중 상태로 유지됩니다.

OpenShift Container Platform에서는 기본 스토리지 클래스를 PVC에 소급하는 기능을 제공하므로 보류 중 상태로 유지되지 않습니다. 이 기능을 활성화하면 기본 스토리지 클래스가 없을 때 생성되는 기본 스토리지 클래스를 요청하는 PVC는 기본 스토리지 클래스가 생성되거나, 기존 스토리지 클래스 중 하나가 기본값을 선언할 때까지 보류 중 상태로 유지됩니다. 기본 스토리지 클래스가 생성되거나 선언되면 PVC에서 새 기본 스토리지 클래스를 가져옵니다.

중요

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

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

5.6.4.2.1. 프로세스

소급 기본 스토리지 클래스 할당을 활성화하려면 다음을 수행합니다.

  1. 기능 게이트를 활성화합니다( 노드 클러스터 작업 → 기능 게이트를 사용한 기능 활성화참조).

    중요

    기능 게이트를 사용하여 기술 프리뷰 기능을 켜면 해제할 수 없습니다. 이로 인해 클러스터 업그레이드가 불가능합니다.

    다음 구성 예제에서는 소급 기본 스토리지 클래스 할당 및 기타 모든 기술 프리뷰 기능을 활성화합니다.

    apiVersion: config.openshift.io/v1
    kind: FeatureGate
    metadata:
      name: cluster
    spec:
      featureSet: TechPreviewNoUpgrade 1
    ...
    1
    소급 기본 스토리지 클래스 할당을 활성화합니다.

5.6.5. 기본 스토리지 클래스 변경

다음 절차에 따라 기본 스토리지 클래스를 변경합니다.

예를 들어 두 개의 스토리지 클래스인 gp3standard 가 있고 기본 스토리지 클래스를 gp3 에서 standard 로 변경하려는 경우 .

사전 요구 사항

  • cluster-admin 권한으로 클러스터에 액세스합니다.

프로세스

기본 스토리지 클래스를 변경하려면 다음을 수행합니다.

  1. 스토리지 클래스를 나열합니다.

    $ oc get storageclass

    출력 예

    NAME                 TYPE
    gp3 (default)        kubernetes.io/aws-ebs 1
    standard             kubernetes.io/aws-ebs

    1
    (default) 는 기본 스토리지 클래스를 나타냅니다.
  2. 원하는 스토리지 클래스를 기본값으로 설정합니다.

    원하는 스토리지 클래스의 경우 다음 명령을 실행하여 storageclass.kubernetes.io/is-default-class 주석을 true 로 설정합니다.

    $ oc patch storageclass standard -p '{"metadata": {"annotations": {"storageclass.kubernetes.io/is-default-class": "true"}}}'
    참고

    짧은 시간 동안 여러 기본 스토리지 클래스를 사용할 수 있습니다. 그러나 결국 하나의 기본 스토리지 클래스만 존재하는지 확인해야 합니다.

    여러 기본 스토리지 클래스가 있는 경우 기본 스토리지 클래스 pvc.spec.storageClassName=nil)를 요청하는 모든 영구 볼륨 클레임(PVC)은 해당 스토리지 클래스의 기본 상태와 관계없이 가장 최근에 생성된 기본 스토리지 클래스를 가져옵니다. 경고 대시보드에서 여러 기본 스토리지 클래스인 MultipleDefaultStorageClasses 가 있다는 경고를 받습니다.

  3. 이전 기본 스토리지 클래스에서 기본 스토리지 클래스 설정을 제거합니다.

    이전 기본 스토리지 클래스의 경우 다음 명령을 실행하여 storageclass.kubernetes.io/is-default-class 주석의 값을 false 로 변경합니다.

    $ oc patch storageclass gp3 -p '{"metadata": {"annotations": {"storageclass.kubernetes.io/is-default-class": "false"}}}'
  4. 변경 사항을 확인합니다.

    $ oc get storageclass

    출력 예

    NAME                 TYPE
    gp3                  kubernetes.io/aws-ebs
    standard (default)   kubernetes.io/aws-ebs

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.