如何解决使用复制和本地持久卷进行Kubernetes Pod调度?
嗨,我在kubernetes中遇到了这个问题。我安装了由2个Pod组成的头盔部署,我必须将它们放置在两个节点中,但是我希望Pod使用的持久卷与Pod部署在同一节点中。掌舵可行吗?谢谢
解决方法
我认为您可以使用本地永久卷 查看更多:local-pv,local-pv-comparision。
本地永久卷的使用:
仍然必须首先设置本地卷并将其安装在本地卷上 节点由管理员。管理员需要挂载本地 卷进入本地卷的可配置“发现目录” 经理认识到。支持共享文件系统上的目录, 但是必须将它们绑定安装到发现目录中。
此本地卷管理器监视发现目录,查找 任何新的挂载点。经理创建一个PersistentVolume 具有适当的storageClassName,path,nodeAffinity和 它检测到的任何新安装点的容量。这些 PersistentVolume对象最终可以由 PersistentVolumeClaims,然后安装在Pods中。
使用卷完成Pod并删除 为此,PersistentVolumeClaim,本地卷管理器清理了 通过从本地挂载中删除所有文件,然后删除本地挂载 PersistentVolume对象。这触发了发现周期: 为该卷创建了PersistentVolume,并且可以由新的卷重用 PersistentVolumeClaim。
可以以与其他任何方式完全相同的方式请求本地音量 PersistentVolume类型:通过PersistentVolumeClaim。只需指定 本地卷中适当的StorageClassName PersistentVolumeClaim对象,其余部分由系统负责!
在您的情况下,我将手动创建存储类并在图表安装期间使用它。
apiVersion: v1
kind: PersistentVolume
metadata:
name: example-local-pv
spec:
capacity:
storage: 50Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
storageClassName: example-local-storage
local:
path: /mnt/disks/v1
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
name: example-local-storage
provisioner: kubernetes.io/no-provisioner
并在头盔安装过程中覆盖默认的PVC storageClassName默认配置,如下所示:
$ helm install --name chart-name --set persistence.storageClass=example-local-storage
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。