Skip to main content
此產品有較新版本可以使用。
本繁體中文版使用機器翻譯,譯文僅供參考,若與英文版本牴觸,應以英文版本為準。

設定Cloud Volumes Service 適用於Google Cloud後端的功能

貢獻者

瞭Cloud Volumes Service 解如何使用提供的範例組態、將NetApp for Google Cloud設定為Astra Trident安裝的後端。

Google Cloud 驅動程式詳細資料

Astra Trident 提供 gcp-cvs 與叢集通訊的驅動程式。支援的存取模式包括: ReadWriteOnce ( rwo )、 ReadOnlyMany ( ROX )、 _ReadWriteMany ( rwx )、 _ReadWriteOncePod ( RWOP )。

驅動程式 傳輸協定 Volume模式 支援的存取模式 支援的檔案系統

gcp-cvs

NFS

檔案系統

Rwo 、 ROX 、 rwx 、 RWOP

nfs

深入瞭解Astra Trident對Cloud Volumes Service Google Cloud的支援

Astra Trident 可以在"服務類型"以下兩種中的一種中建立 Cloud Volumes Service Volume :

  • * CVS效能*:預設的Astra Trident服務類型。這種效能最佳化的服務類型最適合重視效能的正式作業工作負載。CVS效能服務類型是一種硬體選項、可支援最小100 GiB大小的磁碟區。您可以選擇"三種服務層級"下列其中一項:

    • standard

    • premium

    • extreme

  • * CVS:CVS服務類型提供高分區可用度、但效能等級僅限於中度。CVS服務類型是一種軟體選項、使用儲存資源池來支援小至1 GiB的磁碟區。儲存資源池最多可包含50個磁碟區、其中所有磁碟區都會共用資源池的容量和效能。您可以選擇"兩種服務層級"下列其中一項:

    • standardsw

    • zoneredundantstandardsw

您需要的產品

若要設定及使用 "適用於 Google Cloud Cloud Volumes Service"後端、您需要下列項目:

  • Google Cloud帳戶已設定NetApp Cloud Volumes Service 功能

  • Google Cloud帳戶的專案編號

  • 具有此角色的 Google Cloud Service 帳戶 netappcloudvolumes.admin

  • API金鑰檔案、供Cloud Volumes Service 您的I方面 帳戶使用

後端組態選項

每個後端都會在單一Google Cloud區域中配置磁碟區。若要在其他區域建立磁碟區、您可以定義其他後端。

參數 說明 預設

version

永遠為1

storageDriverName

儲存驅動程式名稱

「GCP-CVS」

backendName

自訂名稱或儲存後端

驅動程式名稱+「_」+ API金鑰的一部分

storageClass

用於指定CVS服務類型的選用參數。用於 software`選擇 CVS 服務類型。否則, Astra Trident 將採用 CVS-Performance 服務類型(`hardware)。

storagePools

僅限CVS服務類型。選用參數、用於指定用於建立磁碟區的儲存資源池。

projectNumber

Google Cloud帳戶專案編號。此值可在Google Cloud入口網站首頁找到。

hostProjectNumber

如果使用共享VPC網路、則為必要項目。在此案例中 projectNumber、是服務專案、 `hostProjectNumber`也是主機專案。

apiRegion

Astra Trident在Google Cloud區域建立Cloud Volumes Service 了各種不全的功能。建立跨區域 Kubernetes 叢集時、在中建立的磁碟區 `apiRegion`可用於跨多個 Google Cloud 區域的節點上排程的工作負載。跨區域流量會產生額外成本。

apiKey

具有此角色的 Google Cloud 服務帳戶的 API 金鑰 netappcloudvolumes.admin 。其中包含Google Cloud服務帳戶私密金鑰檔案(逐字複製到後端組態檔)的JSON-格式內容。

proxyURL

Proxy URL(如果需要Proxy伺服器才能連線至CVS帳戶)。Proxy伺服器可以是HTTP Proxy或HTTPS Proxy。對於HTTPS Proxy、會跳過憑證驗證、以允許在Proxy伺服器中使用自我簽署的憑證。不支援已啟用驗證的Proxy伺服器。

nfsMountOptions

精細控制NFS掛載選項。

"nfsves=3"

limitVolumeSize

如果要求的磁碟區大小高於此值、則資源配置失敗。

""(預設不強制執行)

serviceLevel

適用於新磁碟區的CVS效能或CVS服務層級。CVS-Performance 值包括 standardpremium`或 `extreme。CVS 值爲 standardsw`或 `zoneredundantstandardsw

CVS效能預設為「標準」。CVS預設為「標準」。

network

Google Cloud網路用於Cloud Volumes Service 解決資料不整的問題。

"預設"

debugTraceFlags

疑難排解時要使用的偵錯旗標。範例: \{"api":false, "method":true}。除非您正在進行疑難排解並需要詳細的記錄傾印、否則請勿使用此功能。

null

allowedTopologies

若要啟用跨區域存取、的 StorageClass 定義 allowedTopologies`必須包含所有地區。例如:
`- key: topology.kubernetes.io/region
values:
- us-east1
- europe-west1

Volume資源配置選項

您可以在組態檔案的區段中控制預設的 Volume 資源配置 defaults

參數 說明 預設

exportRule

新磁碟區的匯出規則。必須是以逗號分隔的清單、以CIDR表示法列出所有的IPv4位址或IPv4子網路組合。

「0.00.0.0/0」

snapshotDir

存取 `.snapshot`目錄

"假"

snapshotReserve

保留給快照的磁碟區百分比

""(接受CVS預設值為0)

size

新磁碟區的大小。CVS效能最低為100 GiB。CVS最低為1 GiB。

CVS效能服務類型預設為「100GiB」。CVS服務類型並未設定預設值、但至少需要1 GiB。

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:服務層級組態

本範例說明後端組態選項、包括服務層級和Volume預設值。

---
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`可重新參照它們的。請參閱儲存類別定義以瞭解儲存類別的定義方式。

此處會針對所有虛擬集區設定特定的預設值、將設為 5% 、將設 snapshotReserve`為 `exportRule 0.0.0.0/0 。虛擬集區是在一節中定義 storage。每個個別虛擬集區都會自行定義 serviceLevel、有些集區會覆寫預設值。虛擬池標籤用於根據和 protection`區分池 `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
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
  • First StorageClass (cvs-extreme-extra-protection)映射到第一個虛擬池。這是唯一提供極致效能、快照保留率為10%的資源池。

  • Last StorageClass (cvs-extra-protection(最後一個 StorageClass )調用任何提供 10% 快照保留的儲存池。Astra Trident決定選取哪個虛擬集區、並確保符合快照保留需求。

CVS服務類型範例

下列範例提供CVS服務類型的範例組態。

範例1:最低組態

這是用來指定 CVS 服務類型和預設服務層級的 standardsw`最低後端組態 `storageClass

---
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命令。