設定Cloud Volumes Service 適用於Google Cloud後端的功能
瞭解如何使用提供的範例組態、將 NetApp Cloud Volumes Service for Google Cloud 設定為 Trident 安裝的後端。
Google Cloud 驅動程式詳細資料
Trident 提供 `gcp-cvs`與叢集通訊的驅動程式。支援的存取模式包括: ReadWriteOnce ( rwo )、 ReadOnlyMany ( ROX )、 _ReadWriteMany ( rwx )、 _ReadWriteOncePod ( RWOP )。
驅動程式 | 傳輸協定 | Volume模式 | 支援的存取模式 | 支援的檔案系統 |
---|---|---|---|---|
|
NFS |
檔案系統 |
Rwo 、 ROX 、 rwx 、 RWOP |
|
瞭解 Trident 支援 Cloud Volumes Service for Google Cloud
Trident 可以在"服務類型"以下兩種中的其中一種中建立 Cloud Volumes Service Volume :
-
*CVS-Performance * :預設的 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區域中配置磁碟區。若要在其他區域建立磁碟區、您可以定義其他後端。
參數 | 說明 | 預設 |
---|---|---|
|
永遠為1 |
|
|
儲存驅動程式名稱 |
「GCP-CVS」 |
|
自訂名稱或儲存後端 |
驅動程式名稱+「_」+ API金鑰的一部分 |
|
用於指定CVS服務類型的選用參數。用於 |
|
|
僅限CVS服務類型。選用參數、用於指定用於建立磁碟區的儲存資源池。 |
|
|
Google Cloud帳戶專案編號。此值可在Google Cloud入口網站首頁找到。 |
|
|
如果使用共享VPC網路、則為必要項目。在此案例中 |
|
|
Trident 建立 Cloud Volumes Service Volume 的 Google Cloud 區域。建立跨區域 Kubernetes 叢集時、在中建立的磁碟區 `apiRegion`可用於跨多個 Google Cloud 區域的節點上排程的工作負載。跨區域流量會產生額外成本。 |
|
|
具有此角色的 Google Cloud 服務帳戶的 API 金鑰 |
|
|
Proxy URL(如果需要Proxy伺服器才能連線至CVS帳戶)。Proxy伺服器可以是HTTP Proxy或HTTPS Proxy。對於HTTPS Proxy、會跳過憑證驗證、以允許在Proxy伺服器中使用自我簽署的憑證。不支援已啟用驗證的Proxy伺服器。 |
|
|
精細控制NFS掛載選項。 |
"nfsves=3" |
|
如果要求的磁碟區大小高於此值、則資源配置失敗。 |
""(預設不強制執行) |
|
適用於新磁碟區的CVS效能或CVS服務層級。CVS-Performance 值包括 |
CVS效能預設為「標準」。CVS預設為「標準」。 |
|
Google Cloud網路用於Cloud Volumes Service 解決資料不整的問題。 |
"預設" |
|
疑難排解時要使用的偵錯旗標。範例: |
null |
|
若要啟用跨區域存取、的 StorageClass 定義 |
Volume資源配置選項
您可以在組態檔案的區段中控制預設的 Volume 資源配置 defaults
。
參數 | 說明 | 預設 |
---|---|---|
|
新磁碟區的匯出規則。必須是以逗號分隔的清單、以CIDR表示法列出所有的IPv4位址或IPv4子網路組合。 |
「0.00.0.0/0」 |
|
存取 `.snapshot`目錄 |
"假" |
|
保留給快照的磁碟區百分比 |
""(接受CVS預設值為0) |
|
新磁碟區的大小。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% 快照保留的儲存池。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命令。