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

48 | 以容器构建系统(上):隔离与协作

你好,我是周志明。从这节课开始,我们讨论的焦点会从容器本身,过渡到容器编排上。
我们知道,自从 Docker 提出“以封装应用为中心”的容器发展理念,成功取代了“以封装系统为中心”的 LXC 以后,一个容器封装一个单进程应用,已经成为了被广泛认可的最佳实践。
然而当单体时代过去之后,分布式系统里对于应用的概念已经不再等同于进程了,此时的应用需要多个进程共同协作,通过集群的形式对外提供服务,那么以虚拟化方法实现这个目标的过程,就被称为容器编排(Container Orchestration)
而到今天,Kubernetes 已经成为了容器编排的代名词。不过在课程中,我并不打算过多介绍 Kubernetes 具体有哪些功能,也不会为你说明它由 Pod、Node、Deployment、ReplicaSet 等各种类型的资源组成可用的服务、集群管理平面与节点之间是如何工作的、每种资源该如何配置使用,等等,如果你想了解这方面信息,可以去查看 Kubernetes 官网的文档库或任何一本以 Kubernetes 为主题的使用手册。
在课程中,我真正希望能帮你搞清楚的问题是“为什么 Kubernetes 会设计成现在这个样子?”“为什么以容器构建系统应该这样做?”
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文深入探讨了容器编排系统的设计与实现,以及Kubernetes在其中的重要性。首先介绍了容器编排的背景和发展,指出了单个容器封装单进程应用的局限性,并探讨了容器编排系统可能遇到的问题和解决方案。文章引入了Pod的概念,强调了其作为容器编排的扩展点,实现了容器从隔离到协作的转变。特别强调了Kubernetes作为容器编排的代名词,强调读者需要理解为什么Kubernetes会设计成现在这个样子,以及以容器构建系统应该如何做的原因。文章通过具体场景的讨论,帮助读者理解了容器编排系统的设计思想和实现意图,为读者提供了对容器编排系统的深入了解和思考。文章还介绍了Pod的含义与职责,以及Pod的实现细节和在容器编排中的重要性。整体而言,本文为读者提供了对容器编排系统的全面了解和思考,对于从事容器编排相关工作的读者具有重要的参考价值。

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

全部留言(6)

  • 最新
  • 精选
  • Demon.Lee
    老师是真厉害,不服不行,我只用过docker,但没玩过k8s,现在开始接触,但我也能领悟,之前讲Prometheus也是,膜拜。 请教老师两个问题,1)为啥docker只能监控pid为1的进程呢,不太懂,跟信号相关吗,我看隔壁老师有讲到信号,我也在学,https://time.geekbang.org/column/article/309423; 2)之前老师说,现在大厂都用containerd替代了docker,如果我们后面用k8s部署集群的话,最佳实践是不是就直接上containerd了,目前大家估计对containerd还不太熟悉,不过我去了解了下它与docker的基本命令相差不大

    作者回复: 关于1,只监控pid=1的进程倒不是什么技术上的局限,做不到监视其他的。这其实是一个简单逻辑题:监视进程是为了根据进程状态调整容器状态,容器状态在同一时刻是唯一的,但是如果容器中有N个不同的进程,那该以哪个进程的状态作为容器的状态合适呢? 关于2,containerd代替docker是个趋势,尤其是k8s 1.23之后。

    2021-04-14
    11
  • zhanyd
    容器是为了让进程之间相互隔离,容器编排又是为了让各个容器能相互协作,看似矛盾,其实不然。 容器是从逻辑上分割了服务器的资源,把服务器的资源拆成一块块“积木”,容器编排则是根据业务需求去搭“积木”,我们不用去管服务器之间的硬件差异,以及服务器的物理位置,在逻辑上它们都是一块块“积木”,我们只要在逻辑上去搭“积木”就行,从而大大降低了运维的难度,提高了资源的利用率
    2021-03-15
    17
  • neohope
    对于pod,之前只是感觉用着方便,今天有了另一种层面的收获,感谢!
    2021-04-14
    2
  • xmr
    容器编排还想要考虑服务发现、负载均衡等功能
    2022-05-25
  • 吴钩
    容器编排系统还需要考虑资源分配的算法,节点健康状态的监控和故障隔离,优雅的启动和停机等。
    2021-04-07
  • Jxin
    1.更好的自动调整容器的资源配置。 2.编排是需要人操作的,所以易用性会非常重要,直接影响其推广效率和稳定性。
    2021-03-19
收起评论
显示
设置
留言
6
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部