New to Claude Skills? Learn how to install them →

google on GitHub

GKE Storage Management

Free

Streamline your GKE storage configuration and management.

by google17.6k stars on google/skills
1 views
Updated Aug 10, 2026
Get this skill

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 source

1. Install with the skills CLI

npx skills add google/skills/gke-storage --agent claude-code

2. 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 google

GKE 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:

DriverGolden PathAccess ModeUse Case
Compute EngineEnabled (default)ReadWriteOnceBlock storage for
: Persistent Disk : : : databases, :
: CSI : : : single-pod workloads :
Google CloudEnabledReadWriteManyShared NFS for
: Filestore CSI : : : multi-pod access :
Cloud StorageEnabledReadWriteMany /Mount GCS buckets as
: FUSE CSI : : ReadOnlyMany : volumes :
ParallelstoreEnabledReadWriteManyHigh-performance
: CSI : : : parallel file system :
Boot disk typepd-balancedN/ANode boot disks

StorageClasses

Default StorageClasses

GKE provides built-in StorageClasses:

StorageClassDisk TypeUse Case
standard-rwopd-standardCost-effective, low IOPS
premium-rwopd-ssdHigh IOPS, databases
standard-rwxFilestore (Basic HDD)Shared NFS
premium-rwxFilestore (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.objectViewer on 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

  1. Always enable volume expansion: Set allowVolumeExpansion: true on all StorageClasses
  2. Use regional PDs for production: replication-type: regional-pd replicates across 2 zones for HA
  3. Use WaitForFirstConsumer: Ensures the PV is provisioned in the same zone as the pod
  4. Choose the right disk type: pd-ssd for databases, pd-balanced (golden path default) for general use, pd-standard for cold storage
  5. Use Filestore for shared access: When multiple pods need to read/write the same files
  6. Use GCS FUSE for data pipelines: Mount buckets directly for ML training data, logs, etc.
  7. Back up PVCs: Use Backup for GKE (see the gke-backup-dr skill) to protect persistent data

Frequently asked questions about GKE Storage Management

Similar skills