当产品运行在内部的虚拟化平台中,如openstack,也就是KVM虚拟化,创建虚拟机,但是不断增加的云端应用,增加了对硬件资源的消耗,不断的创建虚拟机,消耗了大量的硬件资源。
那么如何高效的利用硬件资源实现云服务呢
容器技术,Docker最初是DotCloud公司在法国期间发起的一个公司内部项目,后再以Apache2.0授权协议开源,代码在Github上维护,Docker是基于Google公司推出的Golang语言开发的,基于Linux内核的Cgroups、NameSpace,以及UnionFS等技术,对进程进行封装隔离,属于操作系统层面的虚拟化技术。由于隔离的进程独立于宿主机和其他隔离的进程,也被称为容器。
最初的Docker是基于LXC的,后来取出LXC转而使用自行开发的Libcontainer。
Docker被定义为为开源的容器引擎,可以方便的对容器进行管理,例如对镜像打包封装,引入Docker Registry对镜像统一管理。使用Docker就是为了创建容器,管理容器、使用容器、删除容器。
利用Docker可以实现开发,测试、生产环境的部署一致性,极大的减少运维成本。
虚拟机是虚拟出来一套硬件,在其上面运行一个完整的操作系统,例如我们使用的KVM,指定系统镜像,然后装系统,最终可以使用,在该系统上再运行所需的应用程序。
KVM创建虚拟机时,如果指定较少的CPU,内存,硬盘等资源,虚拟机性能较低。
容器内的应用程序直接运行在宿主机的内核上,容器内没有自己的内核,也没有对硬件进行虚拟,因此容器比虚拟机更为轻便。容器内的程序,就好比直接运行在宿主机上面的,能够使用宿主机最大的硬件资源,内存、cpu、磁盘。每个进程是互相隔离的,互不影响。
当Docker容器多的时候,需要工具去编排管理,这个就是k8s。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。