Agent Skills

gke-storage

devopsgoogle5.2K installs

Manages GKE storage, including PVCs, PersistentVolumes, Filestore, and GCS FUSE. Use when configuring GKE storage, creating PVCs, or setting up GCS FUSE on GKE. For diagnosing storage failures (volume attach/mount errors, disk performance/node storage pressure, or Cloud Storage FUSE OOM), use the gke-storage-troubleshooting skill instead. Don't use for database administration or replication strategies outside volume provisioning context.

Install

npx skills add https://github.com/google/skills --skill gke-storage
SKILL.md

GKE Storage

Routing Note: For Cloud Storage FUSE (gcsfuse) mounts or the GKE gcsfuse.csi.storage.gke.io CSI driver, open google-cloud-storage-fuse/SKILL.md.

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

Related skills

azure-diagnosticsmicrosoft608KDebug Azure production issues on Azure using AppLens, Azure Monitor, resource health, and safe triage. WHEN: debug production issues, troubleshoot app service, app service high CPU, app service deployment failure, troubleshoot container apps, troubleshoot functions, troubleshoot AKS, VM RDP, Linux SSH, VM black screen, can't connect to VM, reset VM password, NSG or firewall blocking, kubectl cannot connect, kube-system/CoreDNS failures, pod pending, crashloop, node not ready, upgrade failures, aazure-preparemicrosoft608KPrepare azd-based Azure projects for deployment: generates azure.yaml, infrastructure (Bicep/Terraform), and Dockerfiles for the Azure Developer CLI (azd) workflow. USE ONLY when the user explicitly wants to use azd as the deployment tool, or the project already has an azure.yaml file. DO NOT USE FOR: non-azd deployments, Python App Service code-only deploys (use python-appservice-deploy), or cross-cloud migration (use azure-cloud-migrate). WHEN: prepare app for azd, create azure.yaml, set up azazure-aimicrosoft608KUse for Azure AI: Search, Speech, OpenAI, Document Intelligence. Helps with search, vector/hybrid search, speech-to-text, text-to-speech, transcription, OCR. WHEN: AI Search, query search, vector search, hybrid search, semantic search, speech-to-text, text-to-speech, transcribe, OCR, convert text to speech.azure-deploymicrosoft607KExecute Azure deployments for ALREADY-PREPARED applications that have existing .azure/deployment-plan.md and infrastructure files. DO NOT use this skill when the user asks to CREATE a new application — use azure-prepare instead. This skill runs azd up, azd deploy, terraform apply, and az deployment commands with built-in error recovery. Requires .azure/deployment-plan.md from azure-prepare and validated status from azure-validate. WHEN: \"run azd up\", \"run azd deploy\", \"execute deployment\",

Search skills and MCP servers

Fuzzy search across 23,137 skills and servers