Questa pagina descrive come configurare e prepararsi a utilizzare il driver CSI FUSE Cloud Storage per GKE.
Per utilizzare il driver CSI di Cloud Storage FUSE:
Crea il bucket Cloud Storage
Se non l'hai ancora fatto, crea i bucket Cloud Storage. Monti questi bucket come volumi nel tuo cluster GKE. Per migliorare le prestazioni, imposta Tipo di località su Regione e seleziona una regione corrispondente al tuo cluster GKE.
Abilita il driver CSI di Cloud Storage FUSE
Segui questi passaggi, a seconda che tu stia utilizzando GKE Autopilot o i cluster standard. Ti consigliamo di utilizzare un cluster Autopilot per un'esperienza Kubernetes completamente gestita. Per scegliere la modalità più adatta ai tuoi carichi di lavoro, consulta Scegliere una modalità di funzionamento di GKE.
Autopilot
Il driver CSI di Cloud Storage FUSE è abilitato per impostazione predefinita per i cluster Autopilot. Puoi andare a Configurare l'accesso ai bucket Cloud Storage.
Standard
Se nel tuo cluster standard è attivato il driver CSI di Cloud Storage FUSE, vai a Configurare l'accesso ai bucket Cloud Storage
Per creare un cluster standard con il driver CSI di Cloud Storage FUSE attivo, puoi utilizzare il comando gcloud container clusters create
:
gcloud container clusters create CLUSTER_NAME \
--addons GcsFuseCsiDriver \
--cluster-version=VERSION \
--location=LOCATION \
--workload-pool=PROJECT_ID.svc.id.goog
Sostituisci quanto segue:
CLUSTER_NAME
: il nome del tuo cluster.VERSION
: il numero di versione di GKE. Devi selezionare 1.24 o versioni successive.LOCATION
: la regione o la zona Compute Engine per il cluster.PROJECT_ID
: il tuo ID progetto.
Per attivare il driver in un cluster standard esistente, utilizza il comando
[gcloud container clusters update
](/sdk/gcloud/reference/container/clusters/update)`:
gcloud container clusters update CLUSTER_NAME \
--update-addons GcsFuseCsiDriver=ENABLED \
--location=LOCATION
Per verificare che il driver CSI di Cloud Storage FUSE sia abilitato nel cluster, esegui il seguente comando:
gcloud container clusters describe CLUSTER_NAME \
--location=LOCATION \
--project=PROJECT_ID \
--format="value(addonsConfig.gcsFuseCsiDriverConfig.enabled)"
Configurare l'accesso ai bucket Cloud Storage
Il driver CSI Cloud Storage FUSE utilizza la federazione delle identità per i carichi di lavoro per GKE in modo da poter impostare autorizzazioni granulari su come i pod GKE possono accedere ai dati archiviati in Cloud Storage.
Per rendere i bucket Cloud Storage accessibili dal cluster GKE, esegui l'autenticazione utilizzando la federazione delle identità per i carichi di lavoro per GKE con il bucket Cloud Storage che vuoi montare nella specifica del pod:
- Se la federazione delle identità per i carichi di lavoro per GKE non è attiva, segui questi passaggi per attivarla.
Recupera le credenziali per il tuo cluster:
gcloud container clusters get-credentials CLUSTER_NAME \ --location=LOCATION
Sostituisci quanto segue:
CLUSTER_NAME
: il nome del cluster in cui è abilitata la federazione delle identità per i carichi di lavoro per GKE.LOCATION
: la regione o la zona Compute Engine per il cluster.
Crea uno spazio dei nomi da utilizzare per l'account di servizio Kubernetes. Puoi anche utilizzare lo spazio dei nomi
default
o qualsiasi spazio dei nomi esistente.kubectl create namespace NAMESPACE
Sostituisci
NAMESPACE
con il nome dello spazio dei nomi Kubernetes per l'account di servizio Kubernetes.Crea un account di servizio Kubernetes da utilizzare per la tua applicazione. Puoi anche utilizzare qualsiasi account di servizio Kubernetes esistente in qualsiasi spazio dei nomi, incluso l'account di servizio Kubernetes
default
.kubectl create serviceaccount KSA_NAME \ --namespace NAMESPACE
Sostituisci
KSA_NAME
con il nome del tuo account di servizio Kubernetes.Concedi uno dei ruoli IAM per Cloud Storage all'account di servizio Kubernetes. Segui questi passaggi, a seconda che tu stia concedendo all'account di servizio Kubernetes l'accesso solo a un determinato bucket Cloud Storage o l'accesso globale a tutti i bucket del progetto.
Accesso a bucket specifici
gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME \ --member "principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/PROJECT_ID.svc.id.goog/subject/ns/NAMESPACE/sa/KSA_NAME" \ --role "ROLE_NAME"
Sostituisci quanto segue:
BUCKET_NAME
: il nome del bucket Cloud Storage.PROJECT_NUMBER
: il numero numerico del progetto del tuo cluster GKE. Per trovare il numero del progetto, consulta Identificazione dei progetti.PROJECT_ID
: l'ID del progetto del tuo cluster GKE.NAMESPACE
: il nome dello spazio dei nomi Kubernetes per il service account Kubernetes.KSA_NAME
: il nome del nuovo service account Kubernetes.ROLE_NAME
: il ruolo IAM da assegnare al tuo account di servizio Kubernetes.- Per i carichi di lavoro di sola lettura, utilizza il ruolo Visualizzatore oggetti Storage (
roles/storage.objectViewer
). - Per i carichi di lavoro di lettura/scrittura, utilizza il ruolo Utente oggetto archiviazione (
roles/storage.objectUser
).
- Per i carichi di lavoro di sola lettura, utilizza il ruolo Visualizzatore oggetti Storage (
Accesso globale al bucket
gcloud projects add-iam-policy-binding GCS_PROJECT \ --member "principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/PROJECT_ID.svc.id.goog/subject/ns/NAMESPACE/sa/KSA_NAME" \ --role "ROLE_NAME"
Sostituisci quanto segue:
GCS_PROJECT
: l'ID progetto dei tuoi bucket Cloud Storage.PROJECT_NUMBER
: il numero numerico del progetto del tuo cluster GKE. Per trovare il numero del progetto, consulta Identificazione dei progetti.PROJECT_ID
: l'ID del progetto del tuo cluster GKE.NAMESPACE
: il nome dello spazio dei nomi Kubernetes per il service account Kubernetes.KSA_NAME
: il nome del nuovo service account Kubernetes.ROLE_NAME
: il ruolo IAM da assegnare al tuo account di servizio Kubernetes.- Per i carichi di lavoro di sola lettura, utilizza il ruolo Visualizzatore oggetti Storage (
roles/storage.objectViewer
). - Per i carichi di lavoro di lettura/scrittura, utilizza il ruolo Utente oggetto archiviazione (
roles/storage.objectUser
).
- Per i carichi di lavoro di sola lettura, utilizza il ruolo Visualizzatore oggetti Storage (
Passaggi successivi
- Scopri come montare i bucket Cloud Storage specificandoli in linea con la specifica del pod.
- Scopri come montare i bucket Cloud Storage utilizzando una risorsa PersistentVolume.
- Scopri di più sulla configurazione delle applicazioni per l'utilizzo di Workload Identity Federation per GKE.