GKE Storage Best Practices

SkillFiles & storage

Guidance on managing storage in Google Kubernetes Engine (GKE) clusters.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the GKE Storage Best Practices skill

What this skill tells your AI

The instructions your AI receives, as published by gke-labs/kube-agents in agents/cluster/skills/gke-storage/SKILL.md and read by ahel’s review.

This skill provides guidance on managing storage in Google Kubernetes Engine (GKE) clusters.

Overview

GKE supports various storage options, from Persistent Disks to Cloud Storage. Choosing the right storage type and configuring it correctly is essential for performance and reliability.

Workflows

1. Configure Storage Classes

StorageClasses allow you to describe the "classes" of storage you offer. Different classes might map to quality-of-service levels, or to backup policies.

Example StorageClass Manifest:

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: premium-rwo
provisioner: pd.csi.storage.gke.io
parameters:
  type: pd-ssd
  replication-type: regional-pd
volumeBindingMode: WaitForFirstConsumer
allowVolumeExpansion: true

Setting allowVolumeExpansion: true is highly recommended for production.

2. Use CSI Drivers

GKE includes container storage interface (CSI) drivers for dynamic provisioning of storage.

  • Compute Engine Persistent Disk CSI Driver: Default for block storage.
  • Google Cloud Filestore CSI Driver: For managed NFS (ReadWriteMany).
  • Cloud Storage FUSE CSI Driver: For mounting GCS buckets as volumes.

Example using Filestore CSI Driver:

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: filestore-pvc
spec:
  accessModes:
    - ReadWriteMany
  storageClassName: standard-rwm # Pre-defined for Filestore
  resources:
    requests:
      storage: 1Ti

3. Implement Volume Expansion

If allowVolumeExpansion is true in the StorageClass, you can resize a volume by updating the PVC manifest.

Steps:

  1. Edit the PVC manifest and increase the storage request.
  2. Apply the changes.

Kubernetes will automatically resize the file system on the volume.

Best Practices

  1. Use CSI Drivers: Always use the official Google Cloud CSI drivers for best integration and performance.
  2. Enable Volume Expansion: Always set allowVolumeExpansion: true in your StorageClasses to allow for growth.
  3. Choose the Right Disk Type: Use pd-ssd or pd-extreme for I/O intensive workloads, and pd-standard or pd-balanced for others.
  4. Use ReadWriteMany Carefully: Filestore (NFS) is great for sharing data among multiple Pods, but be aware of file locking and consistency semantics.

Signals

GitHub stars
54
Forks
36
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
gke-storage
Source
github.com/gke-labs/kube-agents