【发布时间】:2020-06-08 19:40:50
【问题描述】:
我执行了一个场景,我使用 PV 和 PVC 在我的 K8s 集群上部署了 Microsoft SQL 数据库。它运作良好,但我看到一些奇怪的行为。我创建了 PV,但它只在一个节点上可见,而在其他工作节点上不可见。我在这里遗漏了什么,请输入什么?
背景:
服务器 1 - 主服务器
服务器 2 - 工作人员
服务器 3 - 工作人员
服务器 4 - 工作人员
Pod:“MyDb”在没有任何副本集的服务器(节点)4 上运行。我猜是因为我的 POD 在 server-4 上运行,PV 在创建 POD 时在服务器 4 上创建并在其中引用 PVC(声明)。
请让我知道您对此问题的看法或分享您对在生产集群中安装共享磁盘的意见。
想要在 K8s 集群上部署 SQL DB,可以参考 Philips 的博客。链接如下,
https://www.phillipsj.net/posts/sql-server-on-linux-on-kubernetes-part-1/(无 PV)
https://www.phillipsj.net/posts/sql-server-on-linux-on-kubernetes-part-2/(带有 PV 和声明)
问候, 法鲁克
请在下面查看我对原始问题陈述的发现。 问题:创建了 SQL Server 的 POD。在运行时,K8s 在 server-4 上创建了这个 pod,因此在 server-4 上创建了 PV。但是,在其他节点上没有创建 PV 路径(/tmp/sqldata_.
- 我关闭了 server-4 节点并运行删除 SQL pod 的命令(最初没有使用副本)。
- POD 的状态更改为“终止”POD
- 有一段时间没有发生任何事情。
- 我重新启动了 server-4 并注意到 POD 立即被删除。
下一步: - 我再次停止了 server-4 并创建了相同的 pod。 - POD 是在运行时在 server-3 节点上创建的,我看到 PV (/tmp/sqldata) 也在 server-3 上创建。但是,我的所有数据(示例样本表)都丢失了。现在是服务器 3 上的全新 PV。
我假设 PV 将安装在外部存储卷上,而不是来自集群中任何节点的存储/磁盘。
【问题讨论】:
-
您需要发布您的 kubernetes 配置以及您看到的任何错误,以获得有用的帮助。
-
嗨,Paul,我没有收到错误,而是注意到 K8s 的行为不是很清楚。我创建了 PV 并在我的 POD 中引用它。但是,该 PV 在其他节点上不可见,所以我想知道由 K8s 创建 POD 的服务器是否关闭并且 POD 会在其他活动节点上创建,它可能无法查看旧数据。
标签: kubernetes sqldatasource kubernetes-pod