NASワークロード用にGoogle Cloud NetApp Volumesを設定する
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)
| ドライバ | プロトコル | ボリュームモード | サポートされているアクセスモード | サポートされるファイルシステム |
|---|---|---|---|---|
|
NFS SMB |
ファイルシステム |
RWO、ROX、RWX、RWOP |
|
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 をインストールするには、 `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 を使用して 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"
クラウド プロバイダとクラウド 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`を使用します。 |