Hyper: 让Pod以VM为边界

21
:Pod, 以虚机为边界 https://hyper.sh https://github.com/hyperhq/hyper/

Transcript of Hyper: 让Pod以VM为边界

:Pod, 以虚机为边界⺩王旭

https://hyper.sh  

https://github.com/hyperhq/hyper/

关于⺩王旭

• Hyper联合创始⼈人、CTO  

• 云计算、分布式存储、Hadoop、DevOps  

• 中国移动研究院、盛⼤大云、VisualOps  

• 《Cassandra权威指南》  

• http://wangxu.me

Kubernetes,  Pod,  &  Hyper

Craig  Box  from  Google

http://www.slideshare.net/dataloop/craig-­‐box-­‐google-­‐the-­‐road-­‐to-­‐kubernetes-­‐10

Hyper是什么为什么会有Hyper?Hyper有什么好处?Hyper可以做什么?

审视:Docker 究竟是什么

Docker Container(LXC)

Layered Image(aufs)

Docker 的核⼼心在于以应⽤用为中⼼心

• ⼀一致性 • 开发-测试-交付

• 快速收敛 • 降低⾃自动化困难

• 操作系统回归本原• 应⽤用与操作系统解耦

Hyper: 应⽤用为中⼼心的虚拟化

Hyper Hypervisor Docker Image

Why  Hyper

•虚拟化  • 强隔离  

• 是⼀一台“机器”,很多已有⼯工具,⺴⽹网络、存储、在线迁移  

• 可以使⽤用⾃自⼰己的  kernel  

• 启动慢,⼏几⼗十秒很常⻅见,⼏几秒成为Feature  

• 体积⼤大,镜像⼏几GB很常⻅见,⼏几⼗十GB不稀奇  

• 不便携,不会被⽤用于快速迭代的软件发布

•容器  • 启动快,亚秒级启动时间  

• 轻巧,⼏几⼗十到上百MB  

• 发布⽅方便,封装应⽤用⽤用于发布  

• 共享内核,弱隔离性  

• 不是⼀一台“机器”了,很多已有⼯工具⽆无法适⽤用  

• 仍然不够成熟

Why  Hyper

•虚拟化  • 强隔离  

• 是⼀一台“机器”,很多已有⼯工具,⺴⽹网络、存储、在线迁移  

• 可以使⽤用⾃自⼰己的  kernel  

• 启动慢,⼏几⼗十秒很常⻅见,⼏几秒成为Feature  

• 体积⼤大,镜像⼏几GB很常⻅见,⼏几⼗十GB不稀奇  

• 不便携,不会被⽤用于快速迭代的软件发布

•容器  • 启动快,亚秒级启动时间  

• 轻巧,⼏几⼗十到上百MB  

• 发布⽅方便,封装应⽤用⽤用于发布  

• 共享内核,弱隔离性  

• 不是⼀一台“机器”了,很多已有⼯工具⽆无法适⽤用  

• 仍然不够成熟集⼆二者之⻓长⽽而得 Hyper

Hyper的性能和开销

• 启动时间 (启动完整应⽤用) • 350ms ( Xeon 1270 3.5GHz, 4-

Core)  • 500ms ( i3 5010U 2.1GHz 2-Core)  

• 运⾏行时 • CPU: 与宿主机接近 • IO: 对⼤大部分云设备没有明显差异

Hyper 的⼯工作⽅方式

HyperdLight  Kernel  on  Hypervisor

Initrd:  Hyperstart

App    (Docker  Image)

App    (Docker  Image)

虚拟机

Light  Kernel  on  Hypervisor

Initrd:  Hyperstart

App    (Docker  Image)

App    (Docker  Image)

虚拟机Pod

物理机

Hyper与CaaS容器服务,以及Hyper给容器服务带来了什么

CaaS:Container  as  a  Service

• ⽤用户想要的是 Paas 还是 IaaS?

• AppCentric  Container:⼀一个终结者

PaaS

IaaS

PaaS

IaaS

CaaS

Hyper:CaaS  without  IaaS

IaaS

DCOS DCOS

VM VM VM VM

ContainerContainerContainer

ContainerContainerContainer

ContainerContainerContainer

ContainerContainerContainer

CaaS

Hyper  VM

Hyper  VM

HyperStackHyper与Kubernetes,Hyper与OpenStack

HyperStack

• Hyper  +  Kubernetes  +  Neutron  +  Cinder  

• Hyper  作为DCOS的调度单位• Magnum:  https://blueprints.launchpad.net/magnum/+spec/hyperstack  

• Hyper 的 Kubernetes 集成  

• Hyper使⽤用Neutron 和 Cinder  • Neutron,  Cinder  等标准API接⼝口  

• OpenStack  社区成熟的设备⼚厂商⽀支持

HyperStack

Pod

Pod

Pod

Application

Pod

Pod

Pod

Application

VPC

HyperVMHyperVM

HyperVMStorage

VPC

HyperVMHyperVM

HyperVMStorage

应⽤用视图:

拓扑视图:

HyperStack

HyperVM HyperVM

HyperVM HyperVM

Hyp

erd

Host  OS

k8s  Kubelet

Cinder  driver Neutron  driver

HyperVM

HyperVM

物理机

k8s  Scheduler  (+mesos,  +…)

Neutron

Cinder

Heat

Ironic

Magnum

Mgmt

Hyper 项⺫⽬目信息

• 主⻚页与⽂文档 • https://hyper.sh • https://hyper.sh/faq.html • https://docs.hyper.sh

• Github • https://github.com/hyperhq/hyper  • https://github.com/hyperhq/hyperstart

Q&A

Backup:  Hyper的⾼高级功能

• Pod: 在虚机中运⾏行⼀一组相关的App Image,⽽而不是⼀一个完整的Guest OS • ⽀支持 Kubernetes 格式的 Pod,相应的Restart Policy 和状态信息• Replace: 不关闭虚机,直接更换运⾏行的 Pod • 持久化模式: 更新 Hyper Daemon ⽆无需重启任何 Hyper 虚机