分布式数据库 30 讲
王磊
光大银行首席数据架构师
29144 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 34 讲
结束语 (1讲)
分布式数据库 30 讲
15
15
1.0x
00:00/00:00
登录|注册

26 | 容器化:分布式数据库要不要上云,你想好了吗?

Namespace
Cgroup
Docker
集群资源调度系统
Kubernetes对有状态服务的支持
容器化对于分布式数据库的争议
etcd-operator
控制逻辑的复杂性
Local Persistent Volume
存储状态
拓扑状态
无状态服务 vs. 有状态服务
整体架构
Pod
Container
DevOps理念
容器镜像
资源虚拟化
思考题
小结
Operator
有状态服务(StatefulSet)
Kubernetes基本概念
容器化技术
分布式数据库的容器化部署
王磊(Ivan)
容器化:分布式数据库要不要上云,你想好了吗?

该思维导图由 AI 生成,仅供参考

你好,我是王磊,你也可以叫我 Ivan。
今天,我想和你分享的话题是分布式数据库的容器化部署。当数据库遇到容器,我知道这一定是个很有争议的话题。但是,在容器化技术大规模落地的背景下,这也是一个无法回避的话题。
容器化技术可以将资源虚拟化,从而更灵活快速地调配。容器镜像为应用打包提供了完美的解决方案,也为 DevOps 理念的落地扫清了技术障碍。可以说,容器已经成为现代软件工程化的基础设施,容器化已经成为一个不可逆的发展趋势。
但是,具体谈到数据库的容器化,我们又有太多的纠结。常见的反对意见就是数据库因为有状态、高 I/O 消耗和稳定运行等要求,所以不适合容器化部署。
那么,随着技术的快速发展,这些理由是不是还成立呢?为了说清楚这个问题,我们先来介绍一些 Kubernetes 的基本概念。

Kubernetes 基本概念

Container
容器化就是将物理机划分为若干容器(Container),应用程序是直接部署在容器上的,并不会感知到物理机的存在。具体来说,这个容器就是 Docker,它使用的主要技术包括 Cgroup 和 Namespace。
Cgroup 是控制组群(Control Groups)的缩写,用来限制一个进程组能够使用的资源上限,包括 CPU、内存、磁盘、网络带宽等,本质上实现了资源的隔离。Namespace 修改了进程视图,使当前容器处于一个独立的进程空间,无法看到宿主机上的其他进程,本质上实现了权限上的隔离。这两项其实都是 Linux 平台上的成熟技术,甚至在 Docker 出现前已经被用在 Cloud Foundary 的 PaaS 平台上。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文深入探讨了分布式数据库的容器化部署在当前技术领域的热门话题。随着容器化技术的广泛应用,数据库的容器化部署成为不可避免的趋势。文章首先介绍了Kubernetes的基本概念,包括容器、Pod和整体架构,并重点介绍了有状态服务(StatefulSet)的管理。针对数据库的特点,StatefulSet通过管理拓扑状态和存储状态,初步解决了有状态服务的管理问题。然而,一些关键特性如Local PV仍不够成熟,因此在实际部署分布式数据库时仍需面对复杂的控制。文章还介绍了Operator的工作原理,以及Kubernetes对有状态服务的支持情况。最后,文章指出数据库的容器化趋势是确定的,因为Kubernetes提供支持越来越完善,而随着分布式数据库普及,数据库的节点规模必然会快速扩大,这也给数据库容器化带来更强的推动力。总的来说,本文深入浅出地介绍了容器化技术在分布式数据库部署中的应用,为读者提供了全面的技术概览。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《分布式数据库 30 讲》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(9)

  • 最新
  • 精选
  • piboye
    hbase使用hdfs这种方式会是以后的主流不? k8s下,大量机器都有硬盘,计算资源被调度好了,硬盘其实挺浪费的,基于这些机器的硬盘建立的分布式文件系统,在基于分布式文件系统来建立弹性的数据库服务,不知道这个方向是否好?

    作者回复: hdfs也是一种共享存储,在共享存储上进行数据密集型计算对性能还是有比较大的损耗。事实上,hbase也要依赖数据局部性。

    2020-10-11
    4
    5
  • Jowin
    除了k8s,大数据平台里面也存在大量资源调度场景产品,例如yarn,mesos

    作者回复: 是的

    2021-03-08
  • kylexy_0817
    Hadoop生态中的Yarm应该也算是集群资源调度系统吧?简单的区别在于Yarm调度的不是pod,不基于容器实现,而是直接调度物理机集群的计算资源

    作者回复: 是的,Yarn也是典型的资源调度器,而且有些地方和k8s很相似,比如也会用cgroup隔离资源。

    2020-11-25
  • caoxinyiyi
    逻辑清晰,感谢老师
    2023-08-20归属地:北京
  • 宝仔
    老师抛了这个问题出来,那么老师到底能上吗?
    2021-11-01
  • Aland—zhang
    这有一个内核级、超融合云原生存储解决方案KubeStorage 能解决数据库容器化上 k8s 的性能问题, http://www.maxspeedcloud.com/
    2021-04-20
  • wy
    yarn mesos 都是典型的资源调度框架,yarn的话目前只是hadoop生态用的多,mesos早年也是大数据生态的,后面也有往其它方向扩张,不过发展并不好。其实从技术看,大家其实都差不多,但是k8s的生态对开发者最友好,得开发者得天下。
    2021-01-30
  • Jxin
    1.被k8s推下神坛的docker公司的容器编排技术-swarm。 2.个人是先搭swarm集群再玩的k8s。起初感觉swarm比k8s的声明yml文件好写很多,简洁很多。
    2020-11-02
  • piboye
    cpu和内存k8s和knative,可以做到调用次数级别的弹性了。储存的目前调度的力度太大了,我觉得容器化和虚拟化作用很大,很多业务很难一下就定好容量,目前的云产品都要预定一个最大量,实际使用都存在很大的浪费,真正突破量级的时候扩容又是个大问题。
    2020-10-11
    1
收起评论
显示
设置
留言
9
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部