IoTShare

【K8S】应用部署方式的演变

在谈及K8S之前,我们先学习下应用部署方式的演变。在应用部署方式上,可以总结为经过如下三种方式的演变。

1. 传统部署

互联网早期开始就有,所有的应用部署在一台物理机上,应用间没有隔离。

  • 优点。部署简单。
  • 缺点。应用间的资源没有隔离,资源(内存、cpu、磁盘等)相互竞争,应用之间相互影响。

2. 虚拟机部署

与传统部署不同的是,在一台物理机上运行多个虚拟机实例,每个虚拟机中运行特定的应用。

  • 优点。虚拟机之间的应用相互隔离,互不影响。一个虚拟机(虚拟机之内的应用)的崩溃不会影响到别的虚拟机和其中的应用。
  • 缺点。运行虚拟机将运行完整的操作系统,运行操作系统所消耗的资源有时比所要运行的应用消耗还要大。

想当年刚入职公司的时候,学习过《人人懂IT》课程,其中就到虚拟机部署实现资源虚拟化就结束了。没想到短短几年,容器化大行其道。

3. 容器化部署

容器化部署是指在一台物理机上,运行多个容器实例,每个容器中运行特定的应用。由于容器轻量化的特点,相较于虚拟机来说,不需要每个容器运行完整的操作系统,和宿主机共用操作系统。同时,由于容器通过命名空间等进行隔离,容器间的隔离性相较于传统部署来说有所增强。

  • 优点。轻量化、隔离性好。同时,容器化的应用有点Java的感觉,一次打包到处运行。因为容器本身作为中间层使得应用和基础运行环境进行了解耦,所以容器化的应用可以跨不同发行版Linux运行。

当然,容器化部署也不是没有任何缺点,它也有着一些需要解决的问题。

  • 容器运行崩溃后如何快速恢复容器;
  • 多个容器应用如何实现扩缩容;
  • ...

以上这些问题可以统称为容器的编排问题,而对容器的编排来说,目前也存在许多种解决方案。

  • Docker三剑客的Swarm;
  • Apache的Mesos;
  • Kubernetes,谷歌开源的容器编排工具;

但就市场占有率而言,目前Kubernetes占据了80%以上的市场。就现在而言,学习Kubernetes依旧是云计算中逃不开的话题。正如之前买过的一本书中而言,“掌握了Kubernetes就掌握了云计算的未来”。

本原创文章未经允许不得转载 | 当前页面:IoTShare » 【K8S】应用部署方式的演变

评论