我是 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。你看到这里有什么问题吗?
请帮忙。