0

我们计划使用 Kubernetes 建立一个 ES 集群。k8s pod 将包含 3 个数据节点,我们打算为数据提供持久的卷映射。

我是 ES 和 k8s 的新手,但据我了解,在 pod 中,通常共享一个卷。但是在这种情况下,我们不应该共享 3 个实例的数据。为 pod 实现卷映射的最佳方法是什么。如果我有 3 个实例,我应该像 /node1/data、/node2/data 那样单独映射每个实例,还是应该只映射到单个卷 '/data' 并且 ES 将确保实例之间的数据是隔离的?

我不确定映射卷是否应该具有节点名称,如 node1、node2 等,如上所述。拥有 3 个 ES 节点(或多个数据节点)的 Pod 设计是否正确?您可以为 pod 中的不同节点实例指定不同的持久卷吗?

如果 pod 被终止并创建了一个新的 pod,会发生什么?映射卷和节点名之间是否存在强绑定。实现这一目标的最佳实践是什么?

4

1 回答 1

0

对于初学者来说,在某种程度上它取决于你的集群是如何配置/运行的。如果你在一个不错的云提供商上运行,kube 将能够支持你为你的 PVC 自动创建 PV(持久卷)。

我是否正确理解您计划在一个 pod 中拥有 3 个节点?这听起来不对。您应该有 3 个独立的 pod 组成您的集群。由于这是一个有状态的服务,您可能需要查看StatefulSet

在集群 pod 中正确定义 PVC 后,kube 将确保它们正确绑定到您的 pod(即,在 AWS AZ 上,始终将节点安排在正确的区域中,以便它可以链接该 pod 基于 EBS 的 PV)。

我建议您开始使用emptyDirpod 定义中的卷来构建集群,当您掌握它时,您可以继续确保在删除和重新创建 pod 时正确保留您的数据并更新您的部署或有状态集。

旁注:虽然内部 pod 单个卷可以安装在该 pod 的多个容器中,但没有多少后端支持 ReadWriteMany 访问模式,允许将相同的卷安装到不同的 pod(即 NFS 可以)

于 2017-07-23T09:26:26.220 回答