Configura Google Cloud NetApp Volumes
Puedes configurar Google Cloud NetApp Volumes como backend para que Trident aprovisione almacenamiento para cargas de trabajo de Kubernetes.
Descripción general
Trident es compatible con Google Cloud NetApp Volumes tanto para cargas de trabajo NAS (NFS y SMB) como en bloque (iSCSI).
-
Las cargas de trabajo NAS utilizan el
google-cloud-netapp-volumesbackend -
Las cargas de trabajo en bloque (iSCSI) utilizan el
google-cloud-netapp-volumes-sanbackend
Los volúmenes NAS proporcionan almacenamiento basado en archivos y se accede a ellos mediante protocolos NFS o SMB. Estos volúmenes admiten el acceso compartido a través de varios pods o nodos.
Los volúmenes en bloque proporcionan almacenamiento en bloque sin procesar y se accede a ellos como dispositivos iSCSI conectados a nodos Kubernetes. Estos volúmenes se utilizan cuando las aplicaciones requieren acceso a nivel de bloque.
Esto se aplica a los siguientes entornos:
-
Trident 26.02 y posteriores
-
Google Kubernetes Engine (GKE) o Red Hat OpenShift
-
Pools de almacenamiento de Google Cloud NetApp Volumes
Para configurar el almacenamiento en bloque (iSCSI), consulta Configura el almacenamiento en bloque (iSCSI).
Prepárese para la configuración
La identidad en la nube 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.
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 utilizando el operador Trident, edita 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"
Establece el proveedor de la nube y la identidad de la nube al instalar 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
Configurar el almacenamiento NAS
Detalles del controlador
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 |
|
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
Para aprovisionar volúmenes SMB, establece nasType en smb y proporciona las credenciales.
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)
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.
|