5月19日,TiDB 社区最新发布的能量钛活动第一期——“当数据库遇上 Kubernetes”圆满落幕。活动邀请了云原生领域的技术专家及 TiDB 资深运维工程师,针对数据库容器化部署及运维的相关问题展开了探讨。以下为本次活动的视频与文字回顾。
嘉宾介绍:
宋净超,Tetrate 布道师,云原生社区创始人。
张晋涛,支流科技云原生技术专家,Kubernetes 及 Docker 等众多开源项目贡献者,专注于 Apache APISIX Ingress 及 Service Mesh 等领域。
代晓磊,360 数据库运维高级专家,10 年数据库运维开发经验,开源爱好者,TUG MVA / 顾问,TiDB in action 作者之一。
刘春雷,58 集团高级 DBA,负责 58 同城 MySQL、TiDB 数据库、DorisDB 运维,TUG MOA、内容组 leader。
李欣,汽车之家 DBA,主要负责汽车之家的数据库运维和开发工作。
王鹏飞,资深专家,从事分布式系统、分布式关系型计算、云服务构建多年,目前在 PingCAP 负责 TiDB Cloud 的研发工作。
活动开始,首先来自支流科技云原生技术专家张晋涛老师简单介绍了 Kubernetes 近几年的发展方向、主体架构以及 K8s 的 service 类型、相关组件等基本概况。张晋涛老师认为 K8s 是云原生的基石,它有着足够的便利性,包括故障自愈,容器编排等优势,微服务改造也会更容易。目前 K8s 在生产当中落地有两个方向:一是稳定性,二是安全性。
接下来便进入了圆桌讨论环节,本环节将针对社区用户对 Kubernetes 最为关注的一些问题进行探讨。
把数据库放在 K8s 上可行吗?这样做给我们带来了什么好处,什么坏处?
对于“把数据库放在 K8s 上是否可行”,代晓磊老师给出了肯定的回答,但同时需要有一定的技术积累。因为数据库是一个有状态的服务,有状态的服务部署在 K8s 上是有一定成本的。但把数据库放在 K8s 上可以带来两方面的好处,一是降本增效,通过 K8s 的集中式管理,降低资源使用率,从而达到节约成本的目的,二是K8s 的集群管理模式能够更有效地实现资源隔离。
当然这其中也会有有一些不太方便的地方。首先 K8s 是有一定的技术门槛,需要运维去了解底层架构、存储等技术问题,另一方面当把数据库放到 K8s 上会增加虚拟网络,这会对性能有所影响,还有在做资源调度时,其他节点上要保证足够的资源去进行调度。
将 DB 迁移到 K8s 平台,您都会做哪方面的测试?
刘春雷老师表示会做性能方面以及功能方面的测试。由物理机部署到上云,至少会有 10% 的性能损失,这时就需要一些其他方式进行调整,比如更改架构,从而保证需求不受影响。另外还会进行一些重要功能方面的测试,比如高可用切换,如果测试都通过的话理论上就只有 10% 的性能损失,这样就可以通过其他方式的补充来保证业务的需求。另外对于这个问题李欣老师也进行了补充,他认为高可用是所有问题的重中之重。如何解决高可用的问题,如何适配,是否需要改造以及改造的成本都是在迁移的时候需要考虑的问题。
以 TiDB 为例,数据库直接放在 K8s 上是否可行?
很多社区用户都在关注 TiDB 能否放到 K8s 上直接运行,来自 PingCAP 的王鹏飞老师表示了肯定。 因为 TiDB 是分布式数据库,所以它天生适合在云原生上进行部署,而且可以解决不同部署环境的问题,在运行环境上提供了很大的灵活性。但是 TiDB 也不能简单地直接部署到 K8s 上,这背后有很多且复杂的控制逻辑,这个时候就可以通过 TiDB Operator 自动化解决大部分需要运维才能解决的问题,降低运维成本。
本次圆桌议题各位技术专家也给新手分享了学习 K8s 的心得与建议:
- 王鹏飞:K8s 是神器,能够把数据库部署到 K8s 上对于个人能力的提升非常巨大。
- 张晋涛:无论是研发还是运维,只要业务在 K8s 上面,就需要对 K8s 有所了解;需要合理的设置应用在 K8s 中的资源占用率;监控先行。
- 代晓磊:通过公开课或社区学习 K8s 相关知识,然后自己去亲手做一个 K8s 的测试集群。
- 宋净超:学习过程中最重要的是实践,然后多跟大家交流分享,多参与到开源社区中。
除此之外,本次活动各位技术专家还分享了关于 K8s 的部署、安全性保障等经验,感兴趣的小伙伴可击链接观看本次活动的完整视频回放:TiDB 「能量钛」 线上圆桌论坛来袭! 当数据库遇上 Kubernetes_哔哩哔哩_bilibili