跳到主要内容

认识

2024年08月30日
柏拉文
越努力,越幸运

一、认识


Kubernetes 中,StorageClass 是用于定义存储资源的模板,主要用来动态创建 PersistentVolume (PV)。它提供了一种灵活的方式,根据应用需求自动分配和管理存储。

1.1 核心概念

动态供应: StorageClass 使得 Kubernetes 能够根据 PersistentVolumeClaim (PVC) 的需求自动创建 PV,而不是手动预先创建。

参数化配置: StorageClass 定义了存储的类型、参数以及配置,比如存储后端、性能设置、数据分层等。

与存储插件集成: StorageClass 依赖存储插件(Provisioner)来实现底层存储的动态供应,例如云提供商的存储服务或本地存储系统。

快照与保留策略: 通过 StorageClass,可以设置卷的快照支持以及回收策略(RetainRecycleDelete)。

二、语法


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