Trabajar con controladores CSI para pequeñas y medianas empresas - AWS Storage Gateway

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Trabajar con controladores CSI para pequeñas y medianas empresas

Siga los procedimientos de esta sección para instalar, configurar o eliminar los controladores CSI necesarios para usar un recurso compartido de archivos SMB en una puerta de enlace de archivos de Amazon S3 para su almacenamiento en su clúster de Kubernetes. Para obtener más información, consulte la documentación de código abierto sobre el controlador SMB CSI en. GitHub https://github.com/kubernetes-csi/csi-driver-smb/blob/master/docs/install-csi-driver-master.md

nota

Al crear un PersistentVolume objeto o un StorageClass objeto, puede especificar un ReclaimPolicy parámetro para determinar qué ocurre con el almacenamiento externo cuando se eliminan los objetos. El controlador CSI SMB admite las Recycle opciones Retain y, pero actualmente no admite ninguna opción. Delete

Instale los controladores

Para instalar los controladores CSI SMB de Kubernetes:
  1. Desde un terminal de línea de comandos con acceso a tu clúster de Kubernetes, kubectl ejecuta el siguiente comando:

    curl -skSL https://raw.githubusercontent.com/kubernetes-csi/csi-driver-smb/master/deploy/install-driver.sh | bash -s master --

  2. Espere a que finalice el comando anterior y, a continuación, utilice los siguientes comandos para asegurarse de que los módulos de controladores CSI se estén ejecutando:

    kubectl -n kube-system get pod -o wide --watch -l app=csi-smb-controller

    kubectl -n kube-system get pod -o wide --watch -l app=csi-smb-node

    El resultado debería tener un aspecto similar al siguiente:

    NAME READY STATUS RESTARTS AGE IP NODE csi-smb-controller-56bfddd689-dh5tk 4/4 Running 0 35s 10.240.0.19 k8s-agentpool-22533604-0 csi-smb-controller-56bfddd689-8pgr4 4/4 Running 0 35s 10.240.0.35 k8s-agentpool-22533604-1 csi-smb-node-cvgbs 3/3 Running 0 35s 10.240.0.35 k8s-agentpool-22533604-1 csi-smb-node-dr4s4 3/3 Running 0 35s 10.240.0.4 k8s-agentpool-22533604-0

Cree un objeto SMB StorageClass

Para crear un nuevo StorageClass objeto SMB para tu clúster de Kubernetes:
  1. Crea un archivo de configuración con un nombre storageclass.yaml con un contenido similar al del siguiente ejemplo. Sustituya la que se muestra por su propia información específica de la implementación. ExampleValues

    --- apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: ExampleStorageClassName provisioner: smb.csi.k8s.io parameters: source: "//gateway-dns-name-or-ip-address/example-share-name" # if csi.storage.k8s.io/provisioner-secret is provided, will create a sub directory # with PV name under source csi.storage.k8s.io/provisioner-secret-name: "examplesmbcreds" csi.storage.k8s.io/provisioner-secret-namespace: "examplenamespace" csi.storage.k8s.io/node-stage-secret-name: "examplesmbcreds" csi.storage.k8s.io/node-stage-secret-namespace: "examplenamespace" volumeBindingMode: Immediate reclaimPolicy: Retain mountOptions: - dir_mode=0777 - file_mode=0777 - uid=1001 - gid=1001
  2. Desde un terminal de línea de comandos con acceso a kubectl ystorageclass.yaml, ejecute el siguiente comando:

    kubectl apply -f storageclass.yaml

    nota

    También puedes crearlo StorageClass proporcionando el texto de .yaml configuración del paso anterior a la mayoría de las plataformas de administración y contenedorización de Kubernetes de terceros.

  3. Configura los pods de tu clúster de Kubernetes para que usen los nuevos que has creado. StorageClass Para obtener más información, consulta la documentación en línea de Kubernetes en. https://kubernetes.io/docs/concepts/storage/

Cree SMB y objetos PersistentVolume PersistentVolumeClaim

Para crear nuevos PersistentVolumeClaim objetos PersistentVolume y SMB:
  1. Cree dos archivos de configuración. Uno con nombre persistentvolume.yaml y otro con nombrepersistentvolumeclaim.yaml.

  2. Parapersistentvolume.yaml, añada contenido similar al siguiente ejemplo. Sustituya la que se muestra por su propia información específica de la implementación. ExampleValues

    --- apiVersion: v1 kind: PersistentVolume metadata: name: pv-smb-example-name namespace: smb-example-namespace # PersistentVolume and PersistentVolumeClaim must use the same namespace parameter spec: capacity: storage: 100Gi accessModes: - ReadWriteMany persistentVolumeReclaimPolicy: Retain mountOptions: - dir_mode=0777 - file_mode=0777 - vers=3.0 csi: driver: smb.csi.k8s.io readOnly: false volumeHandle: examplehandle # make sure it's a unique id in the cluster volumeAttributes: source: "//gateway-dns-name-or-ip-address/example-share-name" nodeStageSecretRef: name: example-smbcreds namespace: smb-example-namespace
  3. En lugar de esopersistentvolumeclaim.yaml, añada contenido similar al del siguiente ejemplo. Sustituya la que se muestra por su propia información específica de la implementación. ExampleValues

    --- kind: PersistentVolumeClaim apiVersion: v1 metadata: name: examplename-pvc-smb-static namespace: smb-example-namespace # PersistentVolume and PersistentVolumeClaim must use the same namespace parameter spec: accessModes: - ReadWriteMany resources: requests: storage: 10Gi volumeName: pv-smb-example-name # make sure specfied volumeName matches the name of the PersistentVolume you created storageClassName: ""
  4. Desde un terminal de línea de comandos con acceso a kubectl los dos .yaml archivos que creó, ejecute los siguientes comandos:

    kubectl apply -f persistentvolume.yaml

    kubectl apply -f persistentvolumeclaim.yaml

    nota

    También puedes crear los PersistentVolumeClaim objetos PersistentVolume y proporcionando el texto de .yaml configuración del paso anterior a la mayoría de las plataformas de administración y contenedorización de Kubernetes de terceros.

  5. Configura los pods de tu clúster de Kubernetes para que usen los nuevos que has creado. PersistentVolumeClaim Para obtener más información, consulta la documentación en línea de Kubernetes en. https://kubernetes.io/docs/concepts/storage/

Desinstale los controladores

Para desinstalar los controladores SMB CSI de Kubernetes:
  • Desde un terminal de línea de comandos con acceso a tu clúster de Kubernetes, kubectl ejecuta el siguiente comando:

    curl -skSL https://raw.githubusercontent.com/kubernetes-csi/csi-driver-smb/master/deploy/uninstall-driver.sh | bash -s --