Kubernetes:使用 nfs-client-provisioner 强制“$pvname”的值

Posted

技术标签:

【中文标题】Kubernetes:使用 nfs-client-provisioner 强制“$pvname”的值【英文标题】:Kubernetes : Force value of "$pvname" with nfs-client-provsisioner 【发布时间】:2019-11-12 12:50:19 【问题描述】:

我在我的 kubernetes 集群中使用 nfs-client-provisioner。

但是,PersistentVolume 的名称是随机的。

参见。文档: nfs-client-provisioner

--> 持久卷配置为 $namespace-$pvcName-$pvName

但是,我可以在哪里更改 pvName 的值?

其实是随机的,例如:pvName = pvc-2v82c574-5bvb-491a-bdfe-061230aedd5f

【问题讨论】:

【参考方案1】:

这是与PV 名称相对应但存储在 NFS 服务器共享上的目录的命名约定

如果涉及到由nfs-provisioner 动态配置的PV 名称,则遵循以下命名约定:

pvc- + claim.UID

背景资料:

根据external storage provisioners(NFS-client属于此类)的设计方案,不能在PVC spec中显式声明volumeName

#volumeName: 必须为空!

pv.Name 必须是唯一的。当两个配置者意外地为同一个声明配置 PV 时,内部配置者使用基于 claim.UID 的名称来产生冲突,但是外部配置者可以使用任何机制来生成唯一的 PV 名称。

如果是nfs-client 供应商,pv.Name 生成由controller 库处理,它得到以下格式:

pvc- + claim.UID

Source

希望对你有帮助。

【讨论】:

以上是关于Kubernetes:使用 nfs-client-provisioner 强制“$pvname”的值的主要内容,如果未能解决你的问题,请参考以下文章

NFS

系统服务构建运维

ansbile--playbook剧本案例

Kubernetes——Kubernetes的介绍和使用 kubeadm方式搭建Kubernetes集群

安装简单的NFS服务器(CentOS 6.5)

Kubernetes In Action :2开始使用Kubernetes和Docker