Skip to main content
본 한국어 번역은 사용자 편의를 위해 제공되는 기계 번역입니다. 영어 버전과 한국어 버전이 서로 어긋나는 경우에는 언제나 영어 버전이 우선합니다.

Google Cloud 백엔드에 대한 Cloud Volumes Service 구성

기여자 netapp-aruldeepa

제공된 샘플 구성을 사용하여 Trident 설치의 백엔드로 Google Cloud용 NetApp Cloud Volumes Service 구성하는 방법을 알아보세요.

Google Cloud 드라이버 세부 정보

Trident 다음을 제공합니다. gcp-cvs 클러스터와 통신하는 드라이버. 지원되는 액세스 모드는 다음과 같습니다: ReadWriteOnce (RWO), ReadOnlyMany (ROX), ReadWriteMany (RWX), ReadWriteOncePod (RWOP).

운전사 규약 볼륨모드 지원되는 액세스 모드 지원되는 파일 시스템

gcp-cvs

NFS

파일 시스템

RWO, ROX, RWX, RWOP

nfs

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 지역에서 볼륨을 프로비저닝합니다. 다른 지역에 볼륨을 생성하려면 추가 백엔드를 정의할 수 있습니다.

매개변수 설명 기본

version

항상 1

storageDriverName

저장 드라이버의 이름

"gcp-cvs"

backendName

사용자 정의 이름 또는 스토리지 백엔드

드라이버 이름 + "_" + API 키의 일부

storageClass

CVS 서비스 유형을 지정하는 데 사용되는 선택적 매개변수입니다. 사용 software CVS 서비스 유형을 선택하세요. 그렇지 않으면 Trident CVS-Performance 서비스 유형을 가정합니다.(hardware ).

storagePools

CVS 서비스 유형만 해당. 볼륨 생성을 위한 스토리지 풀을 지정하는 데 사용되는 선택적 매개변수입니다.

projectNumber

Google Cloud 계정 프로젝트 번호. 해당 값은 Google Cloud 포털 홈페이지에서 확인할 수 있습니다.

hostProjectNumber

공유 VPC 네트워크를 사용하는 경우 필요합니다. 이 시나리오에서는 projectNumber 서비스 프로젝트이고, hostProjectNumber 호스트 프로젝트입니다.

apiRegion

Trident Cloud Volumes Service 볼륨을 생성하는 Google Cloud 지역입니다. 지역 간 Kubernetes 클러스터를 생성할 때 볼륨이 생성됩니다. apiRegion 여러 Google Cloud 지역의 노드에 예약된 워크로드에 사용할 수 있습니다. 지역 간 트래픽에는 추가 비용이 발생합니다.

apiKey

Google Cloud 서비스 계정에 대한 API 키 netappcloudvolumes.admin 역할. 여기에는 Google Cloud 서비스 계정의 개인 키 파일의 JSON 형식 내용이 포함됩니다(백엔드 구성 파일에 그대로 복사됨).

proxyURL

CVS 계정에 연결하는 데 프록시 서버가 필요한 경우 프록시 URL입니다. 프록시 서버는 HTTP 프록시 또는 HTTPS 프록시가 될 수 있습니다. HTTPS 프록시의 경우 인증서 유효성 검사를 건너뛰어 프록시 서버에서 자체 서명된 인증서를 사용할 수 있습니다. 인증이 활성화된 프록시 서버는 지원되지 않습니다.

nfsMountOptions

NFS 마운트 옵션에 대한 세부적인 제어.

"nfsvers=3"

limitVolumeSize

요청된 볼륨 크기가 이 값보다 크면 프로비저닝에 실패합니다.

"" (기본적으로 적용되지 않음)

serviceLevel

새로운 볼륨에 대한 CVS-Performance 또는 CVS 서비스 수준입니다. CVS-Performance 값은 다음과 같습니다. standard , premium , 또는 extreme . CVS 값은 standardsw 또는 zoneredundantstandardsw .

CVS-Performance의 기본값은 "표준"입니다. CVS 기본값은 "standardsw"입니다.

network

Cloud Volumes Service 볼륨에 사용되는 Google Cloud 네트워크입니다.

"기본"

debugTraceFlags

문제 해결 시 사용할 디버그 플래그입니다. 예, \{"api":false, "method":true} . 문제 해결을 위해 자세한 로그 덤프가 필요한 경우가 아니면 이 기능을 사용하지 마세요.

allowedTopologies

지역 간 액세스를 활성화하려면 StorageClass 정의를 다음과 같이 합니다. allowedTopologies 모든 지역을 포함해야 합니다. 예를 들어:
- key: topology.kubernetes.io/region
values:
- us-east1
- europe-west1

볼륨 프로비저닝 옵션

기본 볼륨 프로비저닝을 제어할 수 있습니다. defaults 구성 파일의 섹션.

매개변수 설명 기본

exportRule

새로운 볼륨에 대한 내보내기 규칙. CIDR 표기법으로 IPv4 주소 또는 IPv4 서브넷의 조합을 쉼표로 구분한 목록이어야 합니다.

"0.0.0.0/0"

snapshotDir

에 대한 액세스 .snapshot 예배 규칙서

"거짓"

snapshotReserve

스냅샷을 위해 예약된 볼륨의 백분율

"" (CVS 기본값 0 허용)

size

새로운 볼륨의 크기. 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 명령을 다시 실행할 수 있습니다.