TiDB on K8S 使用哪种的存储更合适?

【 TiDB 使用环境】生产环境 /测试/ Poc

生产环境

【 TiDB 版本】

  • v6.1.0

【遇到的问题:问题现象及影响】

TiDB on K8S 外部存储的挂载方式推荐用哪种?

【资源配置】

每个节点大概有 1Ti x 10 的 ssd 磁盘

【TiDB Operator 版本】:

  • v1.3.4

【K8s 版本】:

  • v1.20.11

本地 nvme 手动狗头

K8S 的标配不是 ceph rook 么,不过这个好复杂…

直接 hostPath 的方式吗?还是 local-volume-provisioner 来创建 StorageClass, 或者是其它的?

你们的 prod 环境是用的 Ceph Rook 吗?Ceph Rook 集群是和 TiDB 混部在同一个 k8s 集群上吗? 还是 TiDB 和 Ceph Rook 是不同的 k8s 集群?

我自己不会ceph rook, 直接 hostPath了~

ceph 搭建好了,还没测 :rofl:

如果使用 hostPath 是如何对磁盘资源进行限制的?

不限定… :see_no_evil:

直接使用 hostPath, Pod 重启之后怎么确保它还能调度到之前的节点上呢?如果不能确保,数据同步有多高的成本,有评估过吗?

NO,自己玩,没做任何评估

你想要上生产,还是考虑 CEPH ROOK 吧

嗯,这个貌似进入到了一个 trade off 的模式
TiDB on k8s
hostPath :解决了运维侧的自动扩缩容问题,无法解决资源隔离问题
local-volume-provisioner:解决了资源隔离问题,无法解决自动扩缩容(需要自己手动改副本)
ceph:解决了自动扩缩容,资源隔离的问题,问题是运维成本高而且存储组件出问题不好排查

本地磁盘的性能好一点吧

这个只能自己整,按照实践来规划了,必须有测试 :smiley_cat:

不会一劳永逸的