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
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.
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ónfileShares
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:
Visita la página de instancias de Filestore en Cloud Console.
El campo
IP_ADDRESS
en los resultados del comando instances list.La sección
ipAddresses
en los resultados del comando instances describe.
Si deseas obtener más información sobre la otra configuración, consulta Volúmenes persistentes.
- 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
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
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.
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
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, incluida 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 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, es
fileserver-claim
.
Si deseas obtener más información sobre la otra configuración, consulta Pods.
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.