Guía de inicio rápido: accede a segmentos de Cloud Storage con el controlador CSI de FUSE

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

Esta página está dirigida a desarrolladores, especialistas en almacenamiento y cualquier otra persona que quiera aprovisionar y gestionar recursos en la nube, así como implementar cargas de trabajo. Para obtener más información sobre los roles habituales, consulta Roles y tareas de usuario habituales de GKE.

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

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

Antes de empezar

  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 Conceder acceso.
    4. En el campo Nuevos principales, introduce tu identificador de usuario. Normalmente, se trata de la dirección de correo de una cuenta de Google.

    5. En la lista Selecciona un rol, elige un rol.
    6. Para conceder más roles, haz clic en Añadir otro rol y añade cada rol adicional.
    7. Haz clic en Guardar.
    8. Crear un clúster de Autopilot de GKE

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

        Ir a Crear un clúster de Autopilot

      2. En Información básica del clúster, haz lo siguiente:

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

        2. En el resto de los ajustes, deje los valores predeterminados.

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

      Crea un segmento de Cloud Storage

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

        Ir a Contenedores

      2. Haz clic en Crear.

      3. En la página Create a bucket (Crear un contenedor), vaya a la sección Get started (Empezar) y haga lo siguiente:

        1. Asigna un nombre global único al segmento que cumpla los requisitos de nombres de segmentos.

        2. En el resto de los ajustes, deje los valores predeterminados.

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

      Subir objetos a un depósito de Cloud Storage

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

        Ir a Contenedores

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

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

        • Arrastra archivos desde el escritorio o el gestor de archivos al panel principal de la Google Cloud consola.

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

      Configurar el acceso a un segmento de Cloud Storage

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

      Configurar Cloud Shell

      In the Google Cloud console, activate Cloud Shell.

      Activate Cloud Shell

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

      Desplegar un pod para acceder a tu segmento de Cloud Storage mediante FUSE

      1. Define el proyecto predeterminado en el que quieras implementar el pod:

        gcloud config set project PROJECT_ID
        

        Sustituye PROJECT_ID por el ID del proyecto.

      2. Crea y aplica el manifiesto de 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
        
        • Sustituye BUCKET_NAME por el nombre de tu segmento de Cloud Storage.
        • Si usas otro espacio de nombres o una cuenta de servicio, sustituye los campos namespace y serviceAccountName según corresponda.

        El contenido de este manifiesto inicia un pod llamado gcsfuse-test que monta el segmento en su ruta /data.

      3. Comprueba que el pod se está ejecutando:

        kubectl get pod gcsfuse-test
        

        El resultado debería ser similar al siguiente:

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

        El controlador CSI de Cloud Storage FUSE adjunta un contenedor sidecar a tu pod para gestionar las interacciones con Cloud Storage.

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

      4. Una vez que el pod esté en funcionamiento, puedes explorar su sistema de archivos:

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

      Limpieza

      Para evitar que se apliquen cargos en tu cuenta Google Cloud por los recursos que has usado en este tutorial, elimina el pod:

      kubectl delete pod gcsfuse-test
      

      Siguientes pasos