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