[k8s] Storage Class ============ ###### tags: `kubernetes` :::warning + A storageclass is a Kubernetes object that ***<span style="color: red">stores information about creating a persistent volume</span>*** for your pod. + With a storageclass, you **do not need to create a persistent volume** separately before claiming it. ::: ## how to work  ## types of provisioner ### example    ## dynamic provisioning (pv) > [color=violet]PersistentVolumes that are dynamically created by a StorageClass  ```yaml= # sc-definition.yaml apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: google-storage provisioner: kubernetes.io/gce-pd parameters: type: pd-standard [ pd-standard | pd-ssd ] replication-type: none [ none | regional-pd] ``` ```yaml= # pvc-definition.yaml apiVersion: v1 kind: PersistentVolumeClaim metadata: name: myclaim spec: accessModes: - ReadWriteOnce storageClassName: google-storage resources: requests: storage: 500Mi ``` ```yaml= # pod-definition.yaml apiVersion: v1 kind: Pod metadata: name: random-number-generator spec: containers: - image: alpine name: alpine command: ["/bin/sh", "-c"] args: ["shuf -i 0-100 -n 1 >> /opt/number.out;"] volumeMounts: - mountPath: /opt name: data-volume volumes: - name: data-volume persistentVolumeClaim: claimName: myclaim ``` ### parameters + <kbd>volumeBindingMode</kbd> + `WaitForFirstConsumer` - This will ***delay the binding and provisioning*** of a PersistentVolume **until** a Pod using the PersistentVolumeClaim is created. + `Immediate` ## static provisioning > [color=skyblue] storageClass描述了dynamic provision 的規範,但在static provision 中也可以使用。 ```yaml= apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: local-storage provisioner: kubernetes.io/no-provisioner volumeBindingMode: WaitForFirstConsumer ``` 即使你要手动配置 persistent volume,你仍然可以定義一個 storageClass 来为它们提供参数和配置。这样做有以下好處: 1. **集中管理配置**:静态存储类允许你将所有静态持久卷的配置集中在一个地方。这样,你可以更容易地修改、管理和维护这些卷的配置。 2. **规范化参数**:通过存储类,你可以定义参数并确保静态卷的一致性。这在多个持久卷之间尤其有用。 3. **可重用性**:存储类可以在多个静态卷之间共享,使得你可以轻松地创建具有相似配置的静态卷。 因此,虽然存储类主要用于动态供给,但也可以为静态供给提供一种标准化和集中化的配置方式。通过使用存储类,你可以更方便地管理和配置你的静态持久卷。
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up