周志明的软件架构课
周志明
博士,远光软件研究院院长,《深入理解 Java 虚拟机》《凤凰架构》等书作者
54203 人已学习
免费领取
课程目录
已完结/共 74 讲
架构师的视角 (24讲)
周志明的软件架构课
15
15
1.0x
00:00/00:00
登录|注册

55 | 谈谈Kubernetes的存储设计理念

你好,我是周志明。从这节课起,我会用三讲带你学习容器编排系统存储方面的知识点。今天这节课,我们先来探讨下 Kubernetes 的存储设计理念。

Kubernetes 的存储设计考量

在开始之前,我想先表明一下我对 Kubernetes 存储能力的态度。Kubernetes 在规划持久化存储能力的时候,依然遵循着它的一贯设计哲学,用户负责以资源和声明式 API 来描述自己的意图,Kubernetes 负责根据用户意图来完成具体的操作。不过我认为,就算只是描述清楚用户的存储意图,也不是一件容易的事情,相比 Kubernetes 提供的其他能力的资源,它内置的存储资源其实格外地复杂,甚至可以说是有些繁琐的。
如果你是 Kubernetes 的拥趸,不能认同我对 Kubernetes 的批评,那不妨来看一看下列围绕着“Volume”所衍生出的概念,它们仅仅是与 Kubernetes 存储相关概念的一个子集而已,你在看的时候也可以来思考一下,这些概念是否全都是必须的、是否还有整合的空间、是否有化繁为简的可能性:
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

Kubernetes存储设计的演进历程是本文的重点,着重强调了Dynamic Provisioning的重要性。文章首先介绍了Kubernetes存储设计的复杂性,包括In-Tree插件和Out-of-Tree插件的支持,以及容器存储的发展历程。随后详细讨论了Dynamic Provisioning的概念和工作原理,强调了其对系统管理员的解放和自动化能力的提升。文章还指出了Dynamic Provisioning相对于Static Provisioning的优势,以及在不同场景下的应用。总的来说,本文内容涉及技术性强,对Kubernetes存储设计有深入探讨,适合对Kubernetes存储感兴趣的读者阅读。文章以Kubernetes的存储为样例,讨论了当新的更好的解决方案出来之后,系统对既有旧方案和旧功能的兼容的问题。这是很多场景中都会遇到的问题,系统设计必须考虑现实情况,必须有所妥协,很难单纯去追求理论上的最优解。越大规模的应用,通常都带着更大的现实牵绊。

该试读文章来自《周志明的软件架构课》,如需阅读全部文章,
请先领取课程
免费领取
登录 后留言

全部留言(8)

  • 最新
  • 精选
  • Jxin
    这就要谈价值观了。 1.对于不直接被人依赖的代码(业务逻辑)。可读>简单>可扩展。性能在需要的场景no.1,不需要的场景就是最后一名。 2.对于直接被人依赖的代码(框架,对外接口)。兼容>可读>简单。 3.为什么会有这样的排序: 当赚钱不是问题时,赚钱是手段,梦想才是目的。可是当赚钱都成问题时,赚钱就是目的本身。 每个优秀的程序员都会不自觉的追求代码的整洁、架构的健康和产品的卓越。而这是梦想。
    2021-04-05
    14
  • zhanyd
    生活中也有很多新系统对旧系统兼容的例子,比如,现在银行还保留着存折和存单的业务,因为很多老人还是习惯用存折和存单,不会用储蓄卡;现在都进入5G时代了,还有很多老人机在用2G网络,2G网络还得继续提供服务。
    2021-03-31
    3
  • walkingonair
    好久没有留言了,从进入这一大章开始就到了我的知识盲区了,对于只用过docker的我而言,容器编排的技术还处于似懂非懂的状态,也一直没有下功夫去学习。技术的世界真是有趣,我们老想拥抱新技术,但是一直都有更新的技术等待着我们探索。 =========== 新系统和旧系统的矛盾,是大多数是开发都会遇到的问题,简而言之就是“改不动”。想从旧系统完全更新到新系统,需要天时地利人和,这本身也是做技术的乐趣之一。
    2021-03-31
    1
    3
  • neohope
    这种例子蛮多的,比如: 1、系统升级时,如果API版本升级到了2.0,1.0版本也要长期保留。 2、界面风格变化了,还能允许用户切换回之前的风格 3、做系统替换时,一些用户用惯了的工具、报表什么的,经常会被要求在新系统上增加对应功能 4、系统升级时,尽量去兼容原有数据库设计,而不是推翻重来 5、对于部分政企用户,被迫去兼容IE,全是泪啊
    2021-05-26
    1
  • barnabas
    周老师讲的深入浅出!👍有一个疑问,如果一个pod销毁了,它的pv卷可以被重复利用吗?如果是的话会覆盖掉之前的数据吗?不是的话,pod后来又重新启动了可以继续用这个卷吗?
    2023-01-23归属地:上海
  • stonejianbu
    容器数据持久化方案 1. docker - bind Mount - Volume 2. kubernetes - pvc-->pv(手工静态分配) - pvc-->storageClass-->Provision(动态分配)
    2022-04-07
  • Hello World
    周老师好,我们之前做过的存储系统都是以C/C++为主,基于Linux物理机实现,Kubernetes依赖外部的存储系统,那外部的分布式存储又是如何基于Kubernetes实现的呢?还望老师指点一二
    2021-05-06
  • Demon.Lee
    “而正因为镜像的稳定性与生产数据持久性存在矛盾,所以我们才需要去重点了解这个问题:如何实现容器的持久化存储。” 一语道破玄机啊,终于明白大佬的书为啥在豆瓣上分数这么高了。 不过瘾呀,不过瘾,想问老师市面上是否还有把容器,k8s相关的内容讲的可以达到老师这么高水平的资料或书籍吗,如果有的话,老师可以推荐下。
    2021-04-21
收起评论
显示
设置
留言
8
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部