1

我是 Kubernetes 新手,所以可能是一个愚蠢的问题。
我正在尝试使用 3 个 pod 副本部署 ElasticSearch 的 statefulset。我在规范中用 pvc 定义了 Statefulset。
此 pvc 具有由 hostPath 卷提供服务的存储类。

volumeClaimTemplates:
  - metadata:
      name: beehive-pv-claim
    spec:
      accessModes: [ "ReadWriteOnce" ]
      storageClassName: "local-storage"
      resources:
        requests:
          storage: 1Gi

apiVersion: v1
kind: PersistentVolume
metadata:
  name: beehive-pv
spec:
  capacity:
    storage: 10Gi
  volumeMode: Filesystem
  accessModes:
  - ReadWriteOnce
  persistentVolumeReclaimPolicy: Delete
  storageClassName: local-storage
  hostPath:
    path: /home/abc

我几乎没有疑问。
1) 上面的 setup/pv 会分别在每个节点上提供 /host/abc 目录吗?即每个 pod 数据都将存储在其相应的节点/主机路径上。另外,k8s 会显示一个卷绑定到多个 pvc 吗?
2)当我使用statefulset时,我假设一次pod-{i}被安排在节点-{i}上,它在任何情况下都会被安排在那里(例如重新启动)。
3)以上设置正确的方法来实现我需要将数据存储在主机本地目录上的这种情况。还是本地持久卷更好?我无法得到两者之间的实际区别。4)我需要手动创建本地存储存储类吗?(以上设置在 docker for windows setup 中运行良好,无需创建存储类) 5)我可能还有其他容器也需要将数据存储在 /home/abc 目录下。因此,我将在容器中安装卷时使用 subPath。你看到这里有什么问题吗?

请帮忙。

4

1 回答 1

2

如果你有一个多节点环境,hostPath 卷只能在单节点集群上工作,那么你应该使用本地持久卷

这些博客文章解释了本地持久卷。

官方博客-https: //kubernetes.io/blog/2019/04/04/kubernetes-1.14-local-persistent-volumes-ga/

另一个参考 - https://vocon-it.com/2018/12/20/kubernetes-local-persistent-volumes/

于 2019-07-24T04:22:26.570 回答