Google Cloud NetApp Volumes を設定
Google Cloud NetApp Volumes を Trident のバックエンドとして設定し、Kubernetes ワークロード用のストレージをプロビジョニングできます。
概要
Trident は、NAS(NFS および SMB)とブロック(iSCSI)ワークロードの両方で Google Cloud NetApp Volumes をサポートしています。
-
NASワークロードは `google-cloud-netapp-volumes`バックエンドを使用します
-
ブロック(iSCSI)ワークロードは `google-cloud-netapp-volumes-san`バックエンドを使用します
NASボリュームはファイルベースのストレージを提供し、NFSまたはSMBプロトコルを使用してアクセスされます。これらのボリュームは、複数のポッドまたはノード間での共有アクセスをサポートします。
ブロックボリュームは生のブロックストレージを提供し、Kubernetesノードに接続されたiSCSIデバイスとしてアクセスされます。これらのボリュームは、アプリケーションがブロックレベルのアクセスを必要とする場合に使用されます。
これは次の環境に適用されます:
-
Trident 26.02以降
-
Google Kubernetes Engine(GKE)または Red Hat OpenShift
-
Google Cloud NetApp Volumes ストレージプール
ブロック(iSCSI)ストレージを構成するには、ブロックストレージ(iSCSI)を設定するを参照してください。
設定を準備
Cloud IDを使用すると、Kubernetesワークロードは静的な認証情報を使用する代わりに、ワークロードIDとして認証することで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`を編集します:
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
NASストレージの設定
ドライバの詳細
Trident は、Google Cloud NetApp Volumes から NAS ストレージをプロビジョニングするための `google-cloud-netapp-volumes`ドライバを提供します。
ドライバーは次のアクセス モードをサポートしています:
-
ReadWriteOnce(RWO)
-
ReadOnlyMany(ROX)
-
ReadWriteMany(RWX)
-
ReadWriteOncePod(RWOP)
| ドライバ | プロトコル | ボリュームモード | サポートされているアクセスモード | サポートされるファイルシステム |
|---|---|---|---|---|
|
NFS SMB |
ファイルシステム |
RWO、ROX、RWX、RWOP |
|
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
SMB ボリュームをプロビジョニングするには、 `nasType`を `smb`に設定してクレデンシャルを指定します。
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)
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`を使用します。 |