gke-storage

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

googlecloudplatform/gke-mcp47 installsApache-2.0Synced Aug 27

Works with

Claude CodeCursorCodex CLIGitHub CopilotGemini CLI
---
name: gke-storage
description: Guidance on managing storage in Google Kubernetes Engine (GKE) clusters.
license: Apache-2.0
---

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

```yaml
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:**

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

More DevOps & Infrastructure skills

← All DevOps & Infrastructure skills

Check your AI visibility

One URL in, a 0–100 score and the exact fixes out.

RUN THE CHECK

Browse all the tools

15 tools across six categories
13 of them never send your data anywhere

Free · No signup · No trial clock

SEE THE DIRECTORY