Gke Storage

作者 google55b4e13eba6d无许可证21K 个星标收录于 2026年10月8日更新于 2026年10月8日仓库今天更新

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.

精选仅含说明DevOps & Cloud
AI 生成的概览

用于配置 GKE 存储的参考指南:StorageClass、PVC、PersistentVolume、Filestore 及卷扩容。

功能
提供在 Google Kubernetes Engine 集群上配置存储的参考说明,涵盖 CSI 驱动、内置与自定义 StorageClass、用于块存储和共享文件存储的 PersistentVolumeClaim 清单、GCS 存储桶挂载以及卷扩容。它还列出有状态工作负载的容量与调度约束,以及启用卷扩容、使用区域级持久磁盘等最佳实践。产出的是配置指导与 YAML 示例,而非运行脚本。
适用场景
适用于配置 GKE 存储或创建 PVC、选择 StorageClass 或磁盘类型,以及规划卷扩容和有状态工作负载容量时。不适用于 Cloud Storage FUSE 挂载、存储故障诊断,或卷预配范围之外的数据库管理。
运行要求
该技能不附带脚本,仅为说明文档。它引用 MCP 工具(apply_k8s_manifest、get_k8s_resource、describe_k8s_resource、get_cluster)和 kubectl 来应用清单和修补 PVC;GCS FUSE 挂载需要 Workload Identity,并为存储桶授予 storage.objectViewer 权限。

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:

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

yaml
apiVersion: storage.k8s.io/v1kind: StorageClassmetadata:  name: fast-regionalprovisioner: pd.csi.storage.gke.ioparameters:  type: pd-ssd  replication-type: regional-pd    # Replicate across 2 zonesvolumeBindingMode: WaitForFirstConsumerallowVolumeExpansion: true         # Always enable for production

PersistentVolumeClaims

Block Storage (ReadWriteOnce)

yaml
apiVersion: v1kind: PersistentVolumeClaimmetadata:  name: database-pvcspec:  accessModes:  - ReadWriteOnce  storageClassName: premium-rwo  resources:    requests:      storage: 100Gi

Shared File Storage (ReadWriteMany via Filestore)

yaml
apiVersion: v1kind: PersistentVolumeClaimmetadata:  name: shared-dataspec:  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: v1kind: Podmetadata:  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
# kubectlkubectl 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/skills位于skills/cloud/gke-storage提交55b4e13

许可证: 无许可证

内容归原作者所有。SourceWeft 从公开仓库中收录这些内容。

举报或申请下架

更多来自 google/skills 的技能