【问题标题】:Kubernetes: Local storage multiple nodesKubernetes:本地存储多个节点
【发布时间】:2020-12-16 11:08:37
【问题描述】:

在我的 kubernetes 集群中,有 1 个主节点和 3 个节点。

将在每个节点上运行一个部署/守护程序集,并且需要存储。

考虑本地存储由于 gluster 的性能问题,因为会有很多文件(小/大)。

有没有办法自动分配在已分配 pod 的节点中具有 pv 的 pvc?

谢谢

【问题讨论】:

  • 也许你可以得到类似的信息来解决你的问题here
  • 嘿@Bruno,有什么更新吗?

标签: kubernetes local-storage storage kubectl


【解决方案1】:

您可以使用nodeAffinity选择哪些节点的PV绑定到哪些PVC

https://kubernetes.io/docs/concepts/storage/persistent-volumes/#node-affinity

声明还可以指定一个限制 PV 池的选择器:

https://kubernetes.io/docs/concepts/storage/persistent-volumes/#selector

【讨论】:

    【解决方案2】:

    有没有办法自动分配有 pv 的 pvc pod 分配到的节点?

    这取决于您 “自动分配 pvc”的确切含义,但我相信 local volume 应该满足您的要求。 PVC 或许多不同的PVCs

    hostPath 相比,最大的优势是无需手动将 Pod 调度到特定节点,因为在 PersistentVolume 上定义了节点亲和性:

    hostPath 卷相比,本地卷可以用于持久 和可移植的方式,无需手动将 Pod 调度到节点,因为 系统通过查看卷的节点约束来了解 PersistentVolume 上的节点亲和性。

    您只需要定义一个本地存储类,本地PVPVC,然后您就可以在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 所在的同一节点上。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-22
      • 1970-01-01
      • 2019-09-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多