容器Docker和(Kubernetes)K8S的关键技术和应用。
前言:
我们都熟悉云计算主要提供3钟服务,IAAS(基础设施即服务),PAAS(平台即服务)、SAAS(软件即服务),今天我们来重点介绍一下PaaS服务,而PaaS的主要有三驾马车:容器、Kubernetes(K8S)、DevOps ,而其中的两种技术容器化、DevOps又是大家所熟知的云原生(Cloud Native)架构和应用里面核心两种技术,所以虽然三种都比较复杂,虽然三者都“很年轻”,但通过梳理其发展历程,可以更好地理解为何会出现容器、K8S技术,能解决客户的什么问题?以及通过看当前众多厂商的兴起、发展和消亡,来看PaaS技术的发展趋势。
一、容器的定义
首先我们来看下容器技术,不得不提大名鼎鼎的Docker,Docker从何而来?先来看下Docker的起源
2010年DotCloud公司(Docker公司的前身)推出Docker产品,彼时业界也有CloudFoundry的Warden等使用LXC的众多容器引擎,Docker没有马上火起来。直到2013年Docker开源后,业界发现了Docker的杀手锏----容器镜像技术可以做到“一次打包、到处运行(Build once,Run AnyWhere)”,一举解决了 开发、测试和生产环境无法统一 这一困扰业界几十年的问题,这也是困扰PaaS业界已久的一致性问题。而且Docker还能实现比虚拟机更轻量级、更快的虚拟化技术(Docker秒级创建v.s. 虚拟机分钟级创建;Docker大小MB级别,VM是GB级别),因此Docker一经开源,就火了起来。总结:简单来说Docker是一种Linux容器管理引擎
二、Docker 包含两种核心技术:容器技术、镜像技术。
- 容器技术提供隔离的运行环境,并有效分配和管理物理资源。
- 镜像技术 打破“代码即应用”的观念,从系统环境开始,自底至上打包应用。
三、容器有哪些特点
- 特点一:轻量。容器是操作系统级的虚拟化,它不像虚拟机一样需要独立的虚拟化软件,也不需要硬件辅助虚拟化,而是通过(Linux)内核来实现,从大小、资源消耗角度来看,它是一种轻量级的虚拟化。我们可以通过一张图来对比一下容器和虚拟机的区别,容器有两个不同于虚拟机的显著特点:
备注:根据宿主机类型的不同,容器又可以分为裸机容器和虚拟机容器两种,简单来说,裸机容器的宿主机为物理服务器,而虚拟机容器的宿主机为虚拟机,不论是哪种类型,它们都与宿主机共享操作系统内核。
Docker与虚拟机比较
- 启动速度
- 资源的需求
- 学习成本