Configura Google Cloud NetApp Volumes para cargas de trabajo NAS
Puedes configurar Google Cloud NetApp Volumes como backend para que Trident aprovisione volúmenes de almacenamiento basados en archivos. Trident puede adjuntar volúmenes NFS y SMB usando un backend de Google Cloud NetApp Volumes.
Trident utiliza backends separados para cargas de trabajo NAS y SAN en Google Cloud NetApp Volumes. El google-cloud-netapp-volumes backend admite solo protocolos basados en archivos y no se puede utilizar para aprovisionar volúmenes iSCSI.
Para aprovisionar volúmenes de bloques iSCSI, usa el
google-cloud-netapp-volumes-san backend, que es un tipo de backend independiente diseñado específicamente para cargas de trabajo SAN.
Volúmenes NAS y volúmenes de bloques iSCSI
Google Cloud NetApp Volumes es compatible tanto con NAS como con el almacenamiento en bloque, que difieren en cómo las aplicaciones acceden y gestionan los datos.
Los volúmenes NAS proporcionan almacenamiento basado en archivos y se accede a ellos a través de protocolos de archivos estándar como NFS o SMB. Los volúmenes se montan como sistemas de archivos compartidos y admiten el acceso simultáneo desde varios pods o nodos.
Los volúmenes de bloques iSCSI proporcionan almacenamiento en bloque sin procesar y se accede a ellos como dispositivos de bloques conectados a nodos Kubernetes. El almacenamiento en bloque se utiliza normalmente cuando las cargas de trabajo requieren acceso a nivel de bloque o un comportamiento de E/S gestionado por la aplicación.
Esto se aplica a los siguientes entornos:
-
Trident 26.02 y posteriores
-
Google Kubernetes Engine (GKE)
-
Google Cloud NetApp Volumes pools NAS
-
Cargas de trabajo NFS y SMB
Para cargas de trabajo en bloque (iSCSI), mira Configura el almacenamiento en bloque (iSCSI).
Detalles del controlador de Google Cloud NetApp Volumes
Trident proporciona el google-cloud-netapp-volumes controlador para aprovisionar almacenamiento NAS desde Google Cloud NetApp Volumes.
El controlador admite los siguientes modos de acceso:
-
ReadWriteOnce (RWO)
-
ReadOnlyMany (ROX)
-
ReadWriteMany (RWX)
-
ReadWriteOncePod (RWOP)
| Controlador | Protocolo | VolumeMode | Modos de acceso compatibles | Sistemas de archivos compatibles |
|---|---|---|---|---|
|
NFS SMB |
Sistema de archivos |
RWO, ROX, RWX, RWOP |
|
Identidad en la nube para Google Kubernetes Engine
Cloud identity permite que las cargas de trabajo de Kubernetes accedan a los recursos de Google Cloud autenticándose como una identidad de carga de trabajo en vez de usar credenciales estáticas de Google Cloud.
Para usar la identidad en la nube con Google Cloud NetApp Volumes, debes tener:
-
Un clúster de Kubernetes desplegado usando Google Kubernetes Engine (GKE)
-
Identidad de carga de trabajo habilitada en el clúster GKE y el servidor de metadatos habilitado en los grupos de nodos
-
Una cuenta de servicio de Google Cloud con la función de Google Cloud NetApp Volumes Admin (
roles/netapp.admin) o una función personalizada equivalente -
Trident instalado con el cloud provider establecido en
GCPy la cloud identity annotation configurada
Para instalar Trident usando el operador Trident, edita tridentorchestrator_cr.yaml para establecer cloudProvider en GCP y cloudIdentity en la cuenta de servicio de 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"
Configura el proveedor de la nube y la identidad de la nube cuando instales Trident con Helm.
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"
Instala Trident especificando el proveedor de la nube y la identidad de la nube.
tridentctl install \ --cloud-provider=GCP \ --cloud-identity="iam.gke.io/gcp-service-account: cloudvolumes-admin-sa@mygcpproject.iam.gserviceaccount.com" \ -n trident
Configura un backend NAS Trident
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>"
Aprovisionar volúmenes NAS
Los volúmenes NAS se aprovisionan usando el google-cloud-netapp-volumes backend y son compatibles con los protocolos NFS y SMB.
StorageClass para volúmenes NFS
Para aprovisionar volúmenes NFS, establece nasType en 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 para volúmenes SMB
Usando nasType, csi.storage.k8s.io/node-stage-secret-name y
csi.storage.k8s.io/node-stage-secret-namespace, puedes especificar un volumen SMB y proporcionar las credenciales de Active Directory necesarias.
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
Ejemplo de PersistentVolumeClaim (RWX)
Los volúmenes NAS admiten el acceso simultáneo y suelen aprovisionarse con
ReadWriteMany.
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: gcnv-nas-rwx
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 100Gi
storageClassName: gcnv-nfs
Ejemplo de PersistentVolumeClaim (RWO)
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: gcnv-nas-rwo
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 100Gi
storageClassName: gcnv-nfs
|
|
Los volúmenes NAS usan volumeMode: Filesystem.
|