认识
2024年08月30日
一、认识
在 Kubernetes
中,StorageClass
是用于定义存储资源的模板,主要用来动态创建 PersistentVolume (PV)
。它提供了一种灵活的方式,根据应用需求自动分配和管理存储。
1.1 核心概念
动态供应: StorageClass
使得 Kubernetes
能够根据 PersistentVolumeClaim (PVC)
的需求自动创建 PV
,而不是手动预先创建。
参数化配置: StorageClass
定义了存储的类型、参数以及配置,比如存储后端、性能设置、数据分层等。
与存储插件集成: StorageClass
依赖存储插件(Provisioner
)来实现底层存储的动态供应,例如云提供商的存储服务或本地存储系统。
快照与保留策略: 通过 StorageClass
,可以设置卷的快照支持以及回收策略(Retain
、Recycle
、Delete
)。
二、语法
2.1 NFS
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: nfs-sc
provisioner: kubernetes.io/nfs
parameters:
server: nfs.example.com
path: /exported/path
reclaimPolicy: Delete
2.2 AWS EBS
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: aws-ebs-sc
provisioner: kubernetes.io/aws-ebs
parameters:
type: gp2
fsType: ext4
reclaimPolicy: Retain
allowVolumeExpansion: true
volumeBindingMode: WaitForFirstConsumer
2.3 Local Storage
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: local-storage
provisioner: kubernetes.io/no-provisioner
volumeBindingMode: WaitForFirstConsumer