
GKE Storage Management
FreeStreamline your GKE storage configuration and management.
Free · Opens the source repo
What GKE Storage Management does
GKE Storage Management is a skill designed for developers and DevOps engineers who need to efficiently manage storage resources in Google Kubernetes Engine (GKE). This skill provides a comprehensive reference for configuring persistent volumes, persistent volume claims (PVCs), and integrating with Google Cloud Storage using GCS FUSE. With the ability to apply Kubernetes manifests and retrieve resource details, users can automate and streamline their storage management tasks in GKE clusters.
The skill includes predefined configurations for various storage classes that cater to different use cases, such as block storage for databases and shared file storage for multi-pod access. Users can easily create PVCs with specific access modes and storage requirements, as well as mount GCS buckets directly into their pods without the need for PVCs. This flexibility allows for efficient data handling in applications that require scalable and resilient storage solutions.
Best practices are also highlighted within the skill, such as enabling volume expansion and using regional persistent disks for high availability. These guidelines help users optimize their storage setups and ensure that they are leveraging GKE's capabilities effectively. Whether you're setting up a new GKE cluster or managing an existing one, this skill equips you with the knowledge and tools necessary for effective GKE storage management.
When to use it
Use this skill when configuring storage for GKE clusters, creating PVCs, or setting up GCS FUSE for applications needing cloud storage access.
When not to use it
This skill is not suitable for database administration tasks or replication strategies outside of volume provisioning contexts.
What you can build with it
Setting Up Persistent Storage for Databases
Use this skill to create persistent volume claims that ensure your database retains data across pod restarts.
Configuring Shared Storage for Multiple Pods
Easily set up Filestore to provide shared access to files for multiple pods in your GKE cluster.
Mounting GCS Buckets for Data Processing
Utilize GCS FUSE to mount Google Cloud Storage buckets directly into your pods for seamless data access.
How to install GKE Storage Management
View source1. Install with the skills CLI
npx skills add google/skills/gke-storage --agent claude-code2. Or install it manually
Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.
Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs
Inside SKILL.md
Written by googleGKE Storage
This reference covers storage configuration for GKE clusters including persistent disks, file storage, and cloud storage integration.
MCP Tools:
apply_k8s_manifest,get_k8s_resource,describe_k8s_resource,get_cluster
Golden Path Storage Defaults
The golden path Autopilot config enables these CSI drivers:
| Driver | Golden Path | Access Mode | Use Case |
|---|---|---|---|
| Compute Engine | Enabled (default) | ReadWriteOnce | Block storage for |
| : Persistent Disk : : : databases, : | |||
| : CSI : : : single-pod workloads : | |||
| Google Cloud | Enabled | ReadWriteMany | Shared NFS for |
| : Filestore CSI : : : multi-pod access : | |||
| Cloud Storage | Enabled | ReadWriteMany / | Mount GCS buckets as |
| : FUSE CSI : : ReadOnlyMany : volumes : | |||
| Parallelstore | Enabled | ReadWriteMany | High-performance |
| : CSI : : : parallel file system : | |||
| Boot disk type | pd-balanced | N/A | Node boot disks |
StorageClasses
Default StorageClasses
GKE provides built-in StorageClasses:
| StorageClass | Disk Type | Use Case |
|---|---|---|
standard-rwo | pd-standard | Cost-effective, low IOPS |
premium-rwo | pd-ssd | High IOPS, databases |
standard-rwx | Filestore (Basic HDD) | Shared NFS |
premium-rwx | Filestore (Basic SSD) | Shared NFS, higher performance |
Custom StorageClass
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: fast-regional
provisioner: pd.csi.storage.gke.io
parameters:
type: pd-ssd
replication-type: regional-pd # Replicate across 2 zones
volumeBindingMode: WaitForFirstConsumer
allowVolumeExpansion: true # Always enable for production
PersistentVolumeClaims
Block Storage (ReadWriteOnce)
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: database-pvc
spec:
accessModes:
- ReadWriteOnce
storageClassName: premium-rwo
resources:
requests:
storage: 100Gi
Shared File Storage (ReadWriteMany via Filestore)
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: shared-data
spec:
accessModes:
- ReadWriteMany
storageClassName: standard-rwx
resources:
requests:
storage: 1Ti # Filestore minimum is 1 TiB for Basic tier
GCS Bucket Mount (Cloud Storage FUSE)
Mount a GCS bucket as a volume without a PVC:
apiVersion: v1
kind: Pod
metadata:
name: gcs-reader
annotations:
gke-gcsfuse/volumes: "true"
spec:
containers:
- name: reader
image: busybox
command: ["ls", "/data"]
volumeMounts:
- name: gcs-bucket
mountPath: /data
volumes:
- name: gcs-bucket
csi:
driver: gcsfuse.csi.storage.gke.io
readOnly: true
volumeAttributes:
bucketName: <BUCKET_NAME>
Requires Workload Identity for the pod's service account to have
storage.objectVieweron the bucket.
Volume Expansion
If allowVolumeExpansion: true is set on the StorageClass, resize by updating
the PVC:
# kubectl
kubectl patch pvc <PVC_NAME> -p '{"spec":{"resources":{"requests":{"storage":"200Gi"}}}}'
# MCP (preferred)
patch_k8s_resource(parent="...", resourceType="persistentvolumeclaim", name="<PVC_NAME>",
patch='{"spec":{"resources":{"requests":{"storage":"200Gi"}}}}')
Kubernetes automatically resizes the filesystem.
Best Practices
- Always enable volume expansion: Set
allowVolumeExpansion: trueon all StorageClasses - Use regional PDs for production:
replication-type: regional-pdreplicates across 2 zones for HA - Use
WaitForFirstConsumer: Ensures the PV is provisioned in the same zone as the pod - Choose the right disk type:
pd-ssdfor databases,pd-balanced(golden path default) for general use,pd-standardfor cold storage - Use Filestore for shared access: When multiple pods need to read/write the same files
- Use GCS FUSE for data pipelines: Mount buckets directly for ML training data, logs, etc.
- Back up PVCs: Use Backup for GKE (see the
gke-backup-drskill) to protect persistent data
Frequently asked questions about GKE Storage Management
Similar skills
Turborepo
Optimized build system for JavaScript/TypeScript monorepos.
Azure Pipelines Validation
Streamline your Azure DevOps pipeline changes locally.
Azure Developer CLI
Streamline your Azure project workflows with best practices.
Azure Container Registry CLI
Manage Azure Container Registry resources with ease.
Aspire
Build and orchestrate polyglot distributed applications seamlessly.
Vercel CLI
Manage and deploy Vercel projects from the command line.
