Skip to main content
日本語は機械翻訳による参考訳です。内容に矛盾や不一致があった場合には、英語の内容が優先されます。

Google Cloud バックエンド用のCloud Volumes Serviceを構成する

共同作成者 netapp-aruldeepa

提供されているサンプル構成を使用して、 TridentインストールのバックエンドとしてNetApp Cloud Volumes Service for Google Cloud を構成する方法を学習します。

Google Cloud ドライバーの詳細

Tridentは `gcp-cvs`クラスターと通信するためのドライバー。サポートされているアクセス モードは、ReadWriteOnce (RWO)、ReadOnlyMany (ROX)、ReadWriteMany (RWX)、ReadWriteOncePod (RWOP) です。

ドライバ プロトコル ボリュームモード サポートされているアクセスモード サポートされているファイルシステム

gcp-cvs

NFS

Filesystem

RWO、ROX、RWX、RWOP

nfs

Google Cloud のCloud Volumes Serviceに対するTrident のサポートについて学ぶ

Tridentは、 2つのうちのいずれかでCloud Volumes Serviceボリュームを作成できます。"サービスの種類" :

  • CVS-Performance: デフォルトのTridentサービス タイプ。このパフォーマンス最適化されたサービス タイプは、パフォーマンスを重視する運用ワークロードに最適です。 CVS-Performance サービス タイプは、最小 100 GiB サイズのボリュームをサポートするハードウェア オプションです。次のいずれかを選択できます"3つのサービスレベル":

    • standard

    • premium

    • extreme

  • CVS: CVS サービス タイプは、限定的から中程度のパフォーマンス レベルで、高いゾーン可用性を提供します。 CVS サービス タイプは、ストレージ プールを使用して 1 GiB という小さなボリュームをサポートするソフトウェア オプションです。ストレージ プールには最大 50 個のボリュームを含めることができ、すべてのボリュームがプールの容量とパフォーマンスを共有します。次のいずれかを選択できます"2つのサービスレベル":

    • standardsw

    • zoneredundantstandardsw

要件

設定して使用するには "Cloud Volumes Service for Google Cloud"バックエンドでは、次のものが必要です。

  • 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パフォーマンス値は standardpremium 、 または extreme。 CVS値は standardsw`または `zoneredundantstandardsw

CVS-Performance のデフォルトは「標準」です。 CVS のデフォルトは「standardsw」です。

network

Cloud Volumes Serviceボリュームに使用される Google Cloud ネットワーク。

"デフォルト"

debugTraceFlags

トラブルシューティング時に使用するデバッグ フラグ。例、 \{"api":false, "method":true} 。トラブルシューティングを行っており、詳細なログ ダンプが必要な場合を除き、これを使用しないでください。

ヌル

allowedTopologies

リージョン間のアクセスを有効にするには、 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 パフォーマンスの最小値は 100 GiB です。 CVS の最小値は 1 GiB です。

CVS-Performance サービス タイプのデフォルトは「100GiB」です。 CVS サービス タイプではデフォルトは設定されませんが、最小 1 GiB が必要です。

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 コマンドを再度実行できます。