Kubernetes 持久化数据存储 StorageClass

Kubernetes 持久化数据存储 StorageClass

💡 原文中文,约7500字,阅读约需18分钟。
📝

内容提要

本文介绍了Kubernetes中PV和PVC的自动创建机制StorageClass。通过定义PV属性和存储插件,Kubernetes能够根据PVC自动创建PV。文中详细说明了使用nfs-client插件创建PV的步骤,并提供了相关的yaml配置示例,包括创建ServiceAccount、Deployment和StorageClass。最后,展示了如何使用PVC部署Tomcat应用并查看其状态。

🔎

延伸解读

StorageClass 如何降低运维成本

传统 PV 和 PVC 需要手动创建 PV 再绑定,在大集群中维护成本高。StorageClass 作为 PV 模板,定义存储属性和插件,Kubernetes 根据 PVC 自动调用插件创建 PV,实现动态供给,减少人工干预。

nfs-client 插件配置关键点

使用 nfs-client 插件需先创建 ServiceAccount 授权,再通过 Deployment 部署 provisioner。Deployment 中 PROVISIONER_NAME 必须与 StorageClass 的 provisioner 名称一致,否则无法工作。NFS 路径需为共享目录的最后一层,避免权限问题导致 PVC 处于 Pending。

自动创建的 PV 命名与回收

自动创建的 PV 以 ${namespace}-${pvcName}-${pvName} 格式命名,便于识别来源。若 PV 被回收,则重命名为 archieved-${namespace}-${pvcName}-${pvName}。StorageClass 中 archiveOnDelete 参数控制是否归档,示例中设为 false。

使用 PVC 部署应用的注意事项

创建 PVC 时需通过注解指定 StorageClass 名称。部署 Pod 时若遇到 persistentvolume-controller waiting for a volume to be created 错误,需检查 provisioner 配置及 NFS 权限。成功部署后,可在 NFS 服务器对应目录中查看应用生成的日志文件。

❓

Q&A

Kubernetes中的StorageClass是什么?

StorageClass是Kubernetes中用于自动创建持久化卷(PV)的机制,通过定义PV的属性和存储插件,降低大集群的维护成本。

如何使用nfs-client插件创建PV?

使用nfs-client插件创建PV需要先创建ServiceAccount以授权,然后通过Deployment部署nfs-client,并配置相关的yaml文件。

创建StorageClass时需要注意什么?

创建StorageClass时,provisioner名称必须与Deployment中的一致,以确保PV能够正确创建。

如何通过PVC部署Tomcat应用?

通过创建PVC并指定StorageClass,使用kubectl命令部署Tomcat应用,并查看其状态以确认是否成功。

在使用PVC创建Pod时可能遇到什么错误?

可能会遇到'waiting for a volume to be created'的错误,通常是由于PV未能成功创建导致的。

如何查看Kubernetes中的PV和PVC状态?

可以使用kubectl命令查看PV和PVC的状态,例如通过'kubectl get pv'和'kubectl get pvc'命令。

🏷️

标签

➡️

继续阅读