实战Docker到Kubernetes技术系列

kubernetes 是什么?

Kubernetes是一个开源平台,旨在自动部署,扩展和运行应用程序的容器。

使用Kubernetes,您可以快速有效地响应客户需求。

  • 快速,可预测地部署应用程序。

  • 缩放扩展您的应用程序。

  • 无缝地推出新功能。

  • 限制硬件资源,按需分配

我们的目标是促进组件和工具的生态系统,以减轻在公共和私有云中运行应用程序的负担

kubernetes 是

  1. 便携式的:public, private, hybrid, multi-cloud

  2. 可扩展的:模块化,可插拔,可勾挂,可组合

  3. 可自愈的:自动放置,自动重启,自动复制,自动缩放

Google公司在2014年启动了Kubernetes项目。Kubernetes基于Google在规模上运行生产工作负载的十几年经验,并结合了来自社区的最佳想法和实践

为什么需要容器?

寻找你应该使用容器的原因:

旧的方式(部署在主机上的应用)和新的方式(部署在容器中)的对比图: 
这里写图片描述

旧的方式:重量级、不可移植、依赖操作系统底层的包管理 
新的方式:轻量级、快速、便携式(平台无关性),操作系统级的虚拟化

部署应用程序的旧方法是使用操作系统软件包管理器在主机上安装应用程序。这具有将应用程序的可执行文件,配置,库和生命周期与主机操作系统相互纠缠的缺点。人们可以构建不可变的虚拟机映像,以实现可预测的推出和回滚,但VM是重量级的,不可移植的。

新方法是基于操作系统级虚拟化而不是硬件虚拟化来部署容器。这些容器彼此隔离并且与主机隔离:它们有自己的文件系统,它们看不到对方的进程,并且它们的计算资源使用可以被界定。它们比VM更容易构建,并且由于它们与底层基础架构和主机文件系统脱钩,因此它们可跨云和操作系统分发。

由于容器小巧且容易,因此可以在每个容器图像中包装一个应用程序。这种一对一的应用到图像关系解除了集装箱的全部优势。使用容器,可以在构建/释放时间而不是部署时间创建不可变的容器映像,因为每个应用程序不需要与其余的应用程序堆栈组合,也不与生产基础架构环境结合。在构建/释放时间生成容器图像使得从开发到生产都能够保持一致的环境。同样,容器比虚拟机更加透明,便于监控和管理。当容器的进程生命周期由基础架构管理而不是由容器内的进程监督程序隐藏时,这尤其如此。最后,通过在每个容器中使用单个应用程序,管理容器等同于管理应用程序的部署。


猜你喜欢

转载自blog.51cto.com/13924610/2160415