K8S集群上跑TiDB有什么优势?

生产环境有人用K8S跑TiDB吗?
TiDB集群本身已经具备容灾,在线扩缩容的基础上,为什么还要使用K8S?

没有优势,不推荐

晓磊老师认为数据库容器化的优势有两点,一是降本增效 ,我们现在有一些集群的资源利用率可能不是太充分,CPU 浪费或者内存浪费,而如果利用一个 K8s 集群,将这些资源收集起来作为一个资源池,通过 TiDB Operator 将 TiDB 部署上去,再分配相应的资源,能够实现更合理的资源分配和集中性的管理,节省资源成本。 二是资源隔离 ,K8s 提供了非常好的做资源隔离的模式,如果能够利用上 K8s 的这种集群管理模式来实现资源隔离,也是一个很好的使用条件。

具体的可以看一下这些专栏 :yum:

3 个赞

生产有跑在k8s上的,主要为了降本增效,适用于不重要类系统,访问量低的系统

3 个赞

我记得美团有个介绍,是跑在k8s上的

TiDB Cloud 跑在 AWS EKS 和 Google GKE 上

1 个赞

容器化管理,充分使用机器资源,不同业务可以错峰使用硬件设施,榨干最后一点剩余价值。

不过,除非你们有K8S相关的专业运维团队,否则不建议在它上面部署TiDB集群,而且相对于裸机部署性能大概会损耗10%-30%(具体业务具体测试才能得到准确数值)。

1 个赞

不能单论好坏,任何产品工具都有其优势,兼之,优化。好上加好。K8S,大厂产品。

以我个人观点毫无优势,大大降低数据库性能。
用的人太少,需要专业的k8s运维团队,实际成本可能更高,系统出问题很难有人帮助解决。

测试还行,生产不太实用

一些不重要的系统可以搞上去,节省资源。
组件崩了启动速度特别快,大概1秒钟就又会拉一个pod。

2 个赞

看自己的使用情况吧,相当于硬件容错加软件容错

建议生产不要跑在k8s上

我见到过的,在k8s上部署,是为了便于管理,有的企业会创建很多个小tidb集群(虽然这种方式也值得讨论),部署在k8s上是便于管理。k8s还会提供弹性的能力,在非侵入,无需人工干预的情况,只要有剩余资源,tidb server在单节点故障的情况下,会自动弹性恢复到原来的状态。这种是在公有云上,按量付费的情况下有巨大的优势。

2 个赞

实际生产环境还是跑物理机好一点吧

可以在开发环境跑,如果你有一堆开发环境要管理,还经常要重建销毁的话

精通k8s可以试下,方便资源扩展,弹性扩容。

又要掌握一门新技术了 :grin:

作为深度一个使用者,可以简单讲一下
优点:硬件资源管理更好,可以控制各自的cpu,内存,扩容方便,自愈,异常自动重启等等
缺点:维护成本较高,强依赖K8S,K8S不稳定就意味着TiDB不稳定。性能问题。节点缩容问题。

4 个赞

软件隔离总有不完美的吧,金融行业很多业务是强制物理隔离的呢 :thinking: