问题标签 [persistent-volumes]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
892 浏览

kubernetes - 在 Kubernetes 集群之间共享 nfs 卷

我们在 GKE 中设置了两个不同的集群。一个集群正在运行一个 nfs 服务器,在该集群上我们有一个指向服务器的持久卷。然后将此 PV 挂载到在此集群上运行的 pod 上。第二个集群也有一个 PV 和一个应该挂载相同 nfs 卷的 pod。这是问题发生的地方。在我们指出服务器不能使用 nfs-server clusterIp 地址的地方。这是可以理解的,但我想知道如何最好地实现这一点。

设置基本上是这样的:

NFS 使用的持久卷和持久卷声明

NFS 服务器部署

NFS 服务器服务

Pod 使用的持久卷和持久卷声明:

用于挂载 nfs 的 pod 部署文件的一部分

kubectl get pv 和 kubectl get pvc 的输出

Pod 使用的 PV 中的 ip 是问题所在。同一集群上的 pod 可以连接到它,但不能连接到另一个集群上的 pod。我可以使用来自其他集群的实际 podIP,但 podIP 会随着每次部署而变化,因此这不是一个可行的解决方案。解决这个问题的最佳方法是什么,我只希望第二个集群能够访问 nfs 服务器,而不是向世界开放它。

0 投票
1 回答
460 浏览

kubernetes - GKE Kubernetes 持久卷

我尝试为我的 rethinkdb 服务器使用持久卷。但我得到了这个错误:

我认为 Kubernetes 部署了一个新节点而没有删除旧节点,因此它无法在两者之间共享文件卷,因为我的 pvc 是 ReadWriteOnce。这个永久卷必须以自动方式创建,所以我不能使用永久磁盘,格式化它......

我的配置:

你如何管理这个?

0 投票
1 回答
640 浏览

kubernetes - Portworx 到 ETCD 的连接不起作用(http 与 https)

按照这篇文章做。

我安装了 Kubernetes。然后安装了 etcd 集群,该集群通过 HTTPS 工作并仅监听 localhost 接口(可从任何 Docker 容器内部访问)。现在我需要持久卷来安装数据库集群。选择波特沃克斯。它生成了守护进程 YAML-config。以下是已安装守护程序集的说明:

但是在 portworx 的日志中,我看到它正在尝试通过纯 HTTP 连接到 etcd,并且由于无法解释包装到 SSL 的响应而明显出错:

我做错了什么?

0 投票
3 回答
11048 浏览

postgresql - 如何在 Kubernetes 中使用 Aws EBS 挂载 postgresql 卷

  1. 我首先创建了持久卷 (EBS 10G) 和相应的持久卷声明。但是,当我尝试如下部署 postgresql pod(yaml 文件)时:

测试-postgresql.yaml

从 pod 接收错误:

initdb: directory "/var/lib/postgresql/data" 存在但不是空的 它包含一个 lost+found 目录,可能是因为它是一个挂载点。不建议直接使用挂载点作为数据目录。在挂载点下创建一个子目录。

为什么 pod 不能使用这条路径?我在 minikube 上尝试过相同的测试。我没有遇到任何问题。

  1. 我尝试将卷挂载目录路径更改为“/var/lib/test/data”,pod 可以运行。我创建了一个新表和一些数据,然后杀死了这个 pod。Kubernetes 创建了一个新的 pod。但是新的没有保留以前的数据和表格。

那么在 Kubernetes 中使用 Aws EBS 正确挂载 postgresql 卷的方法是什么,它允许重新创建的 pod 可以重用存储在 EBS 中的初始数据库?

0 投票
3 回答
12942 浏览

kubernetes - Kubernetes PVC 与 AWS 上的 ReadWriteMany

我想在 AWS 上设置一个 PVC,我需要ReadWriteMany作为访问模式。不幸的是,EBS 仅支持ReadWriteOnce.

我怎么能解决这个问题?

  • 我已经看到 AWS EFS 有一个支持ReadWriteMany.
  • 我可以使用节点亲和性来强制所有依赖 EBS 卷的 pod 到单个节点,并保持使用ReadWriteOnce,但这限制了可扩展性。

还有其他方法可以解决这个问题吗?基本上,我需要的是一种以持久方式存储数据的方法,以便在彼此独立的 pod 之间共享数据。

0 投票
0 回答
79 浏览

machine-learning - 在 Kubernetes 上训练模型

我们打算在生产中部署一个训练有素的模型。由于我们不能在代码库中保持相同,我们需要上传到云端并在运行时引用它。

我们正在使用 Kubernetes,我对它比较陌生。以下是我对如何解决这个问题的逐步理解。

  1. 使用我经过训练的模型(大小约为 30MB)构建持久卷
  2. 使用单个容器将持久卷安装到 pod 中。
  3. 保持这个 pod 运行。通过 pod 从 python 脚本中引用模型。

我尝试参考文档pv没有运气。我还尝试通过“kubectl cp”将模型移动到 PV,但没有成功。

关于如何解决这个问题的任何想法?任何帮助将不胜感激。

0 投票
2 回答
3327 浏览

azure - Kubernetes AKS 持久卷磁盘声明到多个节点

如何将 100GB 持久卷磁盘附加到 AKS Kubernetes 群集中的每个节点?

我们使用 AKS 在 Azure 上使用 Kubernetes。

我们有一个场景,我们需要将持久卷附加到 AKS 群集中的每个节点。我们在集群中的每个节点上运行 1 个 Docker 容器。

动态附加卷的原因是增加每个 Docker 容器完成其工作所需的可用 IOPS 和可用存储量。

在每个 Docker 容器内运行的程序处理非常大的输入数据文件 (10GB) 并写出更大的输出文件 (50GB)。

我们可以挂载 Azure 文件共享,但 Azure 文件共享被限制为 60MB/ps,这对我们来说太慢了,无法处理这么多原始数据。在 Docker 映像中运行的程序完成后,会将输出文件 (50GB) 移动到 Blob 存储。所有容器的所有输出文件的总和可能超过 1TB。

我在想,如果我们可以将持久卷附加到每个节点,我们就可以增加可用磁盘空间以及 IOPS,而无需使用高 vCPU/RAM 虚拟机配置(即 DS14_v2)。我们的程序比 CPU 更密集 I/O。

Pod 中运行的所有 Docker 镜像都完全相同,它们从队列中读取消息,告诉它要处理的特定输入文件。

我按照文档创建了一个 StorageClass、Persistent Volume Claims 和 Persistent Volume,并针对 1 个 POD 运行它。https://docs.microsoft.com/en-us/azure/aks/azure-disks-dynamic-pv

但是,当我创建部署并将 Pod 数量从 1 扩展到 2 时,我收到错误消息(在生产中,我们会根据需要扩展到尽可能多的节点 ~100)

卷“pvc-784496e4-869d-11e8-8984-0a58ac1f1e06”的多附加错误卷已被 Pod 使用 pv-deployment-67fd8b7b95-fjn2n

我意识到 Azure 磁盘只能附加到 SingleNode (ReadWriteOnce) 但是我不确定在加载 Kubernetes 集群并开始工作时如何创建多个磁盘并将它们附加到每个节点。

持久卷声明:

这是我的部署:

如果我知道我要扩展到 100 个节点,我是否必须创建一个包含 100 个部署的 .yaml 文件并明确让每个部署使用特定的卷声明?

例如,在我的卷声明中,我将拥有 azure-claim-01、azure-claim-02 等,并且在每个部署中,我必须对每个命名的卷声明进行声明


我无法完全理解如何动态地完成所有这些工作?

你能推荐一个更好的方法来达到预期的结果吗?

0 投票
12 回答
111056 浏览

kubernetes - Kubernetes:无法删除 PersistentVolumeClaim (pvc)

我通过调用创建了以下持久卷

kubectl create -f nameOfTheFileContainingTheFollowingContent.yaml

在此之后,我尝试删除 pvc。但是这个命令卡住了。打电话时kubectl describe pvc pv-monitoring-static-content-claim我得到以下结果

而对于kubectl describe pv pv-monitoring-static-content

没有运行使用持久卷的 pod。谁能给我一个提示,为什么 pvc 和 pv 没有被删除?

0 投票
0 回答
329 浏览

kubernetes - 无法将大文件上传到持久卷

我创建了一个持久卷,声明 (10Gi) 并安装在一个 pod 上。下面是 YAML 文件。 YAML 文件

我的意图是将一个大文件上传到持久卷

我预计挂载路径应该是 10Gi(截至 PV)。相反,它是 4KB。因此我无法上传大文件。

以下是我尝试上传大文件时的错误:

我猜这是因为目录没有空间。知道我做错了什么吗?任何帮助,将不胜感激。

0 投票
1 回答
621 浏览

kubernetes - 在 Kubernetes 中共同定位 pod 和持久卷

我有一个分布在两个区域 A 和 B 的 kubernetes 集群。我使用 nfs 卷进行持久存储。我在两个区域都有 nfs 卷。我正在创建一组有状态的 2 个副本,这些副本将分布在这些区域中(我使用 pod 反亲和性来实现这一点)。现在我希望 A 区中的 Pod 使用 A 区中的卷,而 B 区中的 Pod 使用 B 区中的卷。

我可以将标签添加到持久卷,并将持久卷声明与这些标签相匹配。但是如何确保 pod 的 pvc 不会绑定到另一个区域中的 pv?