Google Cloud NetApp Volumes für NAS-Workloads konfigurieren
Sie können Google Cloud NetApp Volumes als Backend für Trident konfigurieren, um dateibasierte Speichervolumes bereitzustellen. Trident kann NFS- und SMB-Volumes mithilfe eines Google Cloud NetApp Volumes-Backends einbinden.
Trident verwendet separate Backends für NAS- und SAN-Workloads in Google Cloud NetApp Volumes. Der google-cloud-netapp-volumes Backend unterstützt ausschließlich dateibasierte Protokolle und kann nicht zur Bereitstellung von iSCSI-Volumes verwendet werden.
Um iSCSI-Blockvolumes bereitzustellen, verwenden Sie das
google-cloud-netapp-volumes-san Backend, das ein separater Backend-Typ ist, der speziell für SAN-Workloads entwickelt wurde.
NAS-Volumes und iSCSI-Blockvolumes
Google Cloud NetApp Volumes unterstützt sowohl NAS als auch Blockspeicher, die sich darin unterscheiden, wie Anwendungen auf Daten zugreifen und diese verwalten.
NAS-Volumes bieten dateibasierten Speicher und werden über Standarddateiprotokolle wie NFS oder SMB angesprochen. Volumes werden als gemeinsam genutzte Dateisysteme eingebunden und unterstützen gleichzeitigen Zugriff von mehreren Pods oder Knoten.
iSCSI-Block-Volumes bieten rohen Blockspeicher und werden als Blockgeräte an Kubernetes-Knoten angebunden. Blockspeicher wird typischerweise verwendet, wenn Workloads Zugriff auf Blockebene oder anwendungsgesteuertes I/O-Verhalten erfordern.
Dies gilt für die folgenden Umgebungen:
-
Trident 26.02 und später
-
Google Kubernetes Engine (GKE)
-
Google Cloud NetApp Volumes NAS-Pools
-
NFS- und SMB-Workloads
Für Block-(iSCSI)-Workloads siehe Blockspeicher konfigurieren (iSCSI).
Treiberdetails zu Google Cloud NetApp Volumes
Trident stellt den google-cloud-netapp-volumes Treiber zur Verfügung, um NAS-Speicher von Google Cloud NetApp Volumes bereitzustellen.
Der Treiber unterstützt die folgenden Zugriffsmodi:
-
ReadWriteOnce (RWO)
-
ReadOnlyMany (ROX)
-
ReadWriteMany (RWX)
-
ReadWriteOncePod (RWOP)
| Treiber | Protokoll | VolumeModus | Unterstützte Zugriffsmodi | Unterstützte Filesysteme |
|---|---|---|---|---|
|
NFS SMB |
Dateisystem |
RWO, ROX, RWX, RWOP |
|
Cloud-Identität für Google Kubernetes Engine
Cloud identity ermöglicht es Kubernetes-Workloads, auf Google Cloud-Ressourcen zuzugreifen, indem sie sich als Workload-Identität authentifizieren, anstatt statische Google Cloud-Anmeldeinformationen zu verwenden.
Um Cloud Identity mit Google Cloud NetApp Volumes zu verwenden, müssen Sie Folgendes haben:
-
Ein mit Google Kubernetes Engine (GKE) bereitgestellter Kubernetes-Cluster
-
Workload-Identität im GKE-Cluster aktiviert und Metadatenserver auf den Knotenpools aktiviert
-
Ein Google Cloud-Dienstkonto mit der Google Cloud NetApp Volumes Admin-Rolle (
roles/netapp.adminoder einer entsprechenden benutzerdefinierten Rolle -
Trident wurde mit dem Cloud-Anbieter auf
GCPgesetzt und der Cloud-Identitätsannotation konfiguriert installiert
Um Trident mit dem Trident-Operator zu installieren, bearbeiten Sie tridentorchestrator_cr.yaml und setzen Sie cloudProvider auf GCP und cloudIdentity auf das GKE-Dienstkonto.
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"
Legen Sie den Cloud-Anbieter und die Cloud-Identität fest, wenn Sie Trident mit Helm installieren.
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"
Installieren Sie Trident, indem Sie den Cloud-Anbieter und die Cloud-Identität angeben.
tridentctl install \ --cloud-provider=GCP \ --cloud-identity="iam.gke.io/gcp-service-account: cloudvolumes-admin-sa@mygcpproject.iam.gserviceaccount.com" \ -n trident
Konfigurieren Sie ein Trident NAS-Backend
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-Volumen bereitstellen
NAS-Volumes werden mit dem google-cloud-netapp-volumes Backend bereitgestellt und unterstützen die Protokolle NFS und SMB.
StorageClass for NFS-Volumes
Um NFS-Volumes bereitzustellen, setzen Sie nasType auf 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
StorageClass für SMB-Volumes
Mit nasType, csi.storage.k8s.io/node-stage-secret-name und
csi.storage.k8s.io/node-stage-secret-namespace können Sie ein SMB-Volume angeben und die erforderlichen Active Directory-Anmeldeinformationen bereitstellen.
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-Beispiel (RWX)
NAS-Volumes unterstützen gleichzeitigen Zugriff und werden üblicherweise mit
ReadWriteMany bereitgestellt.
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: gcnv-nas-rwx
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 100Gi
storageClassName: gcnv-nfs
PersistentVolumeClaim-Beispiel (RWO)
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: gcnv-nas-rwo
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 100Gi
storageClassName: gcnv-nfs
|
|
NAS-Volumes verwenden volumeMode: Filesystem.
|