Activa instancias de Filestore en Cloud Workstations

Cloud Workstations puede activar instancias del sistema de archivos de red (NFS) de Filestore que se encuentren en la misma red de VPC. Varias instancias de Cloud Workstations pueden acceder a la instancia de Filestore al mismo tiempo.

Para obtener más información sobre Filestore, consulta la documentación de Filestore.

Antes de comenzar

Crear tu proyecto

  1. En tu proyecto de estaciones de trabajo, asegúrate de haber habilitado la API de Filestore y las APIs de Cloud Workstations.

    Habilita las APIs de Filestore y Cloud Workstations

  2. Asegúrate de instalar y, luego, inicializar la CLI de gcloud. Para inicializar la CLI de gcloud, ejecuta el siguiente comando:

    gcloud init
    

Funciones obligatorias

A fin de obtener los permisos que necesitas para crear y actualizar estaciones de trabajo, solicita a tu administrador que te otorgue los siguientes roles de IAM en el proyecto de estaciones de trabajo:

  • Si eres el Administrador de Cloud Workstations, pídele al administrador que te otorgue el siguiente rol: Administrador de Cloud Workstations (roles/workstations.admin).
  • Si eres el administrador de Filestore, pídele al administrador que te otorgue el siguiente rol: Editor de Filestore (roles/file.editor).

Si quieres obtener más información para otorgar funciones, consulta Administra el acceso.

Es posible que también puedas obtener los permisos necesarios mediante funciones personalizadas, o bien otras funciones predefinidas.

Crea una instancia de Filestore

Si aún no creaste una instancia de Filestore, crea una con el comando gcloud CLI filestore instances create que aparece a continuación. Para obtener información sobre nombres, consulta Cómo asignar un nombre a tu instancia de Filestore y Cómo asignar un nombre a los archivos compartidos.

  gcloud filestore instances create INSTANCE_ID \
    --file-share=name=FILE_SHARE_NAME,capacity=1TiB \
    --tier=ENTERPRISE \
    --network=name=NETWORK_NAME \
    --region=LOCATION \
    --project WORKSTATIONS_PROJECT_ID

Reemplaza lo siguiente:

  • INSTANCE_ID: Es el ID para identificar de forma única tu instancia de Filestore.
  • FILE_SHARE_NAME: Es el nombre del directorio que se entrega desde la instancia de Filestore, por ejemplo, vol1.
  • NETWORK_NAME: Es el nombre de la red de VPC a la que está conectada la instancia. Debe coincidir con la red del clúster de Cloud Workstations, por ejemplo, default.
  • LOCATION: Es la región de la instancia de Filestore. Debe coincidir con la región del clúster de la estación de trabajo.
  • WORKSTATIONS_PROJECT_ID: Es el ID del proyecto de estaciones de trabajo.

Obtener la dirección IP de la instancia de Filestore

Después de crear la instancia de Filestore, obtén su dirección IP mediante el comando filestore instances describe gcloud de la CLI:

  gcloud filestore instances describe INSTANCE_ID \
    --region=LOCATION \
    --project WORKSTATIONS_PROJECT_ID

Reemplaza lo siguiente:

  • INSTANCE_ID: Es el ID para identificar de forma única tu instancia de Filestore.
  • LOCATION: Es la región de la instancia de Filestore. Debe coincidir con la región del clúster de la estación de trabajo.
  • WORKSTATIONS_PROJECT_ID: Es el ID del proyecto de estaciones de trabajo.

El comando imprime la dirección IP en el siguiente formato:

...
networks:
- connectMode: DIRECT_PEERING
  ipAddresses:
  - FILESTORE_IP_ADDRESS
...

Toma nota del FILESTORE_IP_ADDRESS, ya que lo necesitarás en pasos posteriores.

Crear clúster de estación de trabajo

Si aún no creaste un clúster de estación de trabajo, crea uno con el comando clusters create de la CLI de gcloud:

gcloud workstations clusters create \
    WORKSTATIONS_CLUSTER_NAME \
    --network=NETWORK_NAME \
    --region=LOCATION \
    --project=WORKSTATIONS_PROJECT_ID

Reemplaza lo siguiente:

  • WORKSTATIONS_CLUSTER_NAME: Es el nombre del clúster de la estación de trabajo.
  • NETWORK_NAME: Es el nombre de la red de VPC a la que se conectan las instancias de Cloud Workstations. Debe coincidir con la red de la instancia de Filestore, por ejemplo, default.
  • LOCATION: Es el nombre de la región para el clúster de la estación de trabajo. Debe coincidir con la región de la instancia de Filestore.
  • WORKSTATIONS_PROJECT_ID: Es el ID del proyecto de estaciones de trabajo.

Crea una configuración de estación de trabajo y una estación de trabajo

Si aún no creaste una configuración de Cloud Workstations y una instancia de estación de trabajo, consulta Crea una configuración de estación de trabajo y Crea una estación de trabajo.

Activa una instancia de Filestore en una estación de trabajo

Después de iniciar la instancia de Cloud Workstations, ve a una ventana de terminal y ejecuta los siguientes comandos para activar una instancia de Filestore:

sudo rpcbind
mkdir -p FILE_SHARE_NAME
sudo mount -o rw,intr FILESTORE_IP_ADDRESS:/FILE_SHARE_NAME FILE_SHARE_NAME

Reemplaza lo siguiente:

  • FILE_SHARE_NAME: Es el nombre del directorio que se entrega desde la instancia de Filestore, por ejemplo, vol1.
  • FILESTORE_IP_ADDRESS: Es la dirección IP de tu instancia de Filestore.

Después de que el comando mount se ejecute de forma correcta, verás el contenido de la instancia de Filestore en la ruta de acceso a los archivos compartidos.

Para obtener más información sobre la activación de instancias de Filestore, consulta Activa los archivos compartidos en clientes de Compute Engine.

Crea una imagen de contenedor personalizada para la activación automática de Filestore

Puedes usar el siguiente Dockerfile para crear una imagen de contenedor personalizada que active una instancia de Filestore en Cloud Workstations automáticamente al inicio.

FROM us-central1-docker.pkg.dev/cloud-workstations-images/predefined/code-oss:latest

RUN echo "#!/bin/bash\n\
sudo rpcbind\n\
sudo mkdir -p /home/user/FILE_SHARE_NAME\n\
sudo mount -o rw,intr FILESTORE_IP_ADDRESS:/FILE_SHARE_NAME /home/user/FILE_SHARE_NAME" | sudo tee -a /etc/workstation-startup.d/011_mount-filestore.sh

RUN sudo chmod +x /etc/workstation-startup.d/011_mount-filestore.sh

Reemplaza lo siguiente:

  • FILE_SHARE_NAME: Es el nombre del directorio que se entrega desde la instancia de Filestore, por ejemplo, vol1.
  • FILESTORE_IP_ADDRESS: Es la dirección IP de tu instancia de Filestore.

Si quieres obtener más información sobre la creación de una imagen de contenedor personalizada para Cloud Workstations, consulta Personaliza imágenes de contenedor.