Accede a archivos compartidos desde los clústeres de Google Kubernetes Engine

En esta página, se muestra cómo acceder a un archivo compartido de Filestore desde un clúster de GKE mediante la creación de un volumen persistente (PV) y una reclamación de volumen persistente (PVC).

El clúster debe estar en el mismo proyecto de Google Cloud y la red de VPC que la instancia de Filestore, a menos que la instancia de Filestore esté en una red de VPC compartida. En la actualidad, las instancias de Filestore solo se pueden crear en una red de VPC compartida desde el proyecto host. Para obtener más detalles, consulta Problemas conocidos.

Crea un volumen persistente

  1. Instala la herramienta de línea de comandos de kubectl:

    gcloud components install kubectl &&
    gcloud container clusters get-credentials cluster-name
    

    donde cluster-name es el nombre del clúster.

  2. Crea una especificación de volumen persistente de Kubernetes. Este es un archivo .yaml que proporciona información sobre cómo acceder al archivo compartido de Filestore. La especificación se verá similar al ejemplo siguiente:

    apiVersion: v1
    kind: PersistentVolume
    metadata:
     name: fileserver
    spec:
     capacity:
       storage: storage
     accessModes:
     - ReadWriteMany
     nfs:
       path: /file-share
       server: ip-address
    

    Donde:

    • storage es el tamaño del archivo compartido en la instancia de Filestore. Debes especificar el valor storage en una de las unidades compatibles que se describen en las cantidades de recursos, como 2T.
    • file-share es el nombre del archivo compartido en la instancia de Filestore. Puedes obtener el nombre del archivo compartido de una instancia desde cualquiera de las fuentes siguientes:

      • La página de instancias de Filestore en Cloud Console

      Vaya a la página de instancias de Filestore

      • El campo FILE_SHARE_NAME en los resultados del comando instances list.
      • El campo name en la sección fileShares de los resultados del comando instances describe.
    • ip-address es la dirección IP para la instancia de Filestore. Puedes obtener la dirección IP de una instancia desde cualquiera de las fuentes siguientes:

    Si deseas obtener más información sobre la otra configuración, consulta Volúmenes persistentes.

  3. Implementa la especificación del volumen persistente:

    kubectl create -f /path/to/persistent-volume-file-name.yaml
    

    en el que persistent-volume-file-name es el nombre del archivo de especificación de volumen persistente de Kubernetes que creaste en el paso anterior.

Crea una reclamación de volumen persistente

  1. Crea una especificación de una reclamación de volumen persistente de Kubernetes. Este es un archivo .yaml que permite a un pod de Kubernetes acceder a los recursos de almacenamiento de un volumen persistente. La especificación se verá similar al ejemplo siguiente:

    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
     name: fileserver-claim
    spec:
     accessModes:
     - ReadWriteMany
     storageClassName: ""
     volumeName: fileserver
     resources:
       requests:
         storage: storage
    

    En el que storage es el tamaño de la reclamación de volumen persistente que deseas que esté disponible en los objetos de Kubernetes.

    Debes especificar el valor storage en una de las unidades compatibles que se describen en las cantidades de recursos. El valor que especifiques debe ser igual o menor que el almacenamiento que especificaste para el volumen persistente.

    Si deseas obtener más información sobre la otra configuración, consulta Reclamaciones de volúmenes persistentes.

  2. Implementa la especificación de reclamación de volumen persistente:

    kubectl create -f /path/to/persistent-volume-claim-file-name.yaml
    

    en el que persistent-volume-file-name es el nombre del archivo de especificación de volumen persistente de Kubernetes que creaste en el paso anterior.

Consume la reclamación de volumen persistente

  1. Crea una especificación para un objeto de Kubernetes que consuma una reclamación de volumen persistente, como un pod de Kubernetes. Esta especificación es un archivo .yaml file que describe el objeto, junto con la información sobre los recursos de almacenamiento disponibles. Una especificación de pod se verá similar al ejemplo siguiente:

    apiVersion: v1
    kind: Pod
    metadata:
     name: my-pod
    spec:
     containers:
     - name: container-name
       image: image-name
       volumeMounts:
       - mountPath: mount-path
         name: mypvc
     volumes:
     - name: mypvc
       persistentVolumeClaim:
         claimName: claim-name
         readOnly: false
    

    Donde:

    • container-name es el nombre de un contenedor en el pod.
    • image-name es la etiqueta de la imagen de Docker que ejecuta el contenedor.
    • mount-path es la ruta para activar la reclamación de volumen persistente, por ejemplo, /mnt/fileserver.
    • claim-name es el nombre de una reclamación de valor persistente implementado. En este ejemplo, es fileserver-claim.

    Si deseas obtener más información sobre la otra configuración, consulta Pods.

  2. Implementa la especificación del pod:

    kubectl create -f /path/to/pod-file-name.yaml
    

    en el que pod-file-name es el nombre de la especificación del pod que creaste en el paso anterior.

Qué sigue

Obtenga información sobre la instancia de Filestore.