Kubernetes Storage

Kubernetes storage management for PVCs, storage classes, and persistent volumes. Use when provisioning storage, managing volumes, or troubleshooting storage issues.

Rohit Ghumare

@rohitg00

Install

$ openclaw skills install @rohitg00/k8s-storage

Kubernetes Storage

Manage Kubernetes storage using kubectl-mcp-server's storage tools.

When to Apply

Use this skill when:

  • User mentions: "PVC", "PV", "storage class", "volume", "disk", "storage"
  • Operations: provisioning storage, mounting volumes, expanding storage
  • Keywords: "persist", "data", "backup storage", "volume claim"

Priority Rules

PriorityRuleImpactTools
1Verify storage class exists before PVCCRITICALkubectl_get
2Check PVC status before pod deploymentHIGHkubectl_describe
3Review access modes for multi-pod accessMEDIUMkubectl_get
4Monitor PV reclaim policyLOWkubectl_get

Quick Reference

TaskToolExample
List PVCskubectl_getkubectl_get(resource_type="pvc", namespace)
PVC detailskubectl_describekubectl_describe(name, namespace)
Storage classeskubectl_getkubectl_get(resource_type="storageclasses")
List PVskubectl_getkubectl_get(resource_type="pv")

Persistent Volume Claims (PVCs)

kubectl_get(resource_type="pvc", namespace="default")

kubectl_describe(resource_type="pvc", name="my-pvc", namespace="default")

kubectl_apply(manifest="""
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: my-pvc
  namespace: default
spec:
  accessModes:
  - ReadWriteOnce
  resources:
    requests:
      storage: 10Gi
  storageClassName: standard
""")

delete_resource(resource_type="pvc", name="my-pvc", namespace="default")

Storage Classes

kubectl_get(resource_type="storageclasses")

kubectl_apply(manifest="""
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: fast-ssd
provisioner: kubernetes.io/gce-pd
parameters:
  type: pd-ssd
reclaimPolicy: Delete
volumeBindingMode: WaitForFirstConsumer
""")

Persistent Volumes

kubectl_get(resource_type="pv")

kubectl_describe(resource_type="pv", name="pv-001")

Volume Snapshots

kubectl_apply(manifest="""
apiVersion: snapshot.storage.k8s.io/v1
kind: VolumeSnapshot
metadata:
  name: my-snapshot
  namespace: default
spec:
  volumeSnapshotClassName: csi-snapclass
  source:
    persistentVolumeClaimName: my-pvc
""")

kubectl_apply(manifest="""
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: restored-pvc
spec:
  dataSource:
    name: my-snapshot
    kind: VolumeSnapshot
    apiGroup: snapshot.storage.k8s.io
  accessModes:
  - ReadWriteOnce
  resources:
    requests:
      storage: 10Gi
""")

Troubleshooting Storage

kubectl_describe(resource_type="pvc", name="my-pvc", namespace="default")

kubectl_get(resource_type="events", namespace="default")
kubectl_describe(resource_type="pod", name="my-pod", namespace="default")

Related Skills

Top skills in this category