Google Cloud 백엔드에 대한 Cloud Volumes Service 구성
제공된 샘플 구성을 사용하여 Trident 설치의 백엔드로 Google Cloud용 NetApp Cloud Volumes Service 구성하는 방법을 알아보세요.
Google Cloud 드라이버 세부 정보
Trident 다음을 제공합니다. gcp-cvs 클러스터와 통신하는 드라이버. 지원되는 액세스 모드는 다음과 같습니다: ReadWriteOnce (RWO), ReadOnlyMany (ROX), ReadWriteMany (RWX), ReadWriteOncePod (RWOP).
| 운전사 | 규약 | 볼륨모드 | 지원되는 액세스 모드 | 지원되는 파일 시스템 |
|---|---|---|---|---|
|
NFS |
파일 시스템 |
RWO, ROX, RWX, RWOP |
|
Google Cloud용 Cloud Volumes Service 에 대한 Trident 지원에 대해 알아보세요.
Trident 두 가지 중 하나에서 Cloud Volumes Service 볼륨을 생성할 수 있습니다."서비스 유형" :
-
CVS-Performance: 기본 Trident 서비스 유형입니다. 이러한 성능 최적화된 서비스 유형은 성능을 중시하는 프로덕션 워크로드에 가장 적합합니다. CVS-Performance 서비스 유형은 최소 100GiB 크기의 볼륨을 지원하는 하드웨어 옵션입니다. 다음 중 하나를 선택할 수 있습니다."세 가지 서비스 수준" :
-
standard -
premium -
extreme
-
-
CVS: CVS 서비스 유형은 제한적에서 중간 수준의 성능 수준으로 높은 지역적 가용성을 제공합니다. CVS 서비스 유형은 스토리지 풀을 사용하여 최소 1GiB의 볼륨을 지원하는 소프트웨어 옵션입니다. 스토리지 풀은 최대 50개의 볼륨을 포함할 수 있으며, 모든 볼륨은 풀의 용량과 성능을 공유합니다. 다음 중 하나를 선택할 수 있습니다."두 가지 서비스 수준" :
-
standardsw -
zoneredundantstandardsw
-
구성하고 사용하려면 "Google Cloud용 Cloud Volumes Service" 백엔드에는 다음이 필요합니다.
-
NetApp Cloud Volumes Service 로 구성된 Google Cloud 계정
-
Google Cloud 계정의 프로젝트 번호
-
Google Cloud 서비스 계정
netappcloudvolumes.admin역할 -
Cloud Volumes Service 계정의 API 키 파일
백엔드 구성 옵션
각 백엔드는 단일 Google Cloud 지역에서 볼륨을 프로비저닝합니다. 다른 지역에 볼륨을 생성하려면 추가 백엔드를 정의할 수 있습니다.
| 매개변수 | 설명 | 기본 |
|---|---|---|
|
항상 1 |
|
|
저장 드라이버의 이름 |
"gcp-cvs" |
|
사용자 정의 이름 또는 스토리지 백엔드 |
드라이버 이름 + "_" + API 키의 일부 |
|
CVS 서비스 유형을 지정하는 데 사용되는 선택적 매개변수입니다. 사용 |
|
|
CVS 서비스 유형만 해당. 볼륨 생성을 위한 스토리지 풀을 지정하는 데 사용되는 선택적 매개변수입니다. |
|
|
Google Cloud 계정 프로젝트 번호. 해당 값은 Google Cloud 포털 홈페이지에서 확인할 수 있습니다. |
|
|
공유 VPC 네트워크를 사용하는 경우 필요합니다. 이 시나리오에서는 |
|
|
Trident Cloud Volumes Service 볼륨을 생성하는 Google Cloud 지역입니다. 지역 간 Kubernetes 클러스터를 생성할 때 볼륨이 생성됩니다. |
|
|
Google Cloud 서비스 계정에 대한 API 키 |
|
|
CVS 계정에 연결하는 데 프록시 서버가 필요한 경우 프록시 URL입니다. 프록시 서버는 HTTP 프록시 또는 HTTPS 프록시가 될 수 있습니다. HTTPS 프록시의 경우 인증서 유효성 검사를 건너뛰어 프록시 서버에서 자체 서명된 인증서를 사용할 수 있습니다. 인증이 활성화된 프록시 서버는 지원되지 않습니다. |
|
|
NFS 마운트 옵션에 대한 세부적인 제어. |
"nfsvers=3" |
|
요청된 볼륨 크기가 이 값보다 크면 프로비저닝에 실패합니다. |
"" (기본적으로 적용되지 않음) |
|
새로운 볼륨에 대한 CVS-Performance 또는 CVS 서비스 수준입니다. CVS-Performance 값은 다음과 같습니다. |
CVS-Performance의 기본값은 "표준"입니다. CVS 기본값은 "standardsw"입니다. |
|
Cloud Volumes Service 볼륨에 사용되는 Google Cloud 네트워크입니다. |
"기본" |
|
문제 해결 시 사용할 디버그 플래그입니다. 예, |
널 |
|
지역 간 액세스를 활성화하려면 StorageClass 정의를 다음과 같이 합니다. |
볼륨 프로비저닝 옵션
기본 볼륨 프로비저닝을 제어할 수 있습니다. defaults 구성 파일의 섹션.
| 매개변수 | 설명 | 기본 |
|---|---|---|
|
새로운 볼륨에 대한 내보내기 규칙. CIDR 표기법으로 IPv4 주소 또는 IPv4 서브넷의 조합을 쉼표로 구분한 목록이어야 합니다. |
"0.0.0.0/0" |
|
에 대한 액세스 |
"거짓" |
|
스냅샷을 위해 예약된 볼륨의 백분율 |
"" (CVS 기본값 0 허용) |
|
새로운 볼륨의 크기. CVS-Performance 최소값은 100GiB입니다. CVS 최소 크기는 1GiB입니다. |
CVS-Performance 서비스 유형은 기본적으로 "100GiB"로 설정됩니다. CVS 서비스 유형은 기본값을 설정하지 않지만 최소 1GiB가 필요합니다. |
CVS-Performance 서비스 유형 예
다음 예제에서는 CVS-Performance 서비스 유형에 대한 샘플 구성을 제공합니다.
예 1: 최소 구성
이는 기본 "표준" 서비스 수준을 갖춘 기본 CVS-Performance 서비스 유형을 사용하는 최소 백엔드 구성입니다.
---
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%로 극한의 성능을 제공하는 유일한 풀입니다. -
마지막 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 명령을 다시 실행할 수 있습니다.