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-cvs 」 |
NFS |
ファイルシステム |
RWO、ROX、RWX、RWOP |
|
TridentによるCloud Volumes Service for Google Cloudのサポートの詳細
Tridentでは"サービスタイプ"、次の2つのいずれかにCloud Volumes Serviceボリュームを作成できます。
-
* CVS-Performance *:デフォルトのTridentサービスタイプ。パフォーマンスが最適化されたこのサービスタイプは、パフォーマンスを重視する本番環境のワークロードに最適です。CVS -パフォーマンスサービスタイプは、サイズが100GiB以上のボリュームをサポートするハードウェアオプションです。"3つのサービスレベル"次のいずれかを選択できます。
-
standard
-
premium
-
extreme
-
-
* CVS *:CVSサービスタイプは、中程度のパフォーマンスレベルに制限された高レベルの可用性を提供します。CVSサービスタイプは、ストレージプールを使用して1GiB未満のボリュームをサポートするソフトウェアオプションです。ストレージプールには最大50個のボリュームを含めることができ、すべてのボリュームでプールの容量とパフォーマンスを共有できます。のいずれかを選択できます "2つのサービスレベル":
-
standardsw
-
zoneredundantstandardsw
-
を設定して使用します "Cloud Volumes Service for Google Cloud" バックエンドには次のものが必要です。
-
NetApp Cloud Volumes Service で設定されたGoogle Cloudアカウント
-
Google Cloud アカウントのプロジェクト番号
-
「 netappcloudvolumes .admin 」ロールを持つ Google Cloud サービスアカウント
-
Cloud Volumes Service アカウントのAPIキーファイル
バックエンド構成オプション
各バックエンドは、 1 つの Google Cloud リージョンにボリュームをプロビジョニングします。他のリージョンにボリュームを作成する場合は、バックエンドを追加で定義します。
パラメータ | 説明 | デフォルト |
---|---|---|
「バージョン」 |
常に 1 |
|
'torageDriverName' |
ストレージドライバの名前 |
"GCP-cvs" |
backendName` |
カスタム名またはストレージバックエンド |
ドライバ名 + "_" + API キーの一部 |
'torageClass' |
CVSサービスタイプを指定するためのオプションのパラメータ。CVSサービスタイプを選択するために使用し `software`ます。それ以外の場合、TridentはサービスタイプがCVS-Performanceとみなされ(`hardware`ます)。 |
|
|
CVSサービスタイプのみ。ボリューム作成用のストレージプールを指定するオプションのパラメータ。 |
|
「 ProjectNumber 」 |
Google Cloud アカウントのプロジェクト番号。この値は、Google Cloudポータルのホームページにあります。 |
|
「 hostProjectNumber 」 |
共有VPCネットワークを使用する場合は必須です。このシナリオでは、 |
|
「 apiRegion 」と入力します |
TridentがCloud Volumes Serviceボリュームを作成するGoogle Cloudリージョン。リージョン間Kubernetesクラスタを作成する場合、で作成したボリュームは |
|
「 apiKey 」と入力します |
を使用したGoogle CloudサービスアカウントのAPIキー |
|
「 ProxyURL 」と入力します |
CVSアカウントへの接続にプロキシサーバが必要な場合は、プロキシURLを指定します。プロキシサーバには、 HTTP プロキシまたは HTTPS プロキシを使用できます。HTTPS プロキシの場合、プロキシサーバで自己署名証明書を使用するために証明書の検証はスキップされます。認証が有効になっているプロキシサーバはサポートされていません。 |
|
「 nfsvMountOptions 」のように入力します |
NFS マウントオプションのきめ細かな制御。 |
"nfsvers=3 " |
「 limitVolumeSize 」と入力します |
要求されたボリュームサイズがこの値を超えている場合はプロビジョニングが失敗します。 |
"" (デフォルトでは適用されません) |
「サービスレベル」 |
新しいボリュームのCVS -パフォーマンスレベルまたはCVSサービスレベル。CVS -パフォーマンスの値はです |
CVS -パフォーマンスのデフォルトは「Standard」です。CVSのデフォルトは"standardsw"です。 |
「ネットワーク」 |
Cloud Volumes Service ボリュームに使用するGoogle Cloudネットワーク。 |
デフォルト |
「バグトレースフラグ」 |
トラブルシューティング時に使用するデバッグフラグ。例: |
null |
|
クロスリージョンアクセスを有効にするには、のStorageClass定義を使用します |
ボリュームのプロビジョニングオプション
では、デフォルトのボリュームプロビジョニングを制御できます defaults
構成ファイルのセクション。
パラメータ | 説明 | デフォルト |
---|---|---|
「 exportRule 」 |
新しいボリュームのエクスポートルール。CIDR 表記の IPv4 アドレスまたは IPv4 サブネットの任意の組み合わせをカンマで区切って指定する必要があります。 |
"0.0.0.0/0 " |
「スナップショット方向」 |
「 .snapshot 」ディレクトリにアクセスします |
いいえ |
「スナップショット予約」 |
Snapshot 用にリザーブされているボリュームの割合 |
"" ( CVS のデフォルト値をそのまま使用) |
「 size 」 |
新しいボリュームのサイズ。CVS -パフォーマンス最小値は100GiBです。CVS最小値は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`では、ボリュームのホストに使用する仮想プールをストレージクラスごとに指定できます。ボリュームには、選択したプールで定義された要素があります。
ストレージクラスの例
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
-
最初のストレージクラス (
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 コマンドを再度実行できます。