虚拟化架构

image.png
点击查看【processon】
 Hypervisor是所有虚拟化技术的核心。 非中断地支持多工作负载迁移的能力是Hypervisor的基本功能。三个最主要的虚拟化架构类别包括:

虚拟化类型 架构 典型产品 特点
Type-I型 裸金属架构/原生架构(Bare Metal Architecture) VMWare ESX、VMware vSphere(ESXi)、Microsoft Hyper-V,Citrix XenServer、Sun xVM、KVM 虚拟机直接运行在系统硬件上,创建硬件全仿真实例,直接在硬件上面安装虚拟化软件,再在其上安装操作系统和应用,依赖虚拟层内核和服务器控制台进行管理。
Type-II型 托管/寄居架构(Hosted Architecture) VMware WorkstationsOracle VirtualBox、Microsoft Virtual Server R2、GSX Server、IBM PowerVM、Red Hat Enterprise Virtulization、Huawei FushionSphere 虚拟机运行在传统操作系统,同样创建的是硬件全仿真实例,在操作系统之上安装和运行虚拟化程序,依赖于主机操作系统对设备的支持和物理资源的管理。
容器 容器架构(Container Architecture) lxd、rkt、kata(这三种支持k8s)、Docker、singularty、cri-o、pouch(阿里主推)、Mesos containerizer 虚拟机运行在传统操作系统上,创建一个独立的虚拟化实例,指向底层托管操作系统,被称为“操作系统虚拟化”。

注意:**Hyper-V,Windows7/8/10自带,可以在“控制面板-程序-启用或关闭Windows功能”中开启。Hyper-V和Virtual Box冲突,两个同时工作会蓝屏。**

Docker定义

百度百科:Docker是PaaS提供商dotCloud开源的一个基于LXC的高级容器引擎,源代码托管在Github上, 基于go语言并遵从Apache2.0协议开源。Docker可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的Linux 机器上。
Docker的英文翻译是“搬运工”的意思,他搬运的东西就是我们常说的集装箱Container,Container里面装的是任意类型的App,我们的开发人员可以通过Docker将App变成一种标准化的、可移植的、自管理的组件,我们可以在任何主流的操作系统中开发、调试和运行。从概念上来看Docker和我们传统的虚拟机比较类似,只是更加轻量级,更加方便使用。
LXC,Linux Container的简写, 提供轻量级的虚拟化,以便隔离进程和资源,而且不需要提供指令解释机制以及全虚拟化的其他复杂性。LXC在资源管理方面依赖于Linux内核的cgroups子系统,LXC在隔离控制方面依赖于Linux内核的namespace特性。

特性 容器 虚拟机
启动 秒级 分钟级
硬盘使用 一般为 MB 一般为 GB
性能 接近原生 弱于
系统支持量 单机支持上千个容器 一般几十个

Docker优缺点

Docker 描述
优点
- 更高的资源利用率
- 更快速的交付和部署,配合CI/CD工具集,方便集成到可持续开发流程中。
- 高效的部署和扩容,几乎可以在任意的平台上运行,包括物理机、虚拟机、公有云、私有云、个人电脑、服务器等。
- 更简单的管理,所有的修改都以增量的方式被分发和更新,从而实现自动化并且高效的管理。
缺点
- Docker必须在64位机器上运行,并且目前仅支持x86_64和AMD64,32位系统暂不支持,同时内核需要支持cgroups和namespace。
- 在故障排除和分析中,复杂性是一个问题,为了提供调试功能,生产环境下每个应用容器都需要各自安装调试工具,而传统方式下统一使用一套调试工具即可。
- Docker利用volume接口(存储卷)形成数据的映射和转移,以实现数据持久化的目的。但这样同样也会造成一部分资源的浪费和更多的交互,不管是映射到宿主机上还是网络磁盘,都是退而求其次的解决方案。
- 当同一虚拟机或者服务器下面的容器需要更高并发量支撑的时候,也就是并发问题成为系统瓶颈的时候,容器会将这个问题放大,大大降低系统性能。

CNCF简介

CNCF全景图:https://landscape.cncf.io/images/landscape.png
image.png
CNCF(Cloud Native Computing Foundation),云原生计算基金会(以下简称CNCF)是一个开源软件基金会,它致力于云原生(Cloud Native)技术的普及和可持续发展。云原生技术是通过一系列的软件、规范和标准帮助企业和组织,在现代的动态环境(如公共云、私有云和混合云)中构建和运行敏捷的、可扩展的应用程序。容器、微服务、微服务治理、声明式API等都是代表性的云原生技术。这些技术使松散耦合的系统具有更好的弹性、可管理性,同时更容易被监控和观察。这些技术通过与强大的自动化工具相结合,允许工程师频繁地、可预见地对系统进行任意的更改,并尽可能减少由此带来的工作量(在这些云原生技术和框架被采用之前,相信大家都有过针对系统任何一个小改动,都需要整个开发、测试、运维团队投入大量工作的痛苦经历),而这就是云原生技术最希望为技术团队以及业务带来的价值。
CNCF给出了云原生应用的三大特征:

  • 容器化封装:以容器为基础,提高整体开发水平,形成代码和组件重用,简化云原生应用程序的维护。在容器中运行应用程序和进程,并作为应用程序部署的独立单元,实现高水平资源隔离。
  • 动态管理:通过集中式的编排调度系统来动态的管理和调度。
  • 面向微服务:明确服务间的依赖,互相解耦。

🌲Docker-基础入门 - 图3

参考

Docker官网:
https://www.docker.com
https://www.docker-cn.com
Docker中文社区:
https://www.docker.org.cn
http://www.dockerchina.cn
W3Cschool Docker教程:
https://www.w3cschool.cn
开源简史基础:CNCF与路线图:
https://liumiaocn.blog.csdn.net/article/details/100653635
CNCF官网:
https://www.cncf.io/
https://github.com/cncf/landscape