我在 RPi4 上运行一个 k3s 集群,具有异构配置(一个节点容量大但硬盘速度慢,另一个节点有一个 ssd 驱动器,第三个节点只有一个 sd 卡)。
我有持久的卷和“本地路径”类型的声明,根据我的需要附加到节点和 Pod。
我面临这样一种情况,我需要在没有磁盘的节点上安排一个 pod 来处理使用 ssd 磁盘存储在节点中的数据(使用 ffmpeg 将一些视频文件重新编码为 mp4,因为这是一个昂贵的过程,我'想在空闲节点上执行此操作,而不是减慢运行 ssd 的节点)。
是否可以从不同的节点透明地挂载 PV?我需要使用一些 nfs 吗?是否有更进化的卷类型可用于裸机 RPi4 来做我想要的?
查看文档并没有太大帮助(有大量不同的持久卷类型,描述的用例不多)。
谢谢
我想你可能对Project Longshorn感兴趣。
它是任何 Kubernetes 集群的持久存储实现,它使用 Kubernetes 节点的现有磁盘为 Kubernetes pod 提供复制和稳定的存储。
如Longhorn github上所述:
最重要的是,您可以使用直观的 GUI 仪表板来自定义Longhorn以满足您的需求。
注意:目前 Longhorn 只支持amd64。
安装
在下面的示例中,我将向您展示如何安装Longshorn。
首先你必须
open-iscsi
在每个集群节点上安装。您需要使用例如安装它:接下来应用
longhorn.yaml
安装Longhorn:然后创建一个
longhorn
StorageClass
(您可以稍后使用自定义它ConfigMap
)这就是我们开始使用Longhorn所需要的一切:)
长角牛用户界面
正如我之前描述的,我们可以使用有用的 GUI 仪表板,在这里您可以找到如何访问它。此外,您可能需要使用此处描述
的方法将仪表板暴露给外界
Ingress
使用
Longhorn UI
仪表板非常直观,例如在“节点”选项卡中,您可以轻松指定专用于提供存储的节点。longhorn 存储类
您可以通过在命名空间中编辑来自定义
longhorn
StorageClass
例如longhorn-storageclass
ConfigMap
我longhorn-system
将numberOfReplicas
参数从3
(默认)编辑为1
: