GCP バックエンドの CVS を設定します
提供されている設定例を使用して、ネットアップCloud Volumes Service (CVS)for Google Cloud Platform(GCP)をAstra Tridentインストールのバックエンドとして設定する方法を説明します。
CVS for GCPのAstra Tridentサポートについてご確認ください
Astra Tridentは、デフォルトのCVSサービスタイプがonに設定されたボリュームをサポートしています "GCP"。Astra Tridentは、CVSサービスタイプで許可されている最小値に関係なく、100GiB未満のCVSボリュームをサポートしていません。したがって、Tridentは要求されたボリュームが最小サイズよりも小さい場合、自動的に100GiBのボリュームを作成します。
を設定して使用します "Cloud Volumes Service for Google Cloud" バックエンドには次のものが必要です。
-
ネットアップ CVS で設定された Google Cloud アカウント
-
Google Cloud アカウントのプロジェクト番号
-
を使用するGoogle Cloudサービスアカウント
netappcloudvolumes.admin
ロール -
CVS サービスアカウントの API キーファイル
バックエンド構成オプション
バックエンド設定オプションについては、次の表を参照してください。
パラメータ | 説明 | デフォルト |
---|---|---|
|
常に 1 |
|
|
ストレージドライバの名前 |
"GCP-cvs" |
|
カスタム名またはストレージバックエンド |
ドライバ名 + "_" + API キーの一部 |
|
ストレージのタイプから選択します |
|
|
Google Cloud アカウントのプロジェクト番号。この値は、 Google Cloud ポータルのホームページにあります。 |
|
|
CVS アカウント地域。バックエンドがボリュームをプロビジョニングするリージョンです。 |
|
|
を使用したGoogle CloudサービスアカウントのAPIキー |
|
|
CVS アカウントへの接続にプロキシサーバが必要な場合は、プロキシ URL を指定します。プロキシサーバには、 HTTP プロキシまたは HTTPS プロキシを使用できます。HTTPS プロキシの場合、プロキシサーバで自己署名証明書を使用するために証明書の検証はスキップされます。認証が有効になっているプロキシサーバはサポートされていません。 |
|
|
NFS マウントオプションのきめ細かな制御。 |
"nfsvers=3 " |
|
要求されたボリュームサイズがこの値を超えている場合はプロビジョニングが失敗します |
"" (デフォルトでは適用されません) |
|
新しいボリュームの CVS サービスレベル。「 Standard 」、「 Premium 」、「 Extreme 」のいずれかです。 |
標準 |
|
CVSボリュームに使用するGCPネットワーク |
デフォルト |
|
トラブルシューティング時に使用するデバッグフラグ。例: |
null |
共有VPCネットワークを使用する場合は、両方のポートを使用します projectNumber
および hostProjectNumber
を指定する必要があります。その場合は、 projectNumber
は、サービスプロジェクトです hostProjectNumber
は、ホストプロジェクトです。
。 apiRegion
Astra TridentがCVSボリュームを作成するGCPリージョンを表します。クロスリージョンのKubernetesクラスタを作成する場合、で作成されたCVSボリューム apiRegion
複数のGCPリージョンのノードでスケジュールされているワークロードで使用できます。リージョン間トラフィックは追加コストがかかることに注意してください。
|
Astra Trident は、 Google Cloud 上の基本 CVS サービスタイプと統合されている ベータ版の機能 で、本番環境のワークロード向けではありません。Trident は、 CVS パフォーマンスサービスタイプでは完全にサポートされている ** で、デフォルトで使用されます。 |
各バックエンドは、 1 つの Google Cloud リージョンにボリュームをプロビジョニングします。他のリージョンにボリュームを作成する場合は、バックエンドを追加で定義します。
構成ファイルの特別なセクションで次のオプションを指定することで、各ボリュームのデフォルトのプロビジョニング方法を制御できます。以下の設定例を参照してください。
パラメータ | 説明 | デフォルト |
---|---|---|
|
新しいボリュームのエクスポートルール |
"0.0.0.0/0 " |
|
にアクセスします |
いいえ |
|
Snapshot 用にリザーブされているボリュームの割合 |
"" ( CVS のデフォルト値をそのまま使用) |
|
新しいボリュームのサイズ |
"100Gi" |
。 exportRule
CIDR表記のIPv4アドレスまたはIPv4サブネットの任意の組み合わせをカンマで区切って指定する必要があります。
CVS Google Cloud バックエンドで作成されたすべてのボリュームについて、 Trident は、ストレージプールにあるすべてのラベルを、プロビジョニング時にストレージボリュームにコピーします。ストレージ管理者は、ストレージプールごとにラベルを定義し、ストレージプール内に作成されたすべてのボリュームをグループ化できます。これにより、バックエンド構成で提供されるカスタマイズ可能な一連のラベルに基づいてボリュームを簡単に区別できます。 |
例 1 :最小限の構成
これは、バックエンドの絶対的な最小構成です。
{ "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-----\n", "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 :基本 CVS サービスタイプの設定
この例は、基本 CVS サービスタイプを使用するバックエンド定義を示しています。このサービスタイプは、汎用ワークロード向けであり、パフォーマンスが低く、ゾーンの可用性も高くなります。
{ "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-----\n", "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" } }
例 3 :単一のサービスレベルの設定
この例は、 Google Cloud us-west2 リージョン内のすべての Astra Trident で作成されたストレージに同じ要素を適用するバックエンドファイルを示しています。この例は、の使用状況も示しています proxyURL
バックエンド構成ファイル内。
{ "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-----\n", "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" } }
例 4 :仮想ストレージプールの構成
この例は、仮想ストレージプールとともに設定されたバックエンド定義ファイルを示しています StorageClasses
それはそれらを再度参照する。
以下に示すバックエンド定義ファイルの例では、すべてのストレージプールに対して特定のデフォルトが設定されています。これにより、が設定されます snapshotReserve
5%およびである exportRule
を0.0.0.0/0に設定します。仮想ストレージプールは、で定義されます storage
セクション。この例では、個々のストレージプールが独自に設定されています `serviceLevel`をクリックすると、一部のプールでデフォルト値が上書きされます。
{ "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-----\n", "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
フィールドでは、ボリュームのホストに使用される仮想プールをストレージクラスごとに指定できます。ボリュームには、選択したプールで定義された要素があります。
最初のストレージクラス (cvs-extreme-extra-protection
)を最初の仮想ストレージプールにマッピングします。スナップショット予約が 10% の非常に高いパフォーマンスを提供する唯一のプールです。最後のストレージクラス (cvs-extra-protection
)スナップショット予約が10%のストレージプールを呼び出します。Trident が、どの仮想ストレージプールを選択するかを決定し、 Snapshot リザーブの要件を確実に満たします。
apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: cvs-extreme-extra-protection provisioner: netapp.io/trident parameters: selector: "performance=extreme; protection=extra" allowVolumeExpansion: true --- apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: cvs-extreme-standard-protection provisioner: netapp.io/trident parameters: selector: "performance=premium; protection=standard" allowVolumeExpansion: true --- apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: cvs-premium-extra-protection provisioner: netapp.io/trident parameters: selector: "performance=premium; protection=extra" allowVolumeExpansion: true --- apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: cvs-premium provisioner: netapp.io/trident parameters: selector: "performance=premium; protection=standard" allowVolumeExpansion: true --- apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: cvs-standard provisioner: netapp.io/trident parameters: selector: "performance=standard" allowVolumeExpansion: true --- apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: cvs-extra-protection provisioner: netapp.io/trident parameters: selector: "protection=extra" allowVolumeExpansion: true
次の手順
バックエンド構成ファイルを作成したら、次のコマンドを実行します。
tridentctl create backend -f <backend-file>
バックエンドの作成に失敗した場合は、バックエンドの設定に何か問題があります。次のコマンドを実行すると、ログを表示して原因を特定できます。
tridentctl logs
構成ファイルで問題を特定して修正したら、 create コマンドを再度実行できます。