Kubernetes快车上的谋杀案:Docker容器的生与死

栏目: 编程工具 · 发布时间: 5年前

内容简介:每天有数以百万计的Docker容器被启动起来以使用它们的资源,然后在结束任务后,没有用时就被杀掉。这是一个残酷的现实,但对于作为开发者的你我来说非常有益。你可以看到在过去几年中,容器技术已经大大改变了软件公司构建,发布和维护其应用程序的方式。
Kubernetes快车上的谋杀案:Docker容器的生与死

每天有数以百万计的 Docker 容器被启动起来以使用它们的资源,然后在结束任务后,没有用时就被杀掉。

这是一个残酷的现实,但对于作为开发者的你我来说非常有益。

你可以看到在过去几年中,容器技术已经大大改变了软件公司构建,发布和维护其应用程序的方式。

这是因为容器允许我们打包应用程序代码及其所有依赖项,因此无论计算运行环境如何,它都可以平稳快速地运行。

不仅如此,容器还可以很好地用于持续集成/持续部署(CI/CD)方法,允许你尽快向客户提供新功能,增强功能或错误修复,从而推动客户增长以及改进你提供的软件。

这些只是工作流带来的红利。

还记得之前告诉过你关于容器的“出生与死亡”吗?这个循环称之为 horizontal scaling-水平扩展 ,当应用程序面临的流量超过当前资源可以处理的流量时,这些额外的容器就会被启动起来,然后在流量消失后这些容器也会被终止。

当你在大规模运营时,整个部署自动化过程变得至关重要。

现在你可能在想,“哇!这听起来超大工作量!”

你猜对了,但有个好消息,容器编排系统能为你完成所有这些繁重的工作。

虽然你有一些容器编排系统的选择,例如Docker Swarm,Apache Mesos,但是市面上没有任何一款能有Kubernetes这么流行,究其原因有以下。

Kubernetes是一个开源工具,允许我们利用内部部署,混合或公共云基础架构,使得可以随心所欲地移动工作负载。它提供安全性,网络和存储服务,并且可以一次管理多个集群。

此外,它还可以自动执行许多在过去你必须手动执行的过程。例如:

  • 控制容器运行在哪个服务器上
  • 轻松快速地扩展资源
  • 当应用程序出现问题能自动进行回滚
  • 计算容器的“最佳位置”以实时优化容器均衡扩展资源和应用程序
Kubernetes快车上的谋杀案:Docker容器的生与死

听起来很酷对吧?

最终,Kubernetes可以更有效地使用硬件,最大限度地利用资源并节省资金。

但这就是事情变得棘手的地方。

你清楚当你使用类似Kubernetes这样的容器编排 工具 时,你可以在YAML文件中描述应用程序的配置。

在这个配置文件中,你可以告诉Kubernetes如何工作,例如收集容器镜像,如何在容器之间建立网络,如何挂载存储卷以及将容器日志安放在何处。

容器被部署到主机上,通常以复制组的形式存在。当需要将新容器部署到集群中时,Kubernetes会调度部署并根据选择的预定义约束(如CPU或内存可用性)查找最合适的主机来调度容器。

基本上,一旦容器在主机上运行,Kubernetes将根据你在容器的Dockerfile中书写的定义规范来管理其生命周期。

这意味着Kubernetes会为你自动执行所有这些任务,但它怎么做完全是基于 做为开发人员所设置的配置。

虽然你可能是一名神枪手(工程师),但你可能无法确切知道在部署的第一个月内将会有多少流量,或者是应用程序表现如何。

这就是为什么,特别是对于前几个月,监控Kubernetes集群非常重要。

现在为桌面准备的有一些非常好的开源监控工具。

例如,Prometheus包含一个功能强大且灵活的查询语言-PromQL,它允许你收集Kubernetes集群并在时间序列数据库中记录这些富含洞察力的实时指标。

当你将Prometheus与Grafana(一种数据可视化工具)配合使用,它会将指标精美地展示在容易看懂的图表中。

Prometheus和Grafana一起为你的Kubernetes集群提供强大的数据可视化和监控功能。

但这些工具仅适用于桌面。

这意味着在第一个月左右,当你还在微调并了解集群的行为表现或应用程序面临多少流量时,你就被拴在办公桌上了。

事实上,直到最近,当你在旅途中时,还没有什么出色的移动解决方案可以用于管理集群的指标。

幸运的是,如果你在Kubernetes集群上运行Prometheus/Grafana监控栈,现在有一个名为 Aetos 的移动应用程序,可直接通过手机监控Kubernetes集群的运行状况和性能。

而且这个应用非常容易使用,只需将你的Grafana URL以及API密钥配置到应用程序中,Aetos就会给你容易读懂的图表让你实时查看数据。

当前该应用程序使用一体化可滚动视图,提供了CPU使用率,内存使用率,网络饱和度和系统饱和度的指标。

这些结果显示在几个不同的图表上,让你可以即时了解性能,如需迁移也仅需手指滑动即可。

此外,它是使用开源技术栈打造的,因此无需担心售价问题。

不必说,它有它的好处。

但无论你如何监控你的集群,如果你有一个尚未容器化的遗留代码库,你可能需要开始思考如何实现它。毕竟,容器化才是未来的发展方向。

此外,涉及到杀死那些已到达其生命周期末期的容器,你会发现,让Kubernetes为你做这些肮脏的工作会更容易。除非……你本身就是心狠手辣无情的怪物 :-D

特约作者:

Robert McHalffey | Jay Cogen | Tristan Schoenfeld | Ken Brisco

【原文链接】 Murder On The Kubernetes Express: The Life And Death Of A Docker Container 翻译:冯旭松


以上所述就是小编给大家介绍的《Kubernetes快车上的谋杀案:Docker容器的生与死》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

UML用户指南

UML用户指南

[美] Grady Booch、James Rumbaugh、Ivar Jacobson / 邵维忠、麻志毅、马浩海、刘辉 / 人民邮电出版社 / 2006-6 / 49.00元

《UML用户指南》(第2版)是UML方面最权威的一本著作,三位作者是面向对象方法最早的倡导者,是UML的创始人。本版涵盖了UML 2.0。书中为具体的UML特征提供了参考,描述了一个使用UML进行开发的过程,旨在让读者掌握UML的术语、规则和语言特点,以及如何有效地使用这种语言,知道如何应用UML去解决一些常见的建模问题。《UML用户指南》(第2版)由7个部分组成,而且每章都描述了一个特定UML特......一起来看看 《UML用户指南》 这本书的介绍吧!

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换