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

NASワークロード用にGoogle Cloud NetApp Volumesを設定する

共同作成者 netapp-aruldeepa joan-ing netapp-mwallis

Google Cloud NetApp Volumes を Trident のバックエンドとして設定し、ファイルベースのストレージボリュームをプロビジョニングできます。Trident は、Google Cloud NetApp Volumes バックエンドを使用して NFS および SMB ボリュームを接続できます。

Trident は、Google Cloud NetApp Volumes で NAS ワークロードと SAN ワークロードに別々のバックエンドを使用します。 `google-cloud-netapp-volumes`バックエンドはファイルベースのプロトコルのみをサポートしており、iSCSI ボリュームのプロビジョニングには使用できません。

iSCSIブロックボリュームをプロビジョニングするには、 `google-cloud-netapp-volumes-san`バックエンドを使用します。これは、SANワークロード専用に設計された別のバックエンドタイプです。

NASボリュームとiSCSIブロックボリューム

Google Cloud NetApp Volumes は、アプリケーションがデータにアクセスして管理する方法が異なる NAS とブロックストレージの両方をサポートします。

NAS ボリュームはファイルベースのストレージを提供し、NFS や SMB などの標準ファイル プロトコルを介してアクセスされます。ボリュームは共有ファイルシステムとしてマウントされ、複数のポッドまたはノードからの同時アクセスをサポートします。

iSCSI ブロック ボリュームは、生のブロック ストレージを提供し、Kubernetes ノードに接続されたブロック デバイスとしてアクセスされます。ブロック ストレージは通常、ワークロードでブロック レベルのアクセスまたはアプリケーション管理の I/O 動作が必要な場合に使用されます。

これは次の環境に適用されます:

  • Trident 26.02以降

  • Google Kubernetes Engine ( GKE )

  • Google Cloud NetApp Volumes NAS プール

  • NFSおよびSMBワークロード

ブロック(iSCSI)ワークロードについては、ブロックストレージ(iSCSI)を設定するを参照してください。

Google Cloud NetApp Volumesドライバの詳細

Trident は、Google Cloud NetApp Volumes から NAS ストレージをプロビジョニングするための `google-cloud-netapp-volumes`ドライバを提供します。

ドライバーは次のアクセス モードをサポートしています:

  • ReadWriteOnce(RWO)

  • ReadOnlyMany(ROX)

  • ReadWriteMany(RWX)

  • ReadWriteOncePod(RWOP)

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

google-cloud-netapp-volumes

NFS SMB

ファイルシステム

RWO、ROX、RWX、RWOP

nfssmb

Google Kubernetes Engine のクラウド ID

Cloud Identity を使用すると、静的な Google Cloud 認証情報を使用する代わりに、ワークロード ID として認証することで、Kubernetes ワークロードが Google Cloud リソースにアクセスできるようになります。

Google Cloud NetApp Volumes でクラウド ID を使用するには、次のものが必要です:

  • Google Kubernetes Engine(GKE)を使用してデプロイされた Kubernetes クラスタ

  • GKE クラスタでワークロード ID が有効になっており、ノード プールでメタデータ サーバーが有効になっている

  • Google Cloud NetApp Volumes Admin ロールを持つ Google Cloud サービスアカウント(`roles/netapp.admin`または同等のカスタムロール

  • Tridentがインストールされ、クラウド プロバイダが `GCP`に設定され、クラウドIDアノテーションが設定されている

Trident オペレータ

Trident オペレータを使用して Trident をインストールするには、 `tridentorchestrator_cr.yaml`を編集して `cloudProvider`を `GCP`に設定し、 `cloudIdentity`を GKE サービス アカウントに設定します。

apiVersion: trident.netapp.io/v1
kind: TridentOrchestrator
metadata:
  name: trident
spec:
  namespace: trident
  cloudProvider: "GCP"
  cloudIdentity: "iam.gke.io/gcp-service-account: cloudvolumes-admin-sa@mygcpproject.iam.gserviceaccount.com"
Helm

Helm を使用して Trident をインストールする際に、クラウド プロバイダとクラウド ID を設定します。

helm install trident trident-operator-100.6.0.tgz \
  --set cloudProvider=GCP \
  --set cloudIdentity="iam.gke.io/gcp-service-account: cloudvolumes-admin-sa@mygcpproject.iam.gserviceaccount.com"
Tridentctl

クラウド プロバイダとクラウド ID を指定して Trident をインストールします。

tridentctl install \
  --cloud-provider=GCP \
  --cloud-identity="iam.gke.io/gcp-service-account: cloudvolumes-admin-sa@mygcpproject.iam.gserviceaccount.com" \
  -n trident

Trident NAS バックエンドを設定する

apiVersion: trident.netapp.io/v1
kind: TridentBackendConfig
metadata:
  name: gcnv-nas
  namespace: trident
spec:
  version: 1
  storageDriverName: google-cloud-netapp-volumes
  projectNumber: "<project-number>"
  location: "<region>"
  sdkTimeout: "600"
  storage:
  - labels:
      cloud: gcp
    network: "<vpc-network>"

NAS ボリュームのプロビジョニング

NASボリュームは、 `google-cloud-netapp-volumes`バックエンドを使用してプロビジョニングされ、NFSおよびSMBプロトコルをサポートします。

NFS ボリューム用の StorageClass

NFS ボリュームをプロビジョニングするには、 `nasType`を `nfs`に設定します。

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: gcnv-nfs
provisioner: csi.trident.netapp.io
parameters:
  backendType: "google-cloud-netapp-volumes"
  trident.netapp.io/nasType: "nfs"
allowVolumeExpansion: true

SMBボリューム用のStorageClass

 `nasType`、 `csi.storage.k8s.io/node-stage-secret-name`、および
`csi.storage.k8s.io/node-stage-secret-namespace`を使用して、SMBボリュームを指定し、必要なActive Directory資格情報を提供できます。
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: gcnv-smb
provisioner: csi.trident.netapp.io
parameters:
  backendType: "google-cloud-netapp-volumes"
  trident.netapp.io/nasType: "smb"
  csi.storage.k8s.io/node-stage-secret-name: "smbcreds"
  csi.storage.k8s.io/node-stage-secret-namespace: "default"
allowVolumeExpansion: true

PersistentVolumeClaim の例(RWX)

NAS ボリュームは同時アクセスをサポートしており、一般的には `ReadWriteMany`でプロビジョニングされます。

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: gcnv-nas-rwx
spec:
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 100Gi
  storageClassName: gcnv-nfs

PersistentVolumeClaim の例(RWO)

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: gcnv-nas-rwo
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 100Gi
  storageClassName: gcnv-nfs
メモ NASボリュームは `volumeMode: Filesystem`を使用します。