在我的kubernetes集群中,有1个master和3个节点。
将在每个节点上运行一个部署/守护程序集,并且需要存储。
考虑到gluster的性能问题,本地存储会有很多文件(小/大(。
有没有一种方法可以自动分配在分配pod的节点中具有pv的pvc?
感谢
有没有一种方法可以自动分配具有pv的pvc分配pod的节点?
这取决于你所说的"自动分配pvc">但我认为本地卷应该能满足您的要求。PVC
或许多不同的PVCs
与hostPath
相比,它最大的优点是不需要手动将Pod调度到特定节点,因为节点亲和性是在PersistentVolume
:上定义的
与
hostPath
卷相比,本地卷可以在和可移植的方式,而无需手动将Pod调度到节点系统通过查看PersistentVolume上的节点相关性。
您只需要定义一个本地存储类,即本地PV
和PVC
,然后您就可以在volumeClaimTemplates
中使用它们,就像在Statefulset
规范的以下片段中一样:
...
volumeClaimTemplates:
- metadata:
name: local-vol
spec:
accessModes: [ "ReadWriteOnce" ]
storageClassName: "local-storage"
resources:
requests:
storage: 368Gi
您的所有Pods
都将自动调度到适当的节点,因为节点亲和性已经在PersistentVolume
中定义,并且特定的PersistentVolumeClaim
绑定到此类PV
。重要的是要记住,PV:PVC
总是1:1
结合,而一个PVC
可以被许多不同的Pods
使用。当涉及到本地卷时,如果Pods
使用单个公共PVC
,则它们都将被调度在所声明的PV
所在的同一节点上。
您可以使用nodeAffinity
选择哪些节点的PV绑定到哪些PVC
https://kubernetes.io/docs/concepts/storage/persistent-volumes/#node-亲和
声明还可以指定一个选择器来限制PV池:
https://kubernetes.io/docs/concepts/storage/persistent-volumes/#selector