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 la misma red de VPC que la instancia de Filestore.

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, que 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. Especifica el valor de storage en una de las unidades admitidas que se describen en 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 de 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, que es un archivo YAML que permite que un pod de Kubernetes acceda 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:
      # Specify "" as the storageClassName so it matches the PersistentVolume's StorageClass.
      # A nil storageClassName value uses the default StorageClass. For details, see
      # https://kubernetes.io/docs/concepts/storage/persistent-volumes/#class-1
      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 la reclamación de volúmenes persistentes:

    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 que describe el objeto, que incluye información sobre los recursos de almacenamiento disponibles. Una especificación de pod es similar al siguiente ejemplo:

    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 para 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, el claimName 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?