Guida rapida: accedi ai bucket Cloud Storage con il driver CSI FUSE
In questa guida rapida, scoprirai come accedere ai bucket Cloud Storage dall'interno di un'applicazione Google Kubernetes Engine (GKE) come se fossero file system locali. Questa guida rapida fornisce un manifest Kubernetes di esempio per creare un pod che monta il secchio e mostra come interagire con i contenuti del secchio utilizzando il sistema di file del pod.
Questa pagina è rivolta a sviluppatori, esperti di archiviazione e a chiunque voglia eseguire il provisioning e la gestione delle risorse cloud ed eseguire il deployment dei carichi di lavoro. Per approfondire i ruoli comuni, consulta Ruoli e attività utente comuni di GKE Enterprise.
Prima di leggere questa pagina, assicurati di conoscere Kubernetes e il driver CSI di Cloud Storage FUSE.
Questa guida rapida utilizza la modalità GKE Autopilot. Se vuoi utilizzare la modalità Standard, consulta Configurare il driver CSI di Cloud Storage FUSE per GKE.
Prima di iniziare
- 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.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the GKE and Cloud Storage APIs.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the GKE and Cloud Storage APIs.
-
Make sure that you have the following role or roles on the project: roles/container.admin, roles/storage.admin, roles/storage.objectUser, roles/iam.serviceAccountUser
Check for the roles
-
In the Google Cloud console, go to the IAM page.
Go to IAM - Select the project.
-
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.
- 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
-
In the Google Cloud console, go to the IAM page.
Vai a IAM - Seleziona il progetto.
- Fai clic su Concedi accesso.
-
Nel campo Nuovi principali, inserisci il tuo identificatore utente. In genere si tratta dell'indirizzo email di un Account Google.
- Nell'elenco Seleziona un ruolo, seleziona un ruolo.
- Per concedere altri ruoli, fai clic su Aggiungi un altro ruolo e aggiungi ogni ruolo aggiuntivo.
- Fai clic su Salva.
-
Crea un cluster GKE Autopilot
Nella console Google Cloud, vai alla pagina Cluster di GKE.
Fai clic su
Crea.Nella finestra di dialogo Crea cluster, fai clic su Configura per la modalità Autopilot.
In Impostazioni di base del cluster:
Nel campo Nome, inserisci un nome per il cluster.
Mantieni i valori predefiniti per le altre impostazioni.
Per creare il cluster, fai clic su Crea.
Crea un bucket Cloud Storage
- Nella console Google Cloud, vai alla pagina Bucket in Cloud Storage.
Fai clic su
Crea.Nella pagina Crea un bucket, nella sezione Inizia:
Inserisci un nome univoco globale per il bucket che soddisfi i requisiti per i nomi dei bucket.
Mantieni i valori predefiniti per le altre impostazioni.
Per creare il bucket, fai clic su Crea.
Carica oggetti nel bucket Cloud Storage
- Nella console Google Cloud, vai alla pagina Bucket in Cloud Storage.
Nell'elenco dei bucket, fai clic sul nome del bucket appena creato.
Nella scheda Oggetti del bucket, esegui una delle seguenti operazioni:
Trascina i file dal desktop o dal gestore di file al riquadro principale della console Google Cloud.
Fai clic sul pulsante Carica file. Nella finestra di dialogo visualizzata, seleziona i file che vuoi caricare e fai clic su Apri.
Configurare l'accesso al bucket Cloud Storage
Per assicurarti che il bucket Cloud Storage sia accessibile dal tuo cluster GKE, segui i passaggi descritti in Configurare l'accesso ai bucket Cloud Storage.
Esegui il deployment di un pod per accedere al bucket Cloud Storage utilizzando FUSE
In the Google Cloud console, activate Cloud Shell.
Una sessione di Cloud Shell si apre in un frame nella console.
Per impostare il progetto predefinito, utilizza l'ID progetto del progetto in cui vuoi eseguire il deployment del pod:
gcloud config set project PROJECT_ID
Sostituisci
PROJECT_ID
con l'ID progetto.Crea e applica il manifest del pod con i seguenti contenuti:
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
- Sostituisci
BUCKET_NAME
con il nome del tuo bucket Cloud Storage. - Se utilizzi uno spazio dei nomi diverso o un account di servizio, sostituisci i campi
namespace
eserviceAccountName
di conseguenza.
I contenuti di questo manifest avviano un pod denominato
gcsfuse-test
che monta il bucket nel percorso/data
.- Sostituisci
Verifica che il pod sia in esecuzione:
kubectl get pod gcsfuse-test
L'output è simile al seguente:
NAME READY STATUS RESTARTS AGE gcsfuse-test 2/2 Running 0 12s
Il driver CSI di Cloud Storage FUSE collega un contenitore sidecar nel pod per gestire le interazioni con Cloud Storage.
Se il pod non è in esecuzione, puoi recuperare i log eventi per aiutarti a diagnosticare il problema eseguendo il comando
kubectl describe pod gcsfuse-test
. Per maggiori informazioni, consulta la sezione Risoluzione dei problemi su GitHub.Una volta avviato il pod, puoi esplorarne il file system:
kubectl exec -it gcsfuse-test -- find /data
Esegui la pulizia
Per evitare che al tuo account Google Cloud vengano addebitati costi relativi alle risorse utilizzate in questo tutorial, elimina il pod:
kubectl delete pod gcsfuse-test