Google Cloud용 Cloud Volumes Service 백엔드를 구성합니다
제공된 샘플 구성을 사용하여 Trident 설치를 위한 백엔드로 NetApp Cloud Volumes Service for Google Cloud를 구성하는 방법에 대해 알아보십시오.
Google Cloud 드라이버 세부 정보입니다
Trident는 gcp-cvs
클러스터와 통신할 수 있는 드라이버를 제공합니다. 지원되는 액세스 모드는 ReadWriteOnce(RWO), ReadOnlyMany(ROX), ReadWriteMany(rwx), ReadWriteOncePod(RWOP)입니다.
드라이버 | 프로토콜 | 볼륨 모드 | 액세스 모드가 지원됩니다 | 지원되는 파일 시스템 |
---|---|---|---|---|
GCP-CV |
NFS 를 참조하십시오 |
파일 시스템 |
RWO, ROX, rwx, RWOP |
|
Cloud Volumes Service for Google Cloud에 대한 Trident의 지원에 대해 알아보십시오
Trident는 다음 2가지 중 하나로 Cloud Volumes Service 볼륨을 생성할 수 있습니다"서비스 유형".
-
* CVS - 성능 *: 기본 Trident 서비스 유형입니다. 이처럼 성능에 최적화된 서비스 유형은 성능을 중요시하는 운영 워크로드에 가장 적합합니다. CVS - 성능 서비스 유형은 최소 100GiB 크기의 볼륨을 지원하는 하드웨어 옵션입니다. "3가지 서비스 레벨"다음 중 하나를 선택할 수 있습니다.
-
standard
-
premium
-
extreme
-
-
CVS *: CVS 서비스 유형은 높은 조널 가용성을 제공하며, 성능은 중간 수준으로 제한됩니다. CVS 서비스 유형은 스토리지 풀을 사용하여 1GiB의 작은 볼륨을 지원하는 소프트웨어 옵션입니다. 스토리지 풀에는 최대 50개의 볼륨이 포함될 수 있으며 이 볼륨에서 풀의 용량과 성능을 공유할 수 있습니다. 다음 중 하나를 선택할 수 있습니다 "서비스 레벨 2개":
-
standardsw
-
zoneredundantstandardsw
-
를 구성하고 사용합니다 "Google Cloud용 Cloud Volumes Service" 백엔드, 다음이 필요합니다.
-
NetApp Cloud Volumes Service로 구성된 Google Cloud 계정
-
Google Cloud 계정의 프로젝트 번호입니다
-
Google Cloud 서비스 계정에는 netcloudvolumes.admin 역할이 포함되어 있습니다
-
Cloud Volumes Service 계정에 대한 API 키 파일입니다
백엔드 구성 옵션
각 백엔드는 단일 Google Cloud 지역에 볼륨을 프로비저닝합니다. 다른 영역에 볼륨을 생성하려면 추가 백엔드를 정의할 수 있습니다.
매개 변수 | 설명 | 기본값 |
---|---|---|
'내전' |
항상 1 |
|
'torageDriverName'입니다 |
스토리지 드라이버의 이름입니다 |
"GCP-CV" |
백엔드이름 |
사용자 지정 이름 또는 스토리지 백엔드 |
드라이버 이름 + "_" + API 키의 일부 |
'원어클래스' |
CVS 서비스 유형을 지정하는 데 사용되는 선택적 매개 변수입니다. 를 사용하여 |
|
|
CVS 서비스 유형만 볼륨 생성을 위한 스토리지 풀을 지정하는 데 사용되는 선택적 매개 변수입니다. |
|
'프로젝트 번호' |
Google Cloud 계정 프로젝트 번호입니다. 이 값은 Google Cloud 포털 홈 페이지에서 확인할 수 있습니다. |
|
hostProjectNumber입니다 |
공유 VPC 네트워크를 사용하는 경우 필요합니다. 이 시나리오에서는 |
|
아피지역 |
Trident에서 Cloud Volumes Service 볼륨을 생성하는 Google Cloud 영역입니다. 교차 지역 Kubernetes 클러스터를 생성할 경우, 에서 생성된 볼륨을 |
|
아피키 |
를 사용하여 Google Cloud 서비스 계정에 대한 API 키입니다 |
|
proxyURL |
프록시 서버가 CVS 계정에 연결해야 하는 경우 프록시 URL입니다. 프록시 서버는 HTTP 프록시 또는 HTTPS 프록시일 수 있습니다. HTTPS 프록시의 경우 프록시 서버에서 자체 서명된 인증서를 사용할 수 있도록 인증서 유효성 검사를 건너뜁니다. 인증이 활성화된 프록시 서버는 지원되지 않습니다. |
|
nfsMountOptions를 선택합니다 |
NFS 마운트 옵션에 대한 세밀한 제어 |
"nfsvers=3" |
LimitVolumeSize |
요청된 볼륨 크기가 이 값보다 큰 경우 용량 할당에 실패합니다. |
""(기본적으로 적용되지 않음) |
'저급' |
새 볼륨에 대한 CVS - 성능 또는 CVS 서비스 수준 CV - 성능 값은 입니다 |
CV - 성능 기본값은 "표준"입니다. CV 기본값은 "standardsw"입니다. |
네트워크 |
Cloud Volumes Service 볼륨에 사용되는 Google Cloud 네트워크 |
"기본값" |
debugTraceFlags를 선택합니다 |
문제 해결 시 사용할 디버그 플래그입니다. 예: |
null입니다 |
|
지역 간 액세스를 설정하려면 에 대한 StorageClass 정의를 사용합니다 |
볼륨 프로비저닝 옵션
에서 기본 볼륨 프로비저닝을 제어할 수 있습니다 defaults
구성 파일의 섹션입니다.
매개 변수 | 설명 | 기본값 |
---|---|---|
엑포트 규칙 |
새 볼륨의 내보내기 규칙. CIDR 표기법을 사용하여 IPv4 주소 또는 IPv4 서브넷의 조합을 쉼표로 구분해야 합니다. |
"0.0.0.0/0" |
나프산디렉토리 |
'.snapshot' 디렉토리에 액세스합니다 |
"거짓" |
안산예비역 |
스냅숏용으로 예약된 볼륨의 백분율입니다 |
""(CVS 기본값 0 허용) |
'크기'입니다 |
새 볼륨의 크기입니다. CVS - 최소 성능은 100GiB입니다. CV 최소값은 1GiB입니다. |
CVS - 성능 서비스 유형의 기본값은 "100GiB"입니다. CVS 서비스 유형은 기본값을 설정하지 않지만 최소 1GiB가 필요합니다. |
CVS - 성능 서비스 유형의 예
다음 예에서는 CVS - 성능 서비스 유형에 대한 샘플 구성을 제공합니다.
예 1: 최소 구성
기본 CVS - 성능 서비스 유형과 기본 "표준" 서비스 수준을 사용하는 최소 백엔드 구성입니다.
--- version: 1 storageDriverName: gcp-cvs projectNumber: '012345678901' apiRegion: us-west2 apiKey: type: service_account project_id: my-gcp-project private_key_id: "<id_value>" private_key: | -----BEGIN PRIVATE KEY----- <key_value> -----END PRIVATE KEY----- client_email: cloudvolumes-admin-sa@my-gcp-project.iam.gserviceaccount.com client_id: '123456789012345678901' auth_uri: https://accounts.google.com/o/oauth2/auth token_uri: https://oauth2.googleapis.com/token auth_provider_x509_cert_url: https://www.googleapis.com/oauth2/v1/certs client_x509_cert_url: https://www.googleapis.com/robot/v1/metadata/x509/cloudvolumes-admin-sa%40my-gcp-project.iam.gserviceaccount.com
예 2: 서비스 수준 구성
이 샘플에서는 서비스 수준 및 볼륨 기본값을 포함한 백엔드 구성 옵션을 보여 줍니다.
--- version: 1 storageDriverName: gcp-cvs projectNumber: '012345678901' apiRegion: us-west2 apiKey: type: service_account project_id: my-gcp-project private_key_id: "<id_value>" private_key: | -----BEGIN PRIVATE KEY----- <key_value> -----END PRIVATE KEY----- client_email: cloudvolumes-admin-sa@my-gcp-project.iam.gserviceaccount.com client_id: '123456789012345678901' auth_uri: https://accounts.google.com/o/oauth2/auth token_uri: https://oauth2.googleapis.com/token auth_provider_x509_cert_url: https://www.googleapis.com/oauth2/v1/certs client_x509_cert_url: https://www.googleapis.com/robot/v1/metadata/x509/cloudvolumes-admin-sa%40my-gcp-project.iam.gserviceaccount.com proxyURL: http://proxy-server-hostname/ nfsMountOptions: vers=3,proto=tcp,timeo=600 limitVolumeSize: 10Ti serviceLevel: premium defaults: snapshotDir: 'true' snapshotReserve: '5' exportRule: 10.0.0.0/24,10.0.1.0/24,10.0.2.100 size: 5Ti
예 3: 가상 풀 구성
이 샘플은 를 사용합니다 storage
가상 풀 및 를 구성합니다 StorageClasses
다시 언급한다는 것입니다. 을 참조하십시오 스토리지 클래스 정의 스토리지 클래스를 정의한 방법을 확인합니다.
이 경우 를 설정하는 모든 가상 풀에 대해 특정 기본값이 설정됩니다 snapshotReserve
5% 및 에서 exportRule
를 0.0.0.0/0으로 설정합니다. 가상 풀은 에 정의되어 있습니다 storage
섹션을 참조하십시오. 각 개별 가상 풀은 고유한 가상 풀을 정의합니다 serviceLevel`그리고 일부 풀은 기본값을 덮어씁니다. 가상 풀 레이블을 사용하여 에 따라 풀을 구분했습니다 `performance
및 protection
.
--- version: 1 storageDriverName: gcp-cvs projectNumber: '012345678901' apiRegion: us-west2 apiKey: type: service_account project_id: my-gcp-project private_key_id: "<id_value>" private_key: | -----BEGIN PRIVATE KEY----- <key_value> -----END PRIVATE KEY----- client_email: cloudvolumes-admin-sa@my-gcp-project.iam.gserviceaccount.com client_id: '123456789012345678901' auth_uri: https://accounts.google.com/o/oauth2/auth token_uri: https://oauth2.googleapis.com/token auth_provider_x509_cert_url: https://www.googleapis.com/oauth2/v1/certs client_x509_cert_url: https://www.googleapis.com/robot/v1/metadata/x509/cloudvolumes-admin-sa%40my-gcp-project.iam.gserviceaccount.com nfsMountOptions: vers=3,proto=tcp,timeo=600 defaults: snapshotReserve: '5' exportRule: 0.0.0.0/0 labels: cloud: gcp region: us-west2 storage: - labels: performance: extreme protection: extra serviceLevel: extreme defaults: snapshotDir: 'true' snapshotReserve: '10' exportRule: 10.0.0.0/24 - labels: performance: extreme protection: standard serviceLevel: extreme - labels: performance: premium protection: extra serviceLevel: premium defaults: snapshotDir: 'true' snapshotReserve: '10' - labels: performance: premium protection: standard serviceLevel: premium - labels: performance: standard serviceLevel: standard
스토리지 클래스 정의
다음 StorageClass 정의는 가상 풀 구성 예에 적용됩니다. 사용 `parameters.selector`볼륨을 호스팅하는 데 사용되는 가상 풀을 각 StorageClass에 대해 지정할 수 있습니다. 볼륨은 선택한 풀에 정의된 측면을 갖습니다.
스토리지 클래스 예
apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: cvs-extreme-extra-protection provisioner: csi.trident.netapp.io parameters: selector: "performance=extreme; protection=extra" allowVolumeExpansion: true --- apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: cvs-extreme-standard-protection provisioner: csi.trident.netapp.io parameters: selector: "performance=premium; protection=standard" allowVolumeExpansion: true --- apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: cvs-premium-extra-protection provisioner: csi.trident.netapp.io parameters: selector: "performance=premium; protection=extra" allowVolumeExpansion: true --- apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: cvs-premium provisioner: csi.trident.netapp.io parameters: selector: "performance=premium; protection=standard" allowVolumeExpansion: true --- apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: cvs-standard provisioner: csi.trident.netapp.io parameters: selector: "performance=standard" allowVolumeExpansion: true --- apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: cvs-extra-protection provisioner: csi.trident.netapp.io parameters: selector: "protection=extra" allowVolumeExpansion: true
-
첫 번째 StorageClass입니다 (
cvs-extreme-extra-protection
)가 첫 번째 가상 풀에 매핑됩니다. 이 풀은 스냅샷 예약 공간이 10%인 최고 성능을 제공하는 유일한 풀입니다. -
Last StorageClass(
cvs-extra-protection
)는 10%의 스냅숏 예비 공간을 제공하는 모든 스토리지 풀을 호출합니다. Trident는 선택된 가상 풀을 결정하고 스냅샷 예약 요구 사항이 충족되는지 확인합니다.
CVS 서비스 유형 예
다음 예에서는 CVS 서비스 유형에 대한 샘플 구성을 제공합니다.
예 1: 최소 구성
을 사용하는 최소 백엔드 구성입니다 storageClass
CVS 서비스 유형과 기본값을 지정합니다 standardsw
서비스 레벨:
--- version: 1 storageDriverName: gcp-cvs projectNumber: '012345678901' storageClass: software apiRegion: us-east4 apiKey: type: service_account project_id: my-gcp-project private_key_id: "<id_value>" private_key: | -----BEGIN PRIVATE KEY----- <key_value> -----END PRIVATE KEY----- client_email: cloudvolumes-admin-sa@my-gcp-project.iam.gserviceaccount.com client_id: '123456789012345678901' auth_uri: https://accounts.google.com/o/oauth2/auth token_uri: https://oauth2.googleapis.com/token auth_provider_x509_cert_url: https://www.googleapis.com/oauth2/v1/certs client_x509_cert_url: https://www.googleapis.com/robot/v1/metadata/x509/cloudvolumes-admin-sa%40my-gcp-project.iam.gserviceaccount.com serviceLevel: standardsw
예 2: 스토리지 풀 구성
이 백엔드 구성은 를 사용합니다 storagePools
스토리지 풀을 구성하려면 다음을 수행합니다.
--- version: 1 storageDriverName: gcp-cvs backendName: gcp-std-so-with-pool projectNumber: '531265380079' apiRegion: europe-west1 apiKey: type: service_account project_id: cloud-native-data private_key_id: "<id_value>" private_key: |- -----BEGIN PRIVATE KEY----- <key_value> -----END PRIVATE KEY----- client_email: cloudvolumes-admin-sa@cloud-native-data.iam.gserviceaccount.com client_id: '107071413297115343396' auth_uri: https://accounts.google.com/o/oauth2/auth token_uri: https://oauth2.googleapis.com/token auth_provider_x509_cert_url: https://www.googleapis.com/oauth2/v1/certs client_x509_cert_url: https://www.googleapis.com/robot/v1/metadata/x509/cloudvolumes-admin-sa%40cloud-native-data.iam.gserviceaccount.com storageClass: software zone: europe-west1-b network: default storagePools: - 1bc7f380-3314-6005-45e9-c7dc8c2d7509 serviceLevel: Standardsw
다음 단계
백엔드 구성 파일을 생성한 후 다음 명령을 실행합니다.
tridentctl create backend -f <backend-file>
백엔드 생성에 실패하면 백엔드 구성에 문제가 있는 것입니다. 다음 명령을 실행하여 로그를 보고 원인을 확인할 수 있습니다.
tridentctl logs
구성 파일의 문제를 확인하고 수정한 후 create 명령을 다시 실행할 수 있습니다.