Guía de inicio rápido: Accede a los buckets de Cloud Storage con el controlador de CSI de FUSE

En esta guía de inicio rápido, aprenderás a acceder a buckets de Cloud Storage desde una aplicación de Google Kubernetes Engine (GKE) como si fueran sistemas de archivos locales. En este inicio rápido, se proporciona un ejemplo de manifiesto de Kubernetes para crear un Pod que active el bucket y se muestra cómo interactuar con el contenido del bucket a través del sistema de archivos del Pod.

Esta página está dirigida a desarrolladores, especialistas en almacenamiento y cualquier otra persona que desee aprovisionar y administrar recursos de la nube, y también implementar cargas de trabajo. Para obtener más información sobre los roles comunes, consulta Roles y tareas comunes de los usuarios de GKE.

Antes de leer esta página, asegúrate de estar familiarizado con Kubernetes y el controlador CSI de Cloud Storage FUSE.

En esta guía de inicio rápido, se usa el modo GKE Autopilot. Si quieres usar el modo estándar, consulta Configura el controlador de CSI de Cloud Storage FUSE para GKE.

Antes de comenzar

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the GKE and Cloud Storage APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  6. Verify that billing is enabled for your Google Cloud project.

  7. Enable the GKE and Cloud Storage APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  8. Make sure that you have the following role or roles on the project: Kubernetes Engine Admin, Storage Admin, Service Account User

    Check for the roles

    1. In the Google Cloud console, go to the IAM page.

      Go to IAM
    2. Select the project.
    3. In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.

    4. For all rows that specify or include you, check the Role column to see whether the list of roles includes the required roles.

    Grant the roles

    1. In the Google Cloud console, go to the IAM page.

      Ir a IAM
    2. Selecciona el proyecto.
    3. Haz clic en Otorgar acceso.
    4. En el campo Principales nuevas, ingresa tu identificador de usuario. Esta suele ser la dirección de correo electrónico de una Cuenta de Google.

    5. En la lista Seleccionar un rol, elige uno.
    6. Para otorgar roles adicionales, haz clic en Agregar otro rol y agrega uno más.
    7. Haz clic en Guardar.
    8. Crea un clúster de GKE Autopilot

      1. En la consola de Google Cloud , ve a la página Crea un clúster de Autopilot.

        Ir a Crea un clúster de Autopilot

      2. En Conceptos básicos del clúster, sigue estos pasos:

        1. En el campo Nombre, ingresa un nombre para el clúster.

        2. Mantén los valores predeterminados para el resto de la configuración.

      3. Para crear el clúster, haz clic en Crear.

      Cree un bucket de Cloud Storage

      1. En la consola de Google Cloud , ve a la página Buckets de Cloud Storage.

        Ir a Buckets

      2. Haz clic en Crear.

      3. En la página Crear un bucket, en la sección Primeros pasos, haz lo siguiente:

        1. Ingresa un nombre único a nivel global para tu bucket que cumpla con los requisitos de nomenclatura de buckets.

        2. Mantén los valores predeterminados para el resto de la configuración.

      4. Para crear el bucket, haz clic en Crear.

      Sube objetos a tu bucket de Cloud Storage

      1. En la consola de Google Cloud , ve a la página Buckets de Cloud Storage.

        Ir a Buckets

      2. En la lista de buckets, haz clic en el nombre del bucket que acabas de crear.

      3. En la pestaña Objetos del bucket, realiza una de las siguientes acciones:

        • Arrastra archivos desde tu escritorio o administrador de archivos al panel principal en la consola de Google Cloud .

        • Haz clic en el botón Subir archivos. En el diálogo que aparece, selecciona los archivos que deseas subir y haz clic en Abrir.

      Configura el acceso a tu bucket de Cloud Storage

      Para asegurarte de que tu clúster de GKE pueda acceder a tu bucket de Cloud Storage, sigue los pasos que se indican en Configura el acceso a los buckets de Cloud Storage.

      Configura Cloud Shell

      In the Google Cloud console, activate Cloud Shell.

      Activate Cloud Shell

      Se inicia una sesión de Cloud Shell y se muestra una ventana de línea de comandos. La sesión puede tardar unos segundos en inicializarse.

      Implementa un Pod para acceder a tu bucket de Cloud Storage con FUSE

      1. Configura el proyecto predeterminado en el que deseas implementar el Pod:

        gcloud config set project PROJECT_ID
        

        Reemplaza PROJECT_ID con el ID del proyecto.

      2. Crea y aplica el manifiesto del Pod con el siguiente contenido:

        cat << EOF | kubectl apply -f -
        apiVersion: v1
        kind: Pod
        metadata:
          name: gcsfuse-test
          namespace: default
          annotations:
            gke-gcsfuse/volumes: "true"
        spec:
          terminationGracePeriodSeconds: 60
          containers:
          - image: busybox
            name: busybox
            command: ["sleep"]
            args: ["infinity"]
            volumeMounts:
            - name: gcsfuse-test
              mountPath: /data
              readOnly: true
          serviceAccountName: default
          volumes:
          - name: gcsfuse-test
            csi:
              driver: gcsfuse.csi.storage.gke.io
              volumeAttributes:
                bucketName: BUCKET_NAME
                mountOptions: "implicit-dirs"
        EOF
        
        • Reemplaza BUCKET_NAME por el nombre de tu bucket de Cloud Storage.
        • Si usas un espacio de nombres o una cuenta de servicio diferentes, reemplaza los campos namespace y serviceAccountName según corresponda.

        El contenido de este manifiesto inicia un Pod llamado gcsfuse-test que activa el bucket en su ruta de acceso /data.

      3. Verifica que el Pod se esté ejecutando.

        kubectl get pod gcsfuse-test
        

        El resultado es similar a este:

        NAME           READY   STATUS    RESTARTS   AGE
        gcsfuse-test   2/2     Running   0          12s
        

        El controlador de CSI del FUSE de Cloud Storage adjunta un contenedor de sidecar en tu Pod para administrar las interacciones con Cloud Storage.

        Si el Pod no se está ejecutando, puedes recuperar los registros de eventos para ayudarte a diagnosticar el problema ejecutando el comando kubectl describe pod gcsfuse-test. Para obtener más información, consulta Solución de problemas en GitHub.

      4. Una vez que el Pod esté en ejecución, puedes explorar su sistema de archivos:

        kubectl exec -it gcsfuse-test -- find /data
        

      Limpia

      Para evitar que se apliquen cargos a tu Google Cloud cuenta por los recursos que usaste en este instructivo, borra el Pod:

      kubectl delete pod gcsfuse-test
      

      ¿Qué sigue?