6.10. Azure Disk CSI Driver Operator
6.10.1. 개요 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift Container Platform은 Microsoft Azure Disk Storage용 CSI(Container Storage Interface) 드라이버를 사용하여 PV(영구 볼륨)를 프로비저닝할 수 있습니다.
CSI 운영자와 드라이버를 사용할 때는 영구 저장소 와 CSI 볼륨 구성 에 익숙해야 합니다.
Azure Disk 저장소 자산에 마운트되는 CSI 프로비저닝 PV를 만들기 위해 OpenShift Container Platform은 기본적으로 openshift-cluster-csi-drivers
네임스페이스에 Azure Disk CSI Driver Operator와 Azure Disk CSI 드라이버를 설치합니다.
-
Azure Disk CSI Driver Operator는 영구 볼륨 클레임(PVC)을 만드는 데 사용할 수 있는
managed-csi
라는 저장소 클래스를 제공합니다. Azure Disk CSI Driver Operator는 필요에 따라 스토리지 볼륨을 생성할 수 있도록 하여 클러스터 관리자가 스토리지를 사전 프로비저닝할 필요가 없어 동적 볼륨 프로비저닝을 지원합니다. 원하는 경우 이 기본 저장소 클래스를 비활성화할 수 있습니다( 기본 저장소 클래스 관리 참조). - Azure Disk CSI 드라이버를 사용하면 Azure Disk PV를 생성 및 마운트할 수 있습니다.
6.10.2. CSI 정보 링크 복사링크가 클립보드에 복사되었습니다!
스토리지 벤더는 일반적으로 Kubernetes의 일부로 스토리지 드라이버를 제공합니다. 컨테이너 스토리지 인터페이스(CSI)를 구현하면 타사 공급업체는 Kubernetes의 핵심 코드를 변경하지 않고도 표준 인터페이스를 사용하여 스토리지 플러그인을 제공할 수 있습니다.
CSI 운영자는 OpenShift Container Platform 사용자에게 트리 내 볼륨 플러그인으로는 불가능한 볼륨 스냅샷과 같은 저장 옵션을 제공합니다.
OpenShift Container Platform은 Azure Disk 인트리 볼륨 플러그인을 해당 CSI 드라이버로 자동 마이그레이션합니다. 자세한 내용은 CSI 자동 마이그레이션 을 참조하십시오.
6.10.3. 스토리지 계정 유형으로 스토리지 클래스 생성 링크 복사링크가 클립보드에 복사되었습니다!
스토리지 클래스는 스토리지 수준 및 사용량을 구분하고 조정하는 데 사용됩니다. 스토리지 클래스를 정의하면 동적으로 프로비저닝된 영구 볼륨을 얻을 수 있습니다.
스토리지 클래스를 생성할 때 스토리지 계정 유형을 지정할 수 있습니다. 이는 Azure 스토리지 계정 SKU 계층에 해당합니다. 유효한 옵션은 Standard_LRS
, Premium_LRS
, StandardSSD_LRS
, UltraSSD_LRS
, Premium_ZRS
, StandardSSD_ZRS
및 PremiumV2_LRS
입니다. Azure SKU 계층을 찾는 방법에 대한 자세한 내용은 SKU 유형을 참조하세요.
ZRS와 PremiumV2_LRS에는 모두 지역 제한이 있습니다. 이러한 제한 사항에 대한 자세한 내용은 ZRS 제한 사항 및 Premium_LRS 제한 사항을 참조하세요.
사전 요구 사항
- 관리자 권한으로 OpenShift Container Platform 클러스터에 액세스
프로세스
다음 단계에 따라 스토리지 계정 유형으로 스토리지 클래스를 만듭니다.
다음과 유사한 YAML 파일을 사용하여 스토리지 계정 유형을 지정하는 스토리지 클래스를 만듭니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고PremiumV2_LRS의 경우
storageclass.parameters
에cachingMode: None을
지정합니다.저장소 클래스를 나열하여 저장소 클래스가 생성되었는지 확인하세요.
oc get storageclass
$ oc get storageclass
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
oc get storageclass
$ oc get storageclass NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE azurefile-csi file.csi.azure.com Delete Immediate true 68m managed-csi (default) disk.csi.azure.com Delete WaitForFirstConsumer true 68m sc-prem-zrs disk.csi.azure.com Delete WaitForFirstConsumer true 4m25s
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 스토리지 계정 유형이 있는 새로운 스토리지 클래스입니다.
6.10.4. 사용자 관리 암호화 링크 복사링크가 클립보드에 복사되었습니다!
사용자 관리 암호화 기능을 사용하면 설치 중에 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) 블록 스토리지
OS(루트) 디스크가 암호화되어 있고 스토리지 클래스에 암호화된 키가 정의되어 있지 않은 경우, Azure Disk CSI 드라이버는 기본적으로 OS 디스크 암호화 키를 사용하여 프로비저닝된 스토리지 볼륨을 암호화합니다.
Azure에 대한 사용자 관리 암호화를 사용하여 설치하는 방법에 대한 자세한 내용은 Azure에 대한 사용자 관리 암호화 사용을 참조하세요.
6.10.5. PVC를 사용하여 울트라 디스크가 있는 머신을 배포하는 머신 세트 링크 복사링크가 클립보드에 복사되었습니다!
Ultra Disks가 있는 머신을 배포하는 Azure에서 실행되는 머신 세트를 만들 수 있습니다. Ultra 디스크는 가장 까다로운 데이터 워크로드에 사용하기 위한 고성능 스토리지입니다.
트리 내 플러그인과 CSI 드라이버는 모두 PVC를 사용하여 Ultra Disks를 활성화합니다. PVC를 생성하지 않고도 Ultra Disks가 있는 머신을 데이터 디스크로 배포할 수도 있습니다.
6.10.5.1. 머신 세트를 사용하여 울트라 디스크가 있는 머신 생성 링크 복사링크가 클립보드에 복사되었습니다!
Azure에서 Ultra Disks가 있는 머신을 배포하려면 머신 세트 YAML 파일을 편집하세요.
사전 요구 사항
- 기존 Microsoft Azure 클러스터가 있어야 합니다.
프로세스
기존 Azure
MachineSet
사용자 지정 리소스(CR)를 복사하고 다음 명령을 실행하여 편집합니다.oc edit machineset <machine_set_name>
$ oc edit machineset <machine_set_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 여기서
<machine_set_name>
은 Ultra Disks를 사용하여 머신을 프로비저닝하려는 머신 세트입니다.다음 줄을 표시된 위치에 추가합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 업데이트된 구성을 사용하여 머신 세트를 만듭니다.
oc create -f <machine_set_name>.yaml
$ oc create -f <machine_set_name>.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 YAML 정의를 포함하는 스토리지 클래스를 만듭니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 YAML 정의가 포함된
ultra-disk-sc
스토리지 클래스를 참조하는 영구 볼륨 클레임(PVC)을 만듭니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 YAML 정의가 포함된 Pod를 생성합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
다음 명령을 실행하여 머신이 생성되었는지 확인하세요.
oc get machines
$ oc get machines
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 기계는
실행
상태여야 합니다.실행 중이고 노드가 연결된 머신의 경우 다음 명령을 실행하여 파티션을 검증합니다.
oc debug node/<node_name> -- chroot /host lsblk
$ oc debug node/<node_name> -- chroot /host lsblk
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 명령에서
oc debug node/<node_name>은
노드<node_name>
에서 디버깅 셸을 시작하고--
로 명령을 전달합니다. 전달된 명령chroot /host는
기본 호스트 OS 바이너리에 대한 액세스를 제공하고,lsblk는
호스트 OS 머신에 연결된 블록 장치를 보여줍니다.
다음 단계
포드 내에서 Ultra Disk를 사용하려면 마운트 지점을 사용하는 워크로드를 생성하세요. 다음 예와 유사한 YAML 파일을 만듭니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.10.5.2. Ultra Disks를 활성화하는 머신 세트에 대한 문제 해결 리소스 링크 복사링크가 클립보드에 복사되었습니다!
이 섹션의 정보를 활용해 발생할 수 있는 문제를 파악하고 복구하세요.
6.10.5.2.1. Ultra Disk로 지원되는 영구 볼륨 클레임을 마운트할 수 없습니다. 링크 복사링크가 클립보드에 복사되었습니다!
Ultra Disk로 지원되는 영구 볼륨 클레임을 마운트하는 데 문제가 있는 경우 Pod는 ContainerCreating
상태에 멈추고 경고가 발생합니다.
예를 들어, Pod를 호스팅하는 노드를 지원하는 머신에 additionalCapabilities.ultraSSDEnabled
매개변수가 설정되지 않은 경우 다음 오류 메시지가 나타납니다.
StorageAccountType UltraSSD_LRS can be used only when additionalCapabilities.ultraSSDEnabled is set.
StorageAccountType UltraSSD_LRS can be used only when additionalCapabilities.ultraSSDEnabled is set.
이 문제를 해결하려면 다음 명령을 실행하여 Pod를 설명하세요.
oc -n <stuck_pod_namespace> describe pod <stuck_pod_name>
$ oc -n <stuck_pod_namespace> describe pod <stuck_pod_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow