1 改变默认 StorageClass
本文展示了如何改变默认的 Storage Class,它用于为没有特殊需求的 PersistentVolumeClaims 配置 volumes.
1.1 为什么要改变默认存储类?
取决于安装模式,你的 Kubernetes 集群可能和一个被标记为默认的已有 StorageClass 一起部署。 这个默认的 StorageClass 以后将被用于动态的为没有特定存储类需求的 PersistentVolumeClaims 配置存储。更多细节请查看 PersistentVolumeClaim 文档。
预先安装的默认 StorageClass 可能不能很好的适应你期望的工作负载;例如,它配置的存储可能太过昂贵。 如果是这样的话,你可以改变默认 StorageClass,或者完全禁用它以防止动态配置存储。
【改变默认存储类】删除默认 StorageClass 可能行不通,因为它可能会被你集群中的扩展管理器自动重建。 请查阅你的安装文档中关于扩展管理器的细节,以及如何禁用单个扩展。
1.2 改变默认存储类
- 列出集群中的 storageclasses:
[shutang@lona-001 mysql-cluster]$ kubectl get sc NAMEPROVISIONERRECLAIMPOLICYVOLUMEBINDINGMODEALLOWVOLUMEEXPANSIONAGE longhorndriver.longhorn.ioDeleteImmediatetrue7h15m managed-nfs-storage (default)fuseim.pri/ifsRetainImmediatefalse27d
- 标记默认 StorageClass 为非默认
默认 StorageClass 的注解 storageclass.kubernetes.io/is-default-class 设置为 true。 注解的其它任意值或者缺省值将被解释为 false。
[shutang@lona-001 mysql-cluster]$ kubectl patch storageclass managed-nfs-storage -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"false"}}}'
storageclass.storage.k8s.io/managed-nfs-storage patched
[shutang@lona-001 mysql-cluster]$ kubectl get sc
NAMEPROVISIONERRECLAIMPOLICYVOLUMEBINDINGMODEALLOWVOLUMEEXPANSIONAGE
longhorndriver.longhorn.ioDeleteImmediatetrue7h26m
managed-nfs-storagefuseim.pri/ifsRetainImmediatefalse27d
[shutang@lona-001 mysql-cluster]$
- 标记一个 longhorn 为默认的存储类
[shutang@lona-001 mysql-cluster]$ kubectl patch storageclass longhorn -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}' storageclass.storage.k8s.io/longhorn patched
请注意,最多只能有一个 StorageClass 能够被标记为默认。 如果它们中有两个或多个被标记为默认,Kubernetes 将忽略这个注解, 也就是它将表现为没有默认 StorageClass。
- 验证你选用的 StorageClass 为默认的
[shutang@lona-001 mysql-cluster]$ kubectl get sc NAMEPROVISIONERRECLAIMPOLICYVOLUMEBINDINGMODEALLOWVOLUMEEXPANSIONAGE longhorn (default)driver.longhorn.ioDeleteImmediatetrue7h26m managed-nfs-storagefuseim.pri/ifsRetainImmediatefalse27d
推荐阅读
- 高效运维|【Kubernetes系列】Kubernetes管理工具Kuboard的安装使用
- kubelet|kubelet 配置节点资源预留
- k8s|Kubernetes服务质量保证之配置容器资源limits和requests
- Kubernetes 标准化部署文档
- #云原生征文#深入Kubernetes(k8s)概念
- 云原生 | Kubernetes篇Kubernetes简介
- #云原生征文#Kubernetes集群部署
- kubernetes 核心组件之 APIServer
- kubernetes 核心组件之 Controller Manager