Kubernetes容器云中如果一定要跑数据库,哪种类型数据库可以?跑数据会遇到哪些风险以及如何解决?

Kubernetes容器云中适合于放置无状态的应用,数据库是不适于放置在容器云中的,这是为什么呢? 如果我们为了某些需求,一定要放置数据库,目前是放置哪种类型的数据库?放置这种数据库的缺点在什么地方? 目前是否有解决这种问题的方法?...显示全部

Kubernetes容器云中适合于放置无状态的应用,数据库是不适于放置在容器云中的,这是为什么呢? 如果我们为了某些需求,一定要放置数据库,目前是放置哪种类型的数据库?放置这种数据库的缺点在什么地方? 目前是否有解决这种问题的方法?

收起
参与10

查看其它 1 个回答zhuqibs的回答

zhuqibszhuqibs软件开发工程师Adidas

容器云本来是不适合于跑数据库库的,因为容器云内的pod可以分布在多个节点,这样必须使用分布式数据库,而分布式数据库的读写io比较慢,根据实测,你必须使用flash存储才能达到普通sas磁盘的读写性能,这是难以接受的。paxos和raft算法的使得这个情况发生了变化,我们可以使得每个节点实现数据库读写的本地化,反正paxos是种这个世界上没几个人能想明白的算法,但它的简化版raft还是可以理解的。

在节点写数据时,本地的磁盘变成master,这就是multi raft算法。虽然是分布式的,但是对本地磁盘写,io瓶颈消除了,而且数据的一致性并没有降低,基本还是顺序一致性。

所以,现在TIDB这种"贵族"分布式数据库,底层基本都用raft算法。Kubernetes的本身底层的etcd也是这种算法,大家可以去了解一下。

互联网服务 · 2020-03-29
浏览1397

回答者

zhuqibs
软件开发工程师Adidas
擅长领域: 云计算服务器存储

zhuqibs 最近回答过的问题

回答状态

  • 发布时间:2020-03-29
  • 关注会员:3 人
  • 回答浏览:1397
  • X社区推广