6.13. GCP PD CSI Driver Operator
6.13.1. 개요 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift Container Platform은 GCP(Google Cloud Platform) PD(영구 디스크) 스토리지용 CSI(Container Storage Interface) 드라이버를 사용하여 PV(영구 볼륨)를 프로비저닝할 수 있습니다.
CSI(Container Storage Interface) Operator 및 드라이버를 사용할 때는 영구 스토리지 및 CSI 볼륨 구성에 대해 숙지하는 것이 좋습니다.
GCP PD 스토리지 자산에 마운트하는 CSI(영구 볼륨)를 생성하기 위해 OpenShift Container Platform은 openshift-cluster-csi-drivers
네임스페이스에서 기본적으로 GCP PD CSI Driver Operator 및 GCP PD CSI 드라이버를 설치합니다.
- GCP PD CSI Driver Operator: 기본적으로 Operator는 PVC를 생성하는 데 사용할 수 있는 스토리지 클래스를 제공합니다. 원하는 경우 이 기본 저장소 클래스를 비활성화할 수 있습니다( 기본 저장소 클래스 관리 참조). GCE Persistent Disk를 사용하여 영구 저장소 에 설명된 대로 GCP PD 저장소 클래스를 만드는 옵션도 있습니다.
GCP PD 드라이버: 이 드라이버를 사용하면 GCP PD PV를 생성 및 마운트할 수 있습니다.
GCP PD CSI 드라이버는 베어 메탈 및 N4 머신 시리즈에 대한 C3 인스턴스 유형을 지원합니다. C3 인스턴스 유형과 N4 머신 시리즈는 하이퍼디스크 균형 디스크를 지원합니다.
OpenShift Container Platform은 GCE Persistent Disk 인트리 볼륨 플러그인을 해당 CSI 드라이버로 자동 마이그레이션합니다. 자세한 내용은 CSI 자동 마이그레이션 을 참조하십시오.
6.13.2. 베어 메탈 및 N4 머신 시리즈용 C3 인스턴스 유형 링크 복사링크가 클립보드에 복사되었습니다!
6.13.2.1. C3 및 N4 인스턴스 유형 제한 사항 링크 복사링크가 클립보드에 복사되었습니다!
베어 메탈 및 N4 머신 시리즈의 C3 인스턴스 유형에 대한 GCP PD CSI 드라이버 지원에는 다음과 같은 제한 사항이 있습니다.
- 하이퍼디스크 균형 디스크를 생성하는 경우 볼륨 크기를 최소 4Gi로 설정해야 합니다. OpenShift Container Platform은 최소 크기로 반올림하지 않으므로 올바른 크기를 직접 지정해야 합니다.
- 스토리지 풀을 사용하는 경우 볼륨 복제가 지원되지 않습니다.
- 복제 또는 크기 조정을 위해서는 하이퍼디스크 균형 디스크의 원래 볼륨 크기가 6Gi 이상이어야 합니다.
기본 저장 클래스는 standard-csi입니다.
중요수동으로 저장 클래스를 생성해야 합니다.
저장소 클래스를 만드는 방법에 대한 자세한 내용은 하이퍼디스크 균형 디스크 설정 섹션의 2단계를 참조하세요.
- 예를 들어 N2와 N4와 같이 서로 다른 스토리지 유형을 사용하는 혼합된 가상 머신(VM)이 있는 클러스터는 지원되지 않습니다. 이는 대부분의 레거시 VM에서 하이퍼디스크 균형 디스크를 사용할 수 없기 때문입니다. 마찬가지로 일반 영구 디스크는 N4/C3 VM에서 사용할 수 없습니다.
- c3-standard-2, c3-standard-4, n4-standard-2, n4-standard-4 노드가 있는 GCP 클러스터는 연결 가능한 최대 디스크 수(16개)를 잘못 초과할 수 있습니다( JIRA 링크 ).
- 추가적인 제한 사항 .
6.13.2.2. 하이퍼디스크 균형 디스크에 대한 스토리지 풀 개요 링크 복사링크가 클립보드에 복사되었습니다!
Hyperdisk 스토리지 풀은 Compute Engine과 함께 사용하여 대규모 스토리지를 구축할 수 있습니다. 하이퍼디스크 스토리지 풀은 용량, 처리량, IOPS를 구매하여 모아둔 것으로, 필요에 따라 애플리케이션에 프로비저닝할 수 있습니다. 하이퍼디스크 스토리지 풀을 사용하면 풀에서 디스크를 생성하고 관리하고 여러 작업 부하에서 디스크를 사용할 수 있습니다. 디스크를 전체적으로 관리하면 예상 용량과 성능 향상을 달성하는 동시에 비용을 절감할 수 있습니다. 하이퍼디스크 스토리지 풀에서 필요한 스토리지만 사용하면 용량 예측의 복잡성이 줄어들고 수백 개의 디스크를 관리하는 것에서 단일 스토리지 풀을 관리하는 것으로 관리 업무가 간소화됩니다.
저장소 풀을 설정하려면 하이퍼디스크 균형 디스크 설정을 참조하세요.
6.13.2.3. 하이퍼디스크 균형 디스크 설정 링크 복사링크가 클립보드에 복사되었습니다!
사전 요구 사항
- 관리자 권한으로 클러스터에 액세스
프로세스
하이퍼디스크 균형 디스크를 설정하려면 다음 단계를 완료하세요.
- 하이퍼디스크 균형 디스크로 프로비저닝된 연결 디스크로 GCP 클러스터를 만듭니다.
설치 중에 하이퍼디스크 균형 디스크를 지정하여 스토리지 클래스를 만듭니다.
사용자 정의를 사용하여 GCP에 클러스터 설치 섹션의 절차를 따르세요.
install-config.yaml 파일에 다음 예제 파일을 사용하세요.
install-config YAML 파일 예시
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고클러스터의 모든 노드는 하이퍼디스크 균형 볼륨을 지원해야 합니다. 혼합 노드가 있는 클러스터(예: 하이퍼디스크 균형 디스크를 사용하는 N2 및 N3)는 지원되지 않습니다.
Cloud Credential Operator 유틸리티 매니페스트 통합 섹션의 3단계 후에 다음 매니페스트를 설치 프로그램에서 생성한 매니페스트 디렉터리에 복사합니다.
- cluster_csi_driver.yaml - 기본 스토리지 클래스 생성을 거부하도록 지정합니다.
storageclass.yaml - 하이퍼디스크별 스토리지 클래스를 생성합니다.
예제 클러스터 CSI 드라이버 YAML 파일
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 기본 OpenShift Container Platform 스토리지 클래스 생성을 비활성화하도록 지정합니다.
예제 저장 클래스 YAML 파일
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 저장 클래스의 이름을 지정하세요. 이 예에서는
hyperdisk-sc
입니다. - 2
pd.csi.storage.gke.io는
GCP CSI 프로비저너를 지정합니다.- 3
- 하이퍼디스크 균형 디스크를 사용하도록 지정합니다.
- 4
- "Mi" 한정자를 사용하여 MiBps 단위의 처리량 값을 지정합니다. 예를 들어, 필요한 처리량이 250MiBps인 경우 "250Mi"를 지정합니다. 값을 지정하지 않으면 용량은 디스크 유형 기본값에 따라 결정됩니다.
- 5
- 어떠한 한정자 없이 IOPS 값을 지정합니다. 예를 들어, 7,000 IOPS가 필요한 경우 "7000"을 지정합니다. 값을 지정하지 않으면 용량은 디스크 유형 기본값에 따라 결정됩니다.
- 6
- 스토리지 풀을 사용하는 경우, 사용하려는 특정 스토리지 풀 목록을 다음 형식으로 지정합니다: projects/PROJECT_ID/zones/ZONE/storagePools/STORAGE_POOL_NAME.
- 7
- 스토리지 풀을 사용하는 경우
allowedTopologies를
설정하여 프로비저닝된 볼륨의 토폴로지를 스토리지 풀이 있는 위치로 제한합니다. 이 예에서는us-east4-c
입니다.
다음 예제 YAML 파일을 사용하여 하이퍼디스크별 스토리지 클래스를 사용하는 영구 볼륨 클레임(PVC)을 만듭니다.
PVC YAML 파일 예시
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 방금 만든 PVC를 사용하여 배포를 만듭니다. 배포를 사용하면 Pod가 다시 시작되고 일정이 변경된 후에도 애플리케이션이 영구 저장소에 액세스할 수 있도록 보장하는 데 도움이 됩니다.
- 배포를 생성하기 전에 지정된 머신 시리즈가 포함된 노드 풀이 실행 중인지 확인하세요. 그렇지 않으면 Pod가 일정을 예약하는 데 실패합니다.
다음 예제 YAML 파일을 사용하여 배포를 만듭니다.
배포 YAML 파일의 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 배포가 성공적으로 생성되었는지 확인하세요.
oc get deployment
$ oc get deployment
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME READY UP-TO-DATE AVAILABLE AGE postgres 0/1 1 0 42s
NAME READY UP-TO-DATE AVAILABLE AGE postgres 0/1 1 0 42s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 하이퍼디스크 인스턴스가 프로비저닝을 완료하고 READY 상태를 표시하는 데 몇 분이 걸릴 수 있습니다.
다음 명령을 실행하여 PVC
my-pvc가
영구 볼륨(PV)에 성공적으로 바인딩되었는지 확인하세요.oc get pvc my-pvc
$ oc get pvc my-pvc
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS VOLUMEATTRIBUTESCLASS AGE my-pvc Bound pvc-1ff52479-4c81-4481-aa1d-b21c8f8860c6 2Ti RWO hyperdisk-sc <unset> 2m24s
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS VOLUMEATTRIBUTESCLASS AGE my-pvc Bound pvc-1ff52479-4c81-4481-aa1d-b21c8f8860c6 2Ti RWO hyperdisk-sc <unset> 2m24s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 하이퍼디스크 균형 디스크의 예상 구성을 확인하세요.
gcloud compute disks list
$ gcloud compute disks list
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME LOCATION LOCATION_SCOPE SIZE_GB TYPE STATUS instance-20240914-173145-boot us-central1-a zone 150 pd-standard READY instance-20240914-173145-data-workspace us-central1-a zone 100 pd-balanced READY c4a-rhel-vm us-central1-a zone 50 hyperdisk-balanced READY
NAME LOCATION LOCATION_SCOPE SIZE_GB TYPE STATUS instance-20240914-173145-boot us-central1-a zone 150 pd-standard READY instance-20240914-173145-data-workspace us-central1-a zone 100 pd-balanced READY c4a-rhel-vm us-central1-a zone 50 hyperdisk-balanced READY
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 하이퍼디스크 균형 디스크.
스토리지 풀을 사용하는 경우 다음 명령을 실행하여 볼륨이 스토리지 클래스 및 PVC에 지정된 대로 프로비저닝되었는지 확인하세요.
gcloud compute storage-pools list-disks pool-us-east4-c --zone=us-east4-c
$ gcloud compute storage-pools list-disks pool-us-east4-c --zone=us-east4-c
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME STATUS PROVISIONED_IOPS PROVISIONED_THROUGHPUT SIZE_GB pvc-1ff52479-4c81-4481-aa1d-b21c8f8860c6 READY 3000 140 2048
NAME STATUS PROVISIONED_IOPS PROVISIONED_THROUGHPUT SIZE_GB pvc-1ff52479-4c81-4481-aa1d-b21c8f8860c6 READY 3000 140 2048
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.13.3. CSI 정보 링크 복사링크가 클립보드에 복사되었습니다!
스토리지 벤더는 일반적으로 Kubernetes의 일부로 스토리지 드라이버를 제공합니다. 컨테이너 스토리지 인터페이스(CSI)를 구현하면 타사 공급업체는 Kubernetes의 핵심 코드를 변경하지 않고도 표준 인터페이스를 사용하여 스토리지 플러그인을 제공할 수 있습니다.
CSI 운영자는 OpenShift Container Platform 사용자에게 트리 내 볼륨 플러그인으로는 불가능한 볼륨 스냅샷과 같은 저장 옵션을 제공합니다.
6.13.4. GCP PD CSI 드라이버 스토리지 클래스 매개변수 링크 복사링크가 클립보드에 복사되었습니다!
GCP(Google Cloud Platform) PD(영구 디스크) CSI(Container Storage Interface) 드라이버는 CSI 외부 프로비저너
사이드카를 컨트롤러로 사용합니다. 이 컨테이너는 CSI 드라이버와 함께 배포된 별도의 Helper 컨테이너입니다. 사이드카는 CreateVolume
작업을 트리거하여 PV(영구 볼륨)를 관리합니다.
GCP PD CSI 드라이버는 csi.storage.k8s.io/fstype
매개변수 키를 사용하여 동적 프로비저닝을 지원합니다. 다음 표에는 OpenShift Container Platform에서 지원하는 모든 GCP PD CSI 스토리지 클래스 매개변수를 설명합니다.
매개변수 | 값 | 기본 | 설명 |
---|---|---|---|
|
|
| 표준 PV 또는 솔리드 스테이트 드라이브 PV 중 하나를 선택할 수 있습니다. 드라이버는 값의 유효성을 검사하지 않으므로 가능한 모든 값이 허용됩니다. |
|
|
| 존 또는 지역 PV 중 하나를 선택할 수 있습니다. |
| 새 디스크를 암호화하는 데 사용할 키가 정규화된 리소스 식별자입니다. | 빈 문자열 | CMEK(고객 관리 암호화 키)를 사용하여 새 디스크를 암호화합니다. |
6.13.5. 사용자 정의 암호화 영구 볼륨 생성 링크 복사링크가 클립보드에 복사되었습니다!
PersistentVolumeClaim
오브젝트를 생성할 때 OpenShift Container Platform은 새 PV(영구 볼륨)를 프로비저닝하고 PersistentVolume
오브젝트를 생성합니다. 새로 생성된 PV를 암호화하여 클러스터에서 PV를 보호하기 위해 GCP(Google Cloud Platform)에 사용자 지정 암호화 키를 추가할 수 있습니다.
암호화를 위해 새로 연결된 PV는 신규 또는 기존 Google Cloud KMS(키 관리 서비스) 키를 사용하여 클러스터에서 CMEK(고객 관리 암호화 키)를 사용합니다.
사전 요구 사항
- 실행 중인 OpenShift Container Platform 클러스터에 로그인되어 있습니다.
- Cloud KMS 키 링 및 키 버전이 생성되어 있습니다.
CMEK 및 Cloud KMS 리소스에 대한 자세한 내용은 CMEK(고객 관리 암호화 키) 사용을 참조하십시오.
절차
사용자 정의 PV를 생성하려면 다음 단계를 완료합니다.
Cloud KMS 키를 사용하여 스토리지 클래스를 생성합니다. 다음 예시에서는 암호화된 볼륨의 동적 프로비저닝을 활성화합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 이 필드는 새 디스크를 암호화하는 데 사용할 키의 리소스 식별자여야 합니다. 값은 대소문자를 구분합니다. 키 ID 값을 제공하는 방법에 대한 자세한 내용은 리소스의 ID 검색 및 Cloud KMS 리소스 ID 가져오기를 참조하십시오.
참고disk-encryption-✓s-key
매개변수를 기존 스토리지 클래스에 추가할 수 없습니다. 그러나 스토리지 클래스를 삭제하고 동일한 이름과 다른 매개변수 세트로 다시 생성할 수 있습니다. 이렇게 하는 경우 기존 클래스의 프로비저너가pd.csi.storage.gke.io
여야 합니다.oc
명령을 사용하여 OpenShift Container Platform 클러스터에 스토리지 클래스를 배포합니다.oc describe storageclass csi-gce-pd-cmek
$ oc describe storageclass csi-gce-pd-cmek
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이전 단계에서 생성한 스토리지 클래스 오브젝트의 이름과 일치하는
pvc.yaml
파일을 생성합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고새 스토리지 클래스를 기본값으로 표시한 경우
storageClassName
필드를 생략할 수 있습니다.클러스터에 PVC를 적용합니다.
oc apply -f pvc.yaml
$ oc apply -f pvc.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow PVC 상태를 가져온 후 새로 프로비저닝된 PV에 바인딩되었는지 확인합니다.
oc get pvc
$ oc get pvc
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE podpvc Bound pvc-e36abf50-84f3-11e8-8538-42010a800002 10Gi RWO csi-gce-pd-cmek 9s
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE podpvc Bound pvc-e36abf50-84f3-11e8-8538-42010a800002 10Gi RWO csi-gce-pd-cmek 9s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고스토리지 클래스에
WaitForFirstConsumer
로 설정된volumeBindingMode
필드가 있는 경우 이를 확인하기 전에 PVC를 사용하도록 Pod를 생성해야 합니다.
이제 CMEK가 지원하는 PV를 OpenShift Container Platform 클러스터와 함께 사용할 준비가 되었습니다.
6.13.6. 사용자 관리 암호화 링크 복사링크가 클립보드에 복사되었습니다!
사용자 관리 암호화 기능을 사용하면 설치 중에 OpenShift Container Platform 노드 루트 볼륨을 암호화하는 키를 제공할 수 있으며, 모든 관리형 스토리지 클래스에서 이러한 키를 사용하여 프로비저닝된 스토리지 볼륨을 암호화할 수 있습니다. install-config YAML 파일의 platform.<cloud_type>.defaultMachinePlatform 필드에서 사용자 지정 키를 지정해야 합니다.
이 기능은 다음과 같은 저장 유형을 지원합니다.
- Amazon Web Services(AWS) Elastic Block 스토리지(EBS)
- Microsoft Azure 디스크 저장소
- Google Cloud Platform(GCP) 영구 디스크(PD) 스토리지
- IBM Virtual Private Cloud(VPC) 블록 스토리지
GCP PD에 대한 사용자 관리 암호화를 설치하는 방법에 대한 자세한 내용은 설치 구성 매개변수를 참조하세요.