5.22. VMware vSphere CSI Driver Operator
5.22.1. 개요
OpenShift Container Platform은 VMDK(Virtual Machine Disk) 볼륨용 CSI(Container Storage Interface) VMware vSphere 드라이버를 사용하여 영구 볼륨(PV)을 프로비저닝할 수 있습니다.
CSI Operator 및 드라이버를 사용할 때는 영구 스토리지 및 CSI 볼륨 구성에 대해 숙지하는 것이 좋습니다.
vSphere 스토리지 자산에 마운트되는 CSI(영구 볼륨)를 생성하기 위해 OpenShift Container Platform은 openshift-cluster-csi-drivers
네임스페이스에 기본적으로 vSphere CSI Driver Operator 및 vSphere CSI 드라이버를 설치합니다.
-
vSphere CSI Driver Operator: Operator는 PVC(영구 볼륨 클레임)를 생성하는 데 사용할 수 있는
thin-csi
라는 스토리지 클래스를 제공합니다. vSphere CSI Driver Operator는 필요에 따라 스토리지 볼륨을 생성할 수 있어 클러스터 관리자가 스토리지를 사전 프로비저닝할 필요가 없어 동적 볼륨 프로비저닝을 지원합니다. 필요한 경우 이 기본 스토리지 클래스를 비활성화할 수 있습니다( 기본 스토리지 클래스 관리참조). - vSphere CSI 드라이버: 이 드라이버를 사용하면 vSphere PV를 생성 및 마운트할 수 있습니다. OpenShift Container Platform 4.17에서 드라이버 버전은 3.2.0입니다. vSphere CSI 드라이버는 XFS 및 Ext4를 포함하여 기본 Red Hat Core 운영 체제 릴리스에서 지원하는 모든 파일 시스템을 지원합니다. 지원되는 파일 시스템에 대한 자세한 내용은 사용 가능한 파일 시스템 개요 를 참조하십시오.
새로운 설치의 경우 OpenShift Container Platform 4.13 이상에서는 vSphere in-tree 볼륨 플러그인에 대한 자동 마이그레이션을 동등한 CSI 드라이버로 제공합니다. OpenShift Container Platform 4.15 이상으로 업데이트하면 자동 마이그레이션도 제공됩니다. 업데이트 및 마이그레이션에 대한 자세한 내용은 CSI 자동 마이그레이션 을 참조하십시오.
CSI 자동 마이그레이션이 원활해야 합니다. 마이그레이션은 영구 볼륨, 영구 볼륨 클레임 및 스토리지 클래스와 같은 기존 API 오브젝트를 사용하는 방법을 변경하지 않습니다.
5.22.2. CSI 정보
스토리지 벤더는 일반적으로 Kubernetes의 일부로 스토리지 드라이버를 제공합니다. CSI(Container Storage Interface) 구현을 통해 타사 공급자는 코어 Kubernetes 코드를 변경하지 않고도 표준 인터페이스를 사용하여 스토리지 플러그인을 제공할 수 있습니다.
CSI Operator는 in-tree 볼륨 플러그인에서 사용할 수 없는 볼륨 스냅샷과 같은 OpenShift Container Platform 사용자 스토리지 옵션을 제공합니다.
5.22.3. vSphere CSI 제한 사항
다음 제한 사항은 vSphere CSI(Container Storage Interface) Driver Operator에 적용됩니다.
-
vSphere CSI 드라이버는 동적 및 정적 프로비저닝을 지원합니다. 그러나 PV 사양에서 정적 프로비저닝을 사용하는 경우 이 키가 동적으로 프로비저닝된 PV를 나타내므로
csi.volumeAttributes
에서 키storage.kubernetes.io/csiProvisionerIdentity
를 사용하지 마십시오. - vSphere 클라이언트 인터페이스를 사용하여 데이터 저장소 간에 영구 컨테이너 볼륨을 마이그레이션하는 것은 OpenShift Container Platform에서 지원되지 않습니다.
5.22.4. vSphere 스토리지 정책
vSphere CSI Driver Operator 스토리지 클래스는 vSphere의 스토리지 정책을 사용합니다. OpenShift Container Platform은 클라우드 구성에 구성된 데이터 저장소를 대상으로 하는 스토리지 정책을 자동으로 생성합니다.
kind: StorageClass apiVersion: storage.k8s.io/v1 metadata: name: thin-csi provisioner: csi.vsphere.vmware.com parameters: StoragePolicyName: "$openshift-storage-policy-xxxx" volumeBindingMode: WaitForFirstConsumer allowVolumeExpansion: false reclaimPolicy: Delete
5.22.5. ReadWriteMany vSphere 볼륨 지원
기본 vSphere 환경에서 vSAN 파일 서비스를 지원하는 경우 OpenShift Container Platform에서 설치한 vSphere CSI(Container Storage Interface) Driver Operator는 RWX(ReadWriteMany) 볼륨의 프로비저닝을 지원합니다. vSAN 파일 서비스가 구성되지 않은 경우 RWO(ReadWriteOnce)가 사용 가능한 유일한 액세스 모드입니다. vSAN 파일 서비스가 구성되어 있지 않고 RWX를 요청하면 볼륨이 생성되지 않고 오류가 기록됩니다.
사용자 환경에서 vSAN 파일 서비스를 구성하는 방법에 대한 자세한 내용은 vSAN 파일 서비스를 참조하십시오.
다음과 같은 PVC(영구 볼륨 클레임)를 수행하여 RWX 볼륨을 요청할 수 있습니다.
kind: PersistentVolumeClaim apiVersion: v1 metadata: name: myclaim spec: resources: requests: storage: 1Gi accessModes: - ReadWriteMany storageClassName: thin-csi
RWX 볼륨 유형의 PVC를 요청하면 vSAN 파일 서비스에서 지원하는 PV(영구 볼륨)가 프로비저닝됩니다.
5.22.6. VMware vSphere CSI Driver Operator 요구 사항
vSphere CSI(Container Storage Interface) Driver Operator를 설치하려면 다음 요구 사항을 충족해야 합니다.
- VMware vSphere 버전: 7.0 업데이트 2 이상 또는 VMware Cloud Foundation 4.3 이상; 8.0 업데이트 1 이상 또는 VMware Cloud Foundation 5.0 이상
- vCenter 버전: 7.0 업데이트 2 이상 또는 VMware Cloud Foundation 4.3 이상; 8.0 업데이트 1 이상 또는 VMware Cloud Foundation 5.0 이상
- 하드웨어 버전 15 이상의 가상 머신
- 클러스터에 이미 설치된 타사 vSphere CSI 드라이버가 없습니다
타사 vSphere CSI 드라이버가 클러스터에 있는 경우 OpenShift Container Platform은 이를 덮어쓰지 않습니다. 타사 vSphere CSI 드라이버가 있으면 OpenShift Container Platform이 OpenShift Container Platform 4.13 이상으로 업데이트되지 않습니다.
VMware vSphere CSI Driver Operator는 설치 매니페스트에서 platform: vsphere
와 함께 배포된 클러스터에서만 지원됩니다.
CSI(Container Storage Interface) 드라이버, vSphere CSI Driver Operator 및 vSphere Problem Detector Operator에 대한 사용자 정의 역할을 생성할 수 있습니다. 사용자 지정 역할에는 각 vSphere 오브젝트에 최소 권한 세트를 할당하는 권한 세트가 포함될 수 있습니다. 즉 CSI 드라이버, vSphere CSI Driver Operator 및 vSphere Problem Detector Operator가 이러한 오브젝트와의 기본 상호 작용을 설정할 수 있습니다.
vCenter에 OpenShift Container Platform 클러스터를 설치하는 것은 "필수 vCenter 계정 권한" 섹션에 설명된 대로 전체 권한 목록에 대해 테스트됩니다. 전체 권한 목록을 준수하면 제한된 권한 세트를 사용하여 사용자 지정 역할을 생성할 때 발생할 수 있는 예기치 않고 지원되지 않는 동작의 가능성을 줄일 수 있습니다.
타사 CSI 드라이버를 제거하려면 타사 vSphere CSI 드라이버 제거를 참조하십시오.
5.22.7. 타사 vSphere CSI Driver Operator 제거
OpenShift Container Platform 4.10 이상에는 Red Hat에서 지원하는 vSphere CSI(Container Storage Interface) Operator 드라이버 기본 제공 버전이 포함되어 있습니다. 커뮤니티 또는 다른 공급 업체가 제공하는 vSphere CSI 드라이버를 설치한 경우 클러스터에 대해 4.13 이상과 같은 OpenShift Container Platform의 다음 주요 버전으로 업데이트를 비활성화할 수 있습니다.
OpenShift Container Platform 4.12 이상에서는 클러스터가 완전히 지원되며 4.12.z와 같은 z-stream 릴리스의 업데이트는 차단되지 않지만 OpenShift Container Platform의 다음 주요 버전으로 업데이트하기 전에 타사 vSphere CSI 드라이버를 제거하여 이 상태를 수정해야 합니다. 타사 vSphere CSI 드라이버를 제거해도 연결된 PV(영구 볼륨) 오브젝트를 삭제할 필요가 없으며 데이터 손실이 발생하지 않습니다.
이러한 지침은 완료되지 않을 수 있으므로 공급 업체 또는 커뮤니티 공급자 제거 가이드를 참조하여 드라이버 및 구성 요소를 제거하십시오.
타사 vSphere CSI 드라이버를 설치 제거하려면 다음을 수행합니다.
- 타사 vSphere CSI 드라이버(VMware vSphere Container Storage 플러그인) Deployment 및 Daemonset 오브젝트를 삭제합니다.
- 타사 vSphere CSI 드라이버와 함께 이전에 설치된 configmap 및 secret 오브젝트를 삭제합니다.
타사 vSphere CSI 드라이버
CSIDriver
오브젝트를 삭제합니다.~ $ oc delete CSIDriver csi.vsphere.vmware.com
csidriver.storage.k8s.io "csi.vsphere.vmware.com" deleted
OpenShift Container Platform 클러스터에서 타사 vSphere CSI 드라이버를 제거한 후 Red Hat vSphere CSI Driver Operator를 자동으로 다시 시작하며 OpenShift Container Platform 4.11 이상으로의 업그레이드를 차단할 수 있는 모든 조건이 자동으로 제거됩니다. 기존 vSphere CSI PV 오브젝트가 있는 경우 이제 Red Hat의 vSphere CSI Driver Operator에서 라이프사이클을 관리합니다.
5.22.8. vSphere 영구 디스크 암호화
vSphere에서 실행 중인 OpenShift Container Platform에서 VM(가상 머신)과 동적으로 프로비저닝된 PV(영구 볼륨)를 암호화할 수 있습니다.
OpenShift Container Platform은 RWX 암호화 PV를 지원하지 않습니다. 암호화된 스토리지 정책을 사용하는 스토리지 클래스 중 RWX PV를 요청할 수 없습니다.
설치 중 또는 설치 후 수행할 수 있는 PV를 암호화하기 전에 VM을 암호화해야 합니다.
VM 암호화에 대한 자세한 내용은 다음을 참조하십시오.
VM을 암호화한 후 vSphere CSI(Container Storage Interface) 드라이버를 사용하여 동적 암호화 볼륨 프로비저닝을 지원하는 스토리지 클래스를 구성할 수 있습니다. 이 작업은 다음 두 가지 방법 중 하나로 수행할 수 있습니다.
- Datastore URL:이 방법은 매우 유연하지 않으며 단일 데이터 저장소를 사용하도록 강제합니다. 토폴로지 인식 프로비저닝도 지원하지 않습니다.
- 태그 기반 배치: 프로비저닝된 볼륨을 암호화하고 태그 기반 배치를 사용하여 특정 데이터 저장소를 대상으로 합니다.
5.22.8.1. 데이터 저장소 URL 사용
프로세스
데이터 저장소 URL을 사용하여 암호화하려면 다음을 수행합니다.
암호화를 지원하는 데이터 저장소의 기본 스토리지 정책 이름을 확인합니다.
이 정책은 VM을 암호화하는 데 사용된 정책과 동일합니다.
이 스토리지 정책을 사용하는 스토리지 클래스를 생성합니다.
kind: StorageClass apiVersion: storage.k8s.io/v1 metadata: name: encryption provisioner: csi.vsphere.vmware.com parameters: storagePolicyName: <storage-policy-name> 1 datastoreurl: "ds:///vmfs/volumes/vsan:522e875627d-b090c96b526bb79c/"
- 1
- 암호화를 지원하는 데이터 저장소의 기본 스토리지 정책 이름
5.22.8.2. 태그 기반 배치 사용
프로세스
태그 기반 배치를 사용하여 암호화하려면 다음을 수행합니다.
- vCenter에서 이 스토리지 클래스에서 사용할 수 있는 데이터 저장소를 태그하는 카테고리를 생성합니다. 또한 StoragePod(Datastore 클러스터) , Datastore (데이터 저장소) 및 폴더 가 생성된 카테고리에 대해 Associable Entities로 선택되어 있는지 확인합니다.
- vCenter에서 이전에 만든 카테고리를 사용하는 태그를 생성합니다.
- 스토리지 클래스에서 사용할 수 있는 각 데이터 저장소에 이전에 생성된 태그를 할당합니다. 데이터 저장소가 OpenShift Container Platform 클러스터에 참여하는 호스트와 공유되는지 확인합니다.
- vCenter의 주 메뉴에서 정책 및 프로필을 클릭합니다.
- 정책 및 프로필 페이지의 탐색 창에서 VM Storage Policies 를 클릭합니다.
- 만들기를 클릭합니다.
- 스토리지 정책의 이름을 입력합니다.
- 호스트 기반 규칙 사용을 선택하고 태그 기반 배치 규칙 사용을 선택합니다.
다음 탭에서 다음을 수행합니다.
- 암호화 및 기본 암호화 속성을 선택합니다.
- 이전에 만든 태그 범주를 선택하고 선택한 태그를 선택합니다. 정책이 일치하는 데이터 저장소를 선택 중인지 확인합니다.
- 스토리지 정책을 생성합니다.
스토리지 정책을 사용하는 스토리지 클래스를 생성합니다.
kind: StorageClass apiVersion: storage.k8s.io/v1 metadata: name: csi-encrypted provisioner: csi.vsphere.vmware.com reclaimPolicy: Delete volumeBindingMode: WaitForFirstConsumer parameters: storagePolicyName: <storage-policy-name> 1
- 1
- 암호화를 위해 생성한 스토리지 정책의 이름
5.22.9. vSphere CSI에 대한 여러 vCenter 지원
고가용성을 위해 공유 스토리지 없이 여러 vSphere vCenter 클러스터에 OpenShift Container Platform을 배포하는 것이 유용할 수 있습니다. OpenShift Container Platform v4.17 이상에서는 이 기능을 지원합니다.
여러 vCenter는 설치 중에 만 구성할 수 있습니다. 설치 후에는 여러 vCenter를 구성할 수 없습니다.
지원되는 최대 vCenter 클러스터 수는 3개입니다.
vSphere CSI에 대한 여러 vCenter 지원은 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.
5.22.9.1. 설치 중 여러 vCenter 구성
설치 중에 여러 vCenter를 구성하려면 다음을 수행합니다.
- 설치 중에 여러 vSphere 클러스터를 지정합니다. 자세한 내용은 "Installation configuration parameters for vSphere"를 참조하십시오.
추가 리소스
5.22.10. vSphere CSI 토폴로지 개요
OpenShift Container Platform은 다양한 영역과 지역에 vSphere용 OpenShift Container Platform을 배포할 수 있으므로 여러 컴퓨팅 클러스터 및 데이터 센터에 배포할 수 있으므로 단일 장애 지점을 방지할 수 있습니다.
이는 vCenter에서 영역 및 지역 카테고리를 정의한 다음 이러한 범주를 컴퓨팅 클러스터와 같은 다양한 장애 도메인에 할당하여 이러한 영역 및 지역 카테고리에 대한 태그를 생성하여 수행됩니다. 적절한 카테고리를 생성하고 vCenter 오브젝트에 태그를 할당하면 해당 실패 도메인에서 Pod를 예약하는 VM(가상 머신)을 생성하는 추가 머신 세트를 생성할 수 있습니다.
다음 예제에서는 하나의 리전과 두 개의 영역이 있는 두 개의 실패 도메인을 정의합니다.
컴퓨팅 클러스터 | 실패 도메인 | 설명 |
---|---|---|
컴퓨팅 클러스터: ocp1, 데이터 센터: Atlanta | openshift-region: us-east-1 (태그), openshift-zone: us-east-1a (태그) | 이는 us-east-1a 영역과 함께 us-east-1 리전에서 실패 도메인을 정의합니다. |
컴퓨터 클러스터: ocp2, 데이터 센터: Atlanta | openshift-region: us-east-1(태그), openshift-zone: us-east-1b(태그) | 이는 us-east-1b라는 동일한 리전 내에서 다른 실패 도메인을 정의합니다. |
5.22.10.1. vSphere CSI 토폴로지 요구사항
vSphere CSI 토폴로지에 다음 지침이 권장됩니다.
호스트가 아닌 데이터 센터 및 컴퓨팅 클러스터에 토폴로지 태그를 추가하는 것이 좋습니다.
vSphere
-problem-detector
는openshift-region
또는openshift-zone
태그가 데이터 센터 또는 컴퓨팅 클러스터 수준에서 정의되지 않은 경우 경고를 제공합니다. 각 토폴로지 태그(openshift-region
또는openshift-zone
)가 계층 구조에서 한 번만 발생해야 합니다.참고이 권장 사항을 무시하면 CSI 드라이버에서 로그 경고가 표시되고 계층 구조에서 낮은 계층 구조(예: 호스트)가 무시됩니다. VMware는 이 구성을 고려하므로 사용하지 않아야 하는 문제를 방지할 수 있습니다.
-
토폴로지 인식 환경의 볼륨 프로비저닝 요청은 지정된 토폴로지 세그먼트의 모든 호스트에 액세스할 수 있는 데이터 저장소에 볼륨을 생성하려고 합니다. 여기에는 Kubernetes 노드 VM이 실행되고 있지 않은 호스트가 포함됩니다. 예를 들어 vSphere Container Storage 플러그인 드라이버가 데이터 센터
dc-1
에 적용된zone-a
에서 볼륨을 프로비저닝하라는 요청을 수신하는 경우dc-1
아래의 모든 호스트에서 볼륨 프로비저닝을 위해 선택한 데이터 저장소에 액세스할 수 있어야 합니다. 호스트에는dc-1
아래에 직접 있는 것과dc-1
내부의 클러스터의 일부인 호스트가 포함됩니다. - 추가 권장 사항은 VMware 지침 및 토폴로지를 사용한 배포 모범 사례 섹션을 참조하십시오.
5.22.10.2. 설치 중 vSphere 스토리지 토폴로지 생성
5.22.10.2.1. 프로세스
- 설치 중에 토폴로지를 지정합니다. VMware vCenter 섹션의 지역 및 영역 구성 섹션을 참조하십시오.
추가 작업이 필요하지 않으며 OpenShift Container Platform에서 생성한 기본 스토리지 클래스는 토폴로지를 인식하고 다른 장애 도메인에서 볼륨을 프로비저닝할 수 있어야 합니다.
추가 리소스
5.22.10.3. vSphere 스토리지 토폴로지 후 설치 생성
5.22.10.3.1. 프로세스
VMware vCenter vSphere 클라이언트 GUI에서 적절한 영역 및 지역 분류 및 태그를 정의합니다.
vSphere를 사용하면 임의의 이름으로 카테고리를 생성할 수 있지만 OpenShift Container Platform은 토폴로지 카테고리를 정의하는 데
openshift-region
및openshift-zone
이름을 사용하는 것이 좋습니다.vSphere 카테고리 및 태그에 대한 자세한 내용은 VMware vSphere 설명서를 참조하십시오.
- OpenShift Container Platform에서 실패 도메인을 생성합니다. vSphere에서 클러스터의 여러 리전 및 영역 지정 섹션을 참조하십시오.
장애 도메인에서 데이터 저장소에 할당할 태그를 생성합니다.
OpenShift Container Platform이 두 개 이상의 장애 도메인을 확장하면 데이터 저장소가 해당 장애 도메인에서 공유되지 않을 수 있습니다. 여기서 PV(영구 볼륨)의 토폴로지 인식 프로비저닝이 유용합니다.
-
vCenter에서 데이터 저장소 태그를 지정하는 카테고리를 생성합니다. 예를 들면
openshift-zonal-datastore-cat
입니다. 카테고리가 OpenShift Container Platform 클러스터에 참여하는 데이터 저장소에 태그를 지정하는 데 고유하게 사용되는 경우 다른 카테고리 이름을 사용할 수 있습니다. 또한StoragePod
,Datastore
,Folder
가 생성된 카테고리의 연관 가능한 엔티티로 선택되어 있는지 확인합니다. -
vCenter에서 이전에 생성된 카테고리를 사용하는 태그를 생성합니다. 이 예에서는 태그 이름
openshift-zonal-datastore
를 사용합니다. 이전에 생성된 태그(이 예에서는
openshift-zonal-datastore
)를 동적 프로비저닝으로 간주하는 실패 도메인의 각 데이터 저장소에 할당합니다.참고데이터 저장소 카테고리 및 태그에 원하는 모든 이름을 사용할 수 있습니다. 이 예제에서 사용되는 이름은 권장 사항으로 제공됩니다. OpenShift Container Platform 클러스터의 모든 호스트와 공유되는 데이터 저장소만 고유하게 정의하는 태그 및 카테고리가 있는지 확인합니다.
-
vCenter에서 데이터 저장소 태그를 지정하는 카테고리를 생성합니다. 예를 들면
필요에 따라 각 실패 도메인의 태그 기반 데이터 저장소를 대상으로 하는 스토리지 정책을 생성합니다.
- vCenter의 주 메뉴에서 정책 및 프로필을 클릭합니다.
- 정책 및 프로필 페이지의 탐색 창에서 VM Storage Policies 를 클릭합니다.
- 만들기를 클릭합니다.
- 스토리지 정책의 이름을 입력합니다.
규칙의 경우 태그 배치 규칙을 선택하고 원하는 데이터 저장소를 대상으로 하는 태그 및 카테고리(이 예에서는
openshift-zonal-datastore
태그)를 선택합니다.데이터 저장소는 스토리지 호환성 테이블에 나열됩니다.
새 영역 스토리지 정책을 사용하는 새 스토리지 클래스를 생성합니다.
- 스토리지 > StorageClass 를 클릭합니다.
- StorageClasses 페이지에서 StorageClass 만들기 를 클릭합니다.
- 이름에 새 스토리지 클래스의 이름을 입력합니다.
- Provisioner 에서 csi.vsphere.vmware.com 을 선택합니다.
- 추가 매개변수 에서 StoragePolicyName 매개변수의 경우 Value 를 이전에 생성한 새 영역 스토리지 정책의 이름으로 설정합니다.
생성을 클릭합니다.
출력 예
kind: StorageClass apiVersion: storage.k8s.io/v1 metadata: name: zoned-sc 1 provisioner: csi.vsphere.vmware.com parameters: StoragePolicyName: zoned-storage-policy 2 reclaimPolicy: Delete allowVolumeExpansion: true volumeBindingMode: WaitForFirstConsumer
참고이전 YAML 파일을 편집하고
oc create -f $FILE
명령을 실행하여 스토리지 클래스를 생성할 수도 있습니다.
5.22.10.4. 인프라 토폴로지 없이 vSphere 스토리지 토폴로지 생성
OpenShift Container Platform은 토폴로지 인식 설정에서 실패 도메인을 지정하는 데 인프라 오브젝트를 사용하는 것이 좋습니다. 인프라 오브젝트에 실패 도메인을 지정하고 ClusterCSIDriver
오브젝트에 topology-categories를 지정하는 것은 지원되지 않는 작업입니다.
5.22.10.4.1. 프로세스
VMware vCenter vSphere 클라이언트 GUI에서 적절한 영역 및 지역 분류 및 태그를 정의합니다.
vSphere를 사용하면 임의의 이름으로 카테고리를 생성할 수 있지만 OpenShift Container Platform은 토폴로지를 정의하는 데
openshift-region
및openshift-zone
이름을 사용하는 것이 좋습니다.vSphere 카테고리 및 태그에 대한 자세한 내용은 VMware vSphere 설명서를 참조하십시오.
CSI(컨테이너 스토리지 인터페이스) 드라이버가 이 토폴로지를 감지할 수 있도록 하려면
clusterCSIDriver
오브젝트 YAML 파일driverConfig
섹션을 편집합니다.-
이전에 생성한
openshift-zone
및openshift-region
카테고리를 지정합니다. driverType
을vSphere
로 설정합니다.~ $ oc edit clustercsidriver csi.vsphere.vmware.com -o yaml
출력 예
apiVersion: operator.openshift.io/v1 kind: ClusterCSIDriver metadata: name: csi.vsphere.vmware.com spec: logLevel: Normal managementState: Managed observedConfig: null operatorLogLevel: Normal unsupportedConfigOverrides: null driverConfig: driverType: vSphere 1 vSphere: topologyCategories: 2 - openshift-zone - openshift-region
-
이전에 생성한
다음 명령을 실행하여
CSINode
오브젝트에 토폴로지 키가 있는지 확인합니다.~ $ oc get csinode
출력 예
NAME DRIVERS AGE co8-4s88d-infra-2m5vd 1 27m co8-4s88d-master-0 1 70m co8-4s88d-master-1 1 70m co8-4s88d-master-2 1 70m co8-4s88d-worker-j2hmg 1 47m co8-4s88d-worker-mbb46 1 47m co8-4s88d-worker-zlk7d 1 47m
~ $ oc get csinode co8-4s88d-worker-j2hmg -o yaml
출력 예
... spec: drivers: - allocatable: count: 59 name: csi-vsphere.vmware.com nodeID: co8-4s88d-worker-j2hmg topologyKeys: 1 - topology.csi.vmware.com/openshift-zone - topology.csi.vmware.com/openshift-region
- 1
- vSphere
openshift-zone
및openshift-region
catagories의 토폴로지 키입니다.
참고CSINode
오브젝트는 업데이트된 토폴로지 정보를 수신하는 데 약간의 시간이 걸릴 수 있습니다. 드라이버가 업데이트되면CSINode
오브젝트에 토폴로지 키가 있어야 합니다.장애 도메인에서 데이터 저장소에 할당할 태그를 생성합니다.
OpenShift Container Platform이 두 개 이상의 장애 도메인을 확장하면 데이터 저장소가 해당 장애 도메인에서 공유되지 않을 수 있습니다. 여기서 PV(영구 볼륨)의 토폴로지 인식 프로비저닝이 유용합니다.
-
vCenter에서 데이터 저장소 태그를 지정하는 카테고리를 생성합니다. 예를 들면
openshift-zonal-datastore-cat
입니다. 카테고리가 OpenShift Container Platform 클러스터에 참여하는 데이터 저장소에 태그를 지정하는 데 고유하게 사용되는 경우 다른 카테고리 이름을 사용할 수 있습니다. 또한StoragePod
,Datastore
,Folder
가 생성된 카테고리의 연관 가능한 엔티티로 선택되어 있는지 확인합니다. -
vCenter에서 이전에 생성된 카테고리를 사용하는 태그를 생성합니다. 이 예에서는 태그 이름
openshift-zonal-datastore
를 사용합니다. 이전에 생성된 태그(이 예에서는
openshift-zonal-datastore
)를 동적 프로비저닝으로 간주하는 실패 도메인의 각 데이터 저장소에 할당합니다.참고카테고리 및 태그에 대해 원하는 모든 이름을 사용할 수 있습니다. 이 예제에서 사용되는 이름은 권장 사항으로 제공됩니다. OpenShift Container Platform 클러스터의 모든 호스트와 공유되는 데이터 저장소만 고유하게 정의하는 태그 및 카테고리가 있는지 확인합니다.
-
vCenter에서 데이터 저장소 태그를 지정하는 카테고리를 생성합니다. 예를 들면
각 실패 도메인의 태그 기반 데이터 저장소를 대상으로 하는 스토리지 정책을 생성합니다.
- vCenter의 주 메뉴에서 정책 및 프로필을 클릭합니다.
- 정책 및 프로필 페이지의 탐색 창에서 VM Storage Policies 를 클릭합니다.
- 만들기를 클릭합니다.
- 스토리지 정책의 이름을 입력합니다.
규칙의 경우 태그 배치 규칙을 선택하고 원하는 데이터 저장소를 대상으로 하는 태그 및 카테고리(이 예에서는
openshift-zonal-datastore
태그)를 선택합니다.데이터 저장소는 스토리지 호환성 테이블에 나열됩니다.
새 영역 스토리지 정책을 사용하는 새 스토리지 클래스를 생성합니다.
- 스토리지 > StorageClass 를 클릭합니다.
- StorageClasses 페이지에서 StorageClass 만들기 를 클릭합니다.
- 이름에 새 스토리지 클래스의 이름을 입력합니다.
- Provisioner 에서 csi.vsphere.vmware.com 을 선택합니다.
- 추가 매개변수 에서 StoragePolicyName 매개변수의 경우 Value 를 이전에 생성한 새 영역 스토리지 정책의 이름으로 설정합니다.
생성을 클릭합니다.
출력 예
kind: StorageClass apiVersion: storage.k8s.io/v1 metadata: name: zoned-sc 1 provisioner: csi.vsphere.vmware.com parameters: StoragePolicyName: zoned-storage-policy 2 reclaimPolicy: Delete allowVolumeExpansion: true volumeBindingMode: WaitForFirstConsumer
참고이전 YAML 파일을 편집하고
oc create -f $FILE
명령을 실행하여 스토리지 클래스를 생성할 수도 있습니다.
추가 리소스
5.22.10.5. 결과
토폴로지 인식 스토리지 클래스의 PVC(영구 볼륨 클레임) 및 PV를 생성하는 것은 실제로 영역이므로 Pod 예약 방법에 따라 각 영역에 데이터 저장소를 사용해야 합니다.
~ $ oc get pv <pv-name> -o yaml
출력 예
... nodeAffinity: required: nodeSelectorTerms: - matchExpressions: - key: topology.csi.vmware.com/openshift-zone 1 operator: In values: - <openshift-zone> -key: topology.csi.vmware.com/openshift-region 2 operator: In values: - <openshift-region> ... peristentVolumeclaimPolicy: Delete storageClassName: <zoned-storage-class-name> 3 volumeMode: Filesystem ...
5.22.11. vSphere의 최대 스냅샷 수 변경
vSphere CSI(Container Storage Interface)의 볼륨당 기본 최대 스냅샷 수는 3입니다. 볼륨당 최대 32개까지 변경할 수 있습니다.
그러나 스냅샷 최대값을 늘리려면 성능 장단점이 필요하므로 볼륨당 2~3개의 스냅샷만 사용할 수 있습니다.
자세한 VMware 스냅샷 성능 권장 사항은 추가 리소스를 참조하십시오.
사전 요구 사항
- 관리자 권한으로 클러스터에 액세스합니다.
절차
다음 명령을 실행하여 현재 구성 맵을 확인합니다.
$ oc -n openshift-cluster-csi-drivers get cm/vsphere-csi-config -o yaml
출력 예
apiVersion: v1 data: cloud.conf: |+ # Labels with topology values are added dynamically via operator [Global] cluster-id = vsphere-01-cwv8p [VirtualCenter "vcenter.openshift.com"] insecure-flag = true datacenters = DEVQEdatacenter migration-datastore-url = ds:///vmfs/volumes/vsan:527320283a8c3163-2faa6dc5949a3a28/ kind: ConfigMap metadata: creationTimestamp: "2024-03-06T09:46:40Z" name: vsphere-csi-config namespace: openshift-cluster-csi-drivers resourceVersion: "126687"
이 예에서는 글로벌 최대 스냅샷 수가 구성되지 않았으므로 기본값 3이 적용됩니다.
다음 명령을 실행하여 스냅샷 제한을 변경합니다.
글로벌 스냅샷 제한을 설정합니다.
$ oc patch clustercsidriver/csi.vsphere.vmware.com --type=merge -p '{"spec":{"driverConfig":{"vSphere":{"globalMaxSnapshotsPerBlockVolume": 10}}}}' clustercsidriver.operator.openshift.io/csi.vsphere.vmware.com patched
이 예에서 글로벌 제한이 10(
globalMaxSnapshotsPerBlockVolume
으로 설정)으로 변경됩니다.가상 볼륨 스냅샷 제한을 설정합니다.
이 매개변수는 가상 볼륨 데이터 저장소에만 제한을 설정합니다. 가상 볼륨 최대 스냅샷 제한은 전역 제약 조건을 재정의하지만 설정되지 않은 경우 기본값은 글로벌 제한입니다.
$ oc patch clustercsidriver/csi.vsphere.vmware.com --type=merge -p '{"spec":{"driverConfig":{"vSphere":{"granularMaxSnapshotsPerBlockVolumeInVVOL": 5}}}}' clustercsidriver.operator.openshift.io/csi.vsphere.vmware.com patched
이 예에서는 가상 볼륨 제한이 5로 변경되고 있습니다(
granularMaxSnapshotsPerBlockVolumeInVVOL
을 5)로 설정합니다.vSAN 스냅샷 제한을 설정합니다.
이 매개변수는 vSAN 데이터 저장소에만 제한을 설정합니다. 설정된 경우 vSAN 최대 스냅샷 제한이 전역 제약 조건을 덮어씁니다. 그러나 설정되지 않은 경우 기본값은 글로벌 제한입니다. vSAN ESA 설정에서 최대 32 값을 설정할 수 있습니다.
$ oc patch clustercsidriver/csi.vsphere.vmware.com --type=merge -p '{"spec":{"driverConfig":{"vSphere":{"granularMaxSnapshotsPerBlockVolumeInVSAN": 7}}}}' clustercsidriver.operator.openshift.io/csi.vsphere.vmware.com patched
이 예에서 vSAN 제한이 7로 변경되었습니다 (
granularMaxSnapshotsPerBlockVolumeInVSAN
을 7로 설정).
검증
다음 명령을 실행하여 구성 맵에 변경 사항이 반영되었는지 확인합니다.
$ oc -n openshift-cluster-csi-drivers get cm/vsphere-csi-config -o yaml
출력 예
apiVersion: v1 data: cloud.conf: |+ # Labels with topology values are added dynamically via operator [Global] cluster-id = vsphere-01-cwv8p [VirtualCenter "vcenter.openshift.com"] insecure-flag = true datacenters = DEVQEdatacenter migration-datastore-url = ds:///vmfs/volumes/vsan:527320283a8c3163-2faa6dc5949a3a28/ [Snapshot] global-max-snapshots-per-block-volume = 10 1 kind: ConfigMap metadata: creationTimestamp: "2024-03-06T09:46:40Z" name: vsphere-csi-config namespace: openshift-cluster-csi-drivers resourceVersion: "127118" uid: f6968303-81d8-4048-99c1-d8211363d0fa
- 1
global-max-snapshots-per-block-volume
이 이제 10으로 설정됩니다.
5.22.12. vSphere에서 스토리지 비활성화 및 활성화
클러스터 관리자는 VMware vSphere CSI(Container Storage Interface) 드라이버를 Day 2 작업으로 비활성화하여 vSphere CSI 드라이버가 vSphere 설정과 상호 작용하지 않도록 할 수 있습니다.
vSphere에서 스토리지를 비활성화하고 활성화하는 것은 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.
5.22.12.1. vSphere에서 스토리지를 비활성화하고 활성화한 결과
vSphere에서 스토리지를 비활성화하고 활성화한 결과는 다음 표에 설명되어 있습니다.
비활성화 | 활성화 |
---|---|
| * vSphere CSI Driver Operator는 CSI 드라이버를 다시 설치합니다. * 필요한 경우 vSphere CSI Driver Operator는 vSphere 스토리지 정책을 생성합니다. |
5.22.12.2. vSphere에서 스토리지 비활성화 및 활성화
이 절차를 실행하기 전에 이전 " vSphere에서 스토리지 비활성화 및 활성화" 테이블 및 환경에 미치는 영향을 주의 깊게 검토하십시오.
프로세스
vSphere에서 스토리지를 비활성화하거나 활성화하려면 다음을 수행합니다.
- Administration > CustomResourceDefinitions 를 클릭합니다.
- Name 드롭다운 옆에 있는 CustomResourceDefinitions 페이지에서 "clustercsidriver"를 입력합니다.
- CRD ClusterCSIDriver 를 클릭합니다.
- Instances 탭을 클릭합니다.
- csi.vsphere.vmware.com 을 클릭합니다.
- YAML 탭을 클릭합니다.
spec.managementState
의 경우 값을Removed
또는Managed
로 변경합니다.-
Removed
: 스토리지가 비활성화됨 -
Managed
: 스토리지가 활성화됨
-
- 저장을 클릭합니다.
스토리지를 비활성화하는 경우 드라이버가 제거되었는지 확인합니다.
- 워크로드 > 포드 를 클릭합니다.
포드 페이지의 이름 필터 상자에 "vmware-vsphere-csi-driver"를 입력합니다.
표시되는 유일한 항목은 Operator입니다. 예: " vmware-vsphere-csi-driver-operator-559b97ffc5-w99fm"