Questa guida mostra come configurare le risorse per il container sidecar del driver CSI FUSE di Cloud Storage, inclusa la configurazione di un'immagine privata, un buffer di scrittura personalizzato e un volume della cache di lettura personalizzata. In genere, non è necessario modificare queste impostazioni.
Il driver CSI di Cloud Storage FUSE utilizza un contenitore sidecar personalizzabile per montare e accedere in modo efficiente ai bucket Cloud Storage. Configurando il sidecar, puoi ottimizzare le prestazioni e l'utilizzo delle risorse dell'applicazione, il che può portare a un accesso più rapido ai dati, a tempi di elaborazione più rapidi e a un possibile calo del consumo complessivo delle risorse per l'applicazione.
Questa guida è rivolta a sviluppatori, amministratori e architetti che vogliono ottimizzare le prestazioni, la sicurezza e l'efficienza delle loro applicazioni che interagiscono con GKE.
Prima di leggere questa pagina, assicurati di conoscere le nozioni di base su Cloud Storage, Kubernetes e i concetti di containerizzazione.
Come funziona il contenitore sidecar
Il driver CSI di Cloud Storage FUSE utilizza un contenitore sidecar per montare i bucket Cloud Storage in modo da renderli accessibili come file system locali alle applicazioni Kubernetes. Questo contenitore sidecar, denominato gke-gcsfuse-sidecar
, viene eseguito insieme al contenitore del carico di lavoro nello stesso pod. Quando il driver rileva l'annotazione gke-gcsfuse/volumes: "true"
in una specifica del pod, inietta automaticamente il contenitore sidecar. Questo approccio ai contenitori sidecar contribuisce a garantire la sicurezza e a gestire le risorse in modo efficace.
Il contenitore sidecar gestisce le complessità del montaggio dei bucket Cloud Storage e fornisce l'accesso al file system alle applicazioni senza richiedere di gestire direttamente il runtime Cloud Storage FUSE. Puoi configurare i limiti di risorse per il contenitore sidecar utilizzando annotazioni come gke-gcsfuse/cpu-limit
e gke-gcsfuse/memory-limit
. Il modello di contenitore sidecar garantisce inoltre che l'istanza FUSE di Cloud Storage sia collegata al ciclo di vita del carico di lavoro, impedendogli di consumare risorse inutilmente. Ciò significa che il contenitore sidecar termina automaticamente quando i contenitori del carico di lavoro escono, soprattutto nei carichi di lavoro dei job o nei pod con un valore RestartPolicy
di Never
.
Compatibilità con Istio
Il container sidecar del driver CSI di Cloud Storage FUSE e Istio possono coesistere ed essere eseguiti contemporaneamente nel pod. Il proxy sidecar di Istio gestisce il traffico di rete, mentre il sidecar CSI ottimizza l'accesso allo spazio di archiviazione, consentendo alle applicazioni di interagire in modo efficiente con Google Cloud Storage con prestazioni e osservabilità migliorate.
Configurare il buffer di scrittura personalizzato
Cloud Storage FUSE esegue la gestione delle scritture in una directory locale e poi le carica su Cloud Storage durante le operazioni close
o fsync
. La funzionalità di buffering delle scritture non è abilitata per impostazione predefinita.
Questa sezione descrive come configurare un volume del buffer personalizzato per la gestione del buffer di scrittura FUSE di Cloud Storage. Questo scenario potrebbe essere applicabile se devi sostituire il volume emptyDir
predefinito per Cloud Storage FUSE per eseguire il commit dei file nelle operazioni di scrittura. Questo è utile se devi scrivere file di dimensioni superiori a
10 GiB sui cluster Autopilot.
Puoi specificare qualsiasi tipo di archiviazione supportato dal driver CSI di Cloud Storage FUSE per la memorizzazione nella cache dei file, ad esempio un'unità SSD locale, l'archiviazione basata su Persistent Disk e un disco RAM (memoria). GKE utilizzerà il volume specificato per il buffering della scrittura dei file. Per scoprire di più su queste opzioni, consulta Selezionare lo spazio di archiviazione per il backup della cache dei file.
Per utilizzare il volume del buffer personalizzato, devi specificare un valore fsGroup
diverso da zero.
L'esempio seguente mostra come utilizzare un PersistentVolumeClaim predefinito come volume di buffer:
apiVersion: v1
kind: Pod
metadata:
annotations:
gke-gcsfuse/volumes: "true"
spec:
securityContext:
fsGroup: FS_GROUP
containers:
...
volumes:
- name: gke-gcsfuse-buffer
persistentVolumeClaim:
claimName: BUFFER_VOLUME_PVC
Sostituisci quanto segue:
- FS_GROUP: l'ID gruppo fs.
- BUFFER_VOLUME_PVC: il nome del PVC predefinito.
Configurare il volume della cache di lettura personalizzata
Questa sezione descrive come configurare un volume della cache personalizzato per la memorizzazione nella cache di lettura FUSE di Cloud Storage.
Questo scenario potrebbe essere applicabile se devi sostituire il volume emptyDir
predefinito per Cloud Storage FUSE per memorizzare nella cache i file nelle operazioni di lettura. Puoi specificare qualsiasi tipo di archiviazione supportato da GKE, come un PersistentVolumeClaim, e GKE utilizzerà il volume specificato per la memorizzazione nella cache dei file. Questa opzione è utile se devi memorizzare nella cache file di dimensioni superiori a 10 GB sui cluster Autopilot. Per utilizzare il volume della cache personalizzata, devi specificare un valore fsGroup
diverso da zero.
L'esempio seguente mostra come utilizzare un PersistentVolumeClaim predefinito come volume della cache:
apiVersion: v1
kind: Pod
metadata:
annotations:
gke-gcsfuse/volumes: "true"
spec:
securityContext:
fsGroup: FS_GROUP
containers:
...
volumes:
- name: gke-gcsfuse-cache
persistentVolumeClaim:
claimName: CACHE_VOLUME_PVC
Sostituisci quanto segue:
- FS_GROUP: l'ID
fsGroup
. - CACHE_VOLUME_PVC: il nome predefinito del PersistentVolumeClaim.
Configura un'immagine privata per il contenitore sidecar
Questa sezione descrive come utilizzare l'immagine del contenitore sidecar se la ospiti in un registry dei container privato. Questo scenario potrebbe essere applicabile se devi utilizzare nodi privati per motivi di sicurezza.
Per configurare e utilizzare l'immagine del contenitore sidecar privato:
- Consulta questa tabella di compatibilità GKE per trovare un'immagine container sidecar pubblico compatibile.
- Importalo nel tuo ambiente locale e invialo al tuo registry di container privato.
Nel file manifest, specifica un contenitore denominato
gke-gcsfuse-sidecar
con solo il campo immagine. GKE utilizzerà l'immagine del container sidecar specificata per prepararsi all'iniezione del container sidecar.Ecco un esempio:
apiVersion: v1 kind: Pod metadata: annotations: gke-gcsfuse/volumes: "true" spec: containers: - name: gke-gcsfuse-sidecar image: PRIVATE_REGISTRY/gcs-fuse-csi-driver-sidecar-mounter:PRIVATE_IMAGE_TAG - name: main # your main workload container.
Sostituisci quanto segue:
PRIVATE_REGISTRY
: il tuo registry dei container privato.PRIVATE_IMAGE_TAG
: il tag immagine del contenitore sidecar privato.
Passaggi successivi
- Scopri come ottimizzare le prestazioni per il driver CSI di Cloud Storage FUSE.
- Esplora altri esempi per l'utilizzo del driver CSI su GitHub.
- Scopri di più su Cloud Storage FUSE.