当前位置: 首页 > 知识库问答 >
问题:

多个PeristentVolumeClaims是否可以绑定到相同的本地存储?

华煜祺
2023-03-14

我想知道多个PersistentVolumeClaims是否可能绑定到同一个本地持久卷。

我的用例是:我想构建一个守护程序集,在集群的每个节点(节点的本地磁盘上)上写入一些数据(实际上是相同的数据)。然后,在任何节点上调度的任何其他pod都应该能够读取该数据。基本上是一种节点级别的写一次读多策略。

我知道使用hostPath类型的卷可以做到这一点,但管理起来有点困难,所以我发现本地存储是一种更好的方法。

我的愿望如下:

  • 创建本地持久卷(名为pv)与ReadWrite一旦和ReadOnly多种访问模式
  • 创建第一个持久卷声明(pvc1),使用ReadWrite一旦访问模式,并在将数据写入卷中的DaemonSet中使用它。所以pvc1应该绑定到pv
  • 创建第二个持久卷声明(pvc2)与ReadOnly很多访问模式,用于读取数据的任何其他pod(所以pvc2也应该绑定到pv)

这可能吗?

我读到,如果一个聚氯乙烯被绑定到一个光伏,那么这个光伏是“锁定的”,这意味着没有其他聚氯乙烯可以绑定到它。真的是这样吗?如果对于这种情况似乎有点限制,因为我们有一次写入-读取-多次操作。

谢谢

共有1个答案

公西兴业
2023-03-14

RWO卷类型的守护程序集和PVC不能很好地混合,因为所有守护程序将共享相同的PVC。对于本地卷,这将导致只调度一个副本,因为它限制所有使用该PVC的POD只调度到一个节点。

您可以通过使用StatefulSet潜在地解决这个问题,它支持volumeClaimTemplates,为每个副本创建一个PVC,并将其扩展到集群中的节点数。然而,您的用户pod需要知道并选择一个特定的PVC来使用,而不是使用该节点上的任何东西。

我认为编写CSI驱动程序会更好地解决您的用例。它有一个DaemonSet组件,在驱动程序启动时可以初始化数据。然后,当它实现NodePublishVolume(也称为挂载到pod中)时,它可以将数据目录绑定挂载到pod的容器中。您可以使这种卷类型为RWX,并且您可能不需要实现任何用于预配或附加的控制器例程。

 类似资料:
  • 我正在Windows Server 2008 R2(64位)上运行此操作,并且'ipconfig/all'只显示一个网络适配器/接口(其他网络适配器被禁用)。但是,在其他一些机器上,这个程序实际上会抛出预期的“java.net.bindexception:Address已经在使用:jvm_bind”! 会发生什么事?

  • 问题内容: 我需要开发一个可长期离线运行的Web应用程序。为了使它可行,我无法避免将敏感数据(个人数据,而不是您将仅存储散列数据的类型)保存在本地存储中。 我接受不建议这样做,但是我几乎没有选择要执行以下操作来保护数据: 使用斯坦福JavaScript加密库和AES-256将所有内容都加密到本地存储中 用户密码是加密密钥,未存储在设备上 通过ssl从单个受信任的服务器提供所有内容(在线时) 使用o

  • 问题内容: 如果您的类路径中有两个jar,其中包含同一个类的不同版本,则类路径的顺序就变得至关重要。 我正在寻找一种可以检测并标记给定类路径或文件夹集中的潜在冲突的工具。 当然可以启动一个脚本: 稍后使用一些巧妙的sort / uniq / diff / grep / awk很有潜力,但是我想知道是否有人知道任何现有的解决方案。 问题答案: JBoss 的Tattletale工具是另一个候选者:“

  • 我正在努力让Android上的OkHttpClient使用自定义证书发出HTTPS请求,同时绑定到特定网络接口的本地地址。我当前的尝试使用以下: 类实现为: 这主要是基于OkHttp GitHub站点的留档,它描述了如何将值传递给允许我们通过覆盖无参数的方法将每个套接字绑定到特定地址。但是,sslSocketFactory的文档没有提到任何关于能够绑定套接字的内容。当我使用上述代码运行我的应用程序

  • 在这个问题中,我必须有一个带有键和字符串值的映射,以查看多个键是否映射到同一个值。换句话说,我的方法应该返回true,如果没有两个键映射到相同的值,则返回false。我尝试将所有地图放在一个集合中,检查每个元素,看看是否有两个相同值的副本;然而,这似乎对我不起作用。如有任何建议,将不胜感激,谢谢。 提示: 编写一个方法isUnique,该方法接受从字符串到字符串的映射作为参数,如果没有两个键映射到

  • 我已经创建了一个按钮数组(),我想为数组中的所有按钮添加相同的操作侦听器,而不是逐个添加它们。 想象一下,每次我点击屏幕上显示的一个按钮,它就会在数组中打印出该按钮的索引。

  • 问题内容: 我凭经验发现 绑定到当前计算机上的所有网络接口(而不仅仅是localhost-127.0.0.1或主机名),但是我无法找到说明这是可以保证的文档。 问题:在Java中绑定到0.0.0.0的定义将始终绑定到所有网络接口? 问题答案: 使用将仅绑定到启用IPv4的接口。但是,如果绑定到,则假定您的TCP / IP堆栈(和Java)启用了IPv4兼容的IPv6套接字,则该协议应涵盖所有IPv

  • 问题内容: 基本上,我要创建一个带有2个Pod(单个主机群集)的StatefulSet部署,我希望每个Pod都可以挂载到主机中的基本文件夹及其下面的子文件夹中: 基本文件夹安装:/ mnt / disks / ssd Pod#1-/ mnt / disks / ssd / pod-1 Pod#2-/ mnt / disks / ssd / pod-2 我只设法将第一个Pod挂载到基本文件夹,但是第