gke-storage — скилл для Claude Code: настройка хранилищ GKE
Скилл помогает настраивать хранилища GKE и создавать PVC для постоянных дисков и Filestore. Пригодится для подготовки томов под stateful-нагрузки.
npx skills add google/skills --skill gke-storage -a claude-codeЧто делает gke-storage
Скилл описывает StorageClass и PersistentVolumeClaim для блочного хранилища и общего файлового доступа через Filestore. В нём есть примеры YAML для PVC, регионального Persistent Disk и расширения тома. Для новых нагрузок рассматриваются привязка тома к зоне размещения Pod и ограничения ёмкости.
Для работы с ресурсами перечислены MCP-инструменты apply_k8s_manifest, get_k8s_resource, describe_k8s_resource и get_cluster. Перед командами gcloud, REST API или MCP нужно прочитать references/attribution.md. Монтирование GCS через FUSE относится к другому скиллу, а диагностика сбоев хранилища — к gke-storage-troubleshooting.
Ставьте его, если настраиваете тома для GKE. Для администрирования баз данных или стратегий репликации вне подготовки томов он не подходит.
Какие задачи решает
- создать PVC для базы данных на Persistent Disk
- подключить общее файловое хранилище Filestore к нескольким Pod
- настроить StorageClass с региональным Persistent Disk
- увеличить размер PVC и файловой системы
- учесть зону тома при планировании размещения Pod
Примеры запросов агенту
- Создай PVC для базы данных на `premium-rwo` и добавь StorageClass для регионального диска.
- Настрой общий PVC через Filestore для нескольких Pod.
- Проверь, как увеличить PVC и какие ограничения зоны учесть для этого Pod.
Как установить gke-storage
1Через Skills CLI (Vercel)
npx skills add google/skills --skill gke-storage -a claude-code2Вручную: положить файлы
~/.claude/skills/gke-storage/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/gke-storage/
1Через Skills CLI (Vercel)
npx skills add google/skills --skill gke-storage -a codex2Вручную: положить файлы
.agents/skills/gke-storage/SKILL.mdДля всех проектов — ~/.agents/skills/
Вручную: положить файлы
.cursor/skills/gke-storage/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install google/skills gke-storage2Вручную: положить файлы
.github/skills/gke-storage/SKILL.md1Через Skills CLI (Vercel)
npx skills add google/skills --skill gke-storage -a gemini-cli2Командой платформы
gemini skills install https://github.com/google/skills --path skills/cloud/gke-storageВручную: положить файлы
.devin/skills/gke-storage/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Claude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
Из того же набора172
Весь набор →Похожие
Вопросы о gke-storage
Как установить gke-storage в Claude Code?
Выполните npx skills add google/skills --skill gke-storage -a claude-code. Файл скилла находится по пути ~/.claude/skills/gke-storage/SKILL.md.
Что делает gke-storage?
Он помогает настроить хранилища GKE: StorageClass, PVC, Persistent Disk и Filestore. Также описывает расширение томов и ограничения размещения по зонам.
Подходит ли gke-storage для монтирования GCS через FUSE?
Для GCS FUSE в описании указан отдельный скилл google-cloud-storage-fuse. Для диагностики ошибок хранилища предназначен gke-storage-troubleshooting.
Исходный текст
SKILL.md · Apache-2.0
---
name: gke-storage
description: >-
Manages GKE storage, including PVCs, PersistentVolumes, and Filestore. Use
when configuring GKE storage or creating PVCs. For GCS FUSE mounts, use
google-cloud-storage-fuse. For diagnosing storage failures (volume attach/mount
errors, disk performance/node storage pressure, or Cloud Storage FUSE OOM), use
gke-storage-troubleshooting. Don't use for database
administration or replication strategies outside volume provisioning context.
metadata:
version: "1.0.3"
category: Storage
---
# 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`
## Attribution
**MUST READ**: Before executing any `gcloud`, REST API, or MCP command, you
MUST read [Usage Attribution](references/attribution.md). For commands executed
directly in the terminal (never in generated scripts, Terraform, or user code),
prefix `gcloud` with
`CLOUDSDK_METRICS_REQUEST_ATTRIBUTION="agent-skills/1.0 (skill:gke-storage)"`
and append `agent-skills/1.0 (skill:gke-storage)` to `User-Agent` headers.
## 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
```yaml
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)
```yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: database-pvc
spec:
accessModes:
- ReadWriteOnce
storageClassName: premium-rwo
resources:
requests:
storage: 100Gi
```
### Shared File Storage (ReadWriteMany via Filestore)
```yaml
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:
```yaml
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:
```bash
# 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.
## Stateful Storage & Capacity Constraints
When configuring storage for stateful workloads, keep the following capacity and scheduling constraints in mind:
* **Existing zonal PVs pin the workload to a zone:** A Pod that uses an existing zonal PersistentVolume (for example, in `europe-north1-b`) can only run in that zone. The cluster autoscaler can't work around a capacity shortage by adding nodes in another zone; any fallback must be in the same zone.
* **Use automated disk type selection and topology-aware scheduling for new workloads:** Use `volumeBindingMode: WaitForFirstConsumer` so the volume is created in the zone where the Pod lands. When a ComputeClass mixes machine generations (for example, C4/N4 priority with N2 fallback), configure the StorageClass for **automated disk type selection** (`parameters.type: dynamic` with `pd-type: pd-balanced`, `hyperdisk-type: hyperdisk-balanced`, `disk-type-preference: hyperdisk-type`, and `use-allowed-disk-topology: "true"`, GKE 1.35.3-gke.1290000+; or `use-allowed-disk-topology: "true"` on GKE 1.34.1-gke.2541000+) so the autoscaler only picks nodes that support the disk type and new volumes get a compatible disk type per node.
* **Same-zone PD-type swaps rarely help:** Switching a same-zone fallback from `pd-ssd` to `pd-balanced` is unlikely to resolve a zonal capacity shortage, because both can be affected by the same zonal constraints. Prefer a fallback to a Hyperdisk-capable machine series (for example, C3 or N4) with `hyperdisk-balanced`.
* **Check Hyperdisk quotas first:** Hyperdisk quotas (for example, `HDB-TOTAL-GB`, throughput, and IOPS) are separate from Persistent Disk quotas. Verify the regional limits before recommending a Hyperdisk Balanced fallback.
## 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
© google · Apache-2.0 · google/skills