About gke-storage
gke-storage is a storage practices guide for GKE cluster administrators, covering storage selection, CSI driver configuration, and volume expansion. It focuses on StorageClass and PersistentVolumeClaim setup, with guidance on shared storage considerations.
Key features
- 01Configure StorageClasses
- 02Use Google Cloud CSI drivers
- 03Expand persistent volumes
- 04Choose disk types by workload
- 05Configure ReadWriteMany carefully
Use cases
- 01Select storage for GKE workloads
- 02Set up dynamic storage provisioning
- 03Expand existing persistent volumes
- 04Share files across multiple Pods
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ googlecloudplatform/ gke-mcp --skill gke-storageAfter installing, type/gke-storagein Claude Code to confirm it loaded.
Details
From the project READMEGKE Storage Best Practices
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:
- Edit the PVC manifest and increase the storage request.
- Apply the changes.
Kubernetes will automatically resize the file system on the volume.
Best Practices
- Use CSI Drivers: Always use the official Google Cloud CSI drivers for best integration and performance.
- Enable Volume Expansion: Always set
allowVolumeExpansion: truein your StorageClasses to allow for growth. - Choose the Right Disk Type: Use
pd-ssdorpd-extremefor I/O intensive workloads, andpd-standardorpd-balancedfor others. - Use ReadWriteMany Carefully: Filestore (NFS) is great for sharing data among multiple Pods, but be aware of file locking and consistency semantics.