PersistentVolume如何与hostPath一起使用?

Jan*_*mes 0 azure gitlab kubernetes

我已将Gitlab部署到具有持久性存储的Azure kubernetes集群中,其定义方式如下:

kind: PersistentVolume
apiVersion: v1
metadata:
  name: gitlab-data
  namespace: gitlab
spec:
  capacity:
    storage: 8Gi
  accessModes:
    - ReadWriteMany
  hostPath:
    path: "/tmp/gitlab-data"
Run Code Online (Sandbox Code Playgroud)

几天运作良好。突然我存储在Gitlab中的所有数据都消失了,我也不知道为什么。我以为已hostPath定义的PersistentVolumen确实是持久性的,因为它保存在节点上并以某种方式复制到所有现有节点。但是我的数据现在丢失了,我不知道为什么。我查询了每个节点的正常运行时间,没有重新启动。我登录到节点并检查了路径,据我所知数据已消失。

那么PersistentVolume Mounts在Kubernetes中如何工作?所保存的数据是否真的持久存在于节点上?如果将部署拆分为多个节点,多个节点如何共享数据?是hostPath可靠的持久存储吗?

pag*_*gid 6

hostPath不会在节点之间共享或复制数据,并且一旦您的pod在另一个节点上启动,数据就会丢失。您应该考虑使用一些外部共享存储。

以下是官方文档中的相关报价:

HostPath(仅用于单节点测试–不以任何方式支持本地存储,并且在多节点群集中将不起作用)

来自kubernetes.io/docs/user-guide/persistent-volumes/