什么是云原生随着云计算应用的普及,云原生技术(CloudNative)的概念也变得非常近年来流行。Pivotal的MattStine于2013年首次提出云原生的概念;云原生的具体含义也在这几年发生了变化。近日,Pivotal官网将云原生的概念概括为四个重点:DevOps、持续交付、微服务、容器。云原生的概念构成符合云原生架构的应用应该是这样的:使用以kubernetes(k8s)和容器(docker)为代表的技术部署容器化应用;基于微服务架构,提高应用的灵活性和可维护性,借助敏捷方法和DevOps支持持续迭代和运维自动化;它利用云平台设施实现弹性伸缩、动态调度和优化资源利用。边缘计算中的云原生技术如上所述《物联网关键技术:边缘计算》,边缘计算技术已经广泛应用于物联网应用中,各种在云计算领域实践多年的云原生技术也可以引入到边缘计算场景中.在边缘计算场景中应用云原生技术,可以为边缘计算带来很多好处:体验:云原生技术使用统一的标准,在边缘基础设施和云端实现一致的体验。健壮性:基于云原生技术的边缘容器能力,可以保障弱网和断网的自治,并提供有效的自恢复能力。运维:实现大规模批量交付、运维和安全管控:提供安全的工作负载运行环境,以及流量控制和网络策略能力,有效提升边缘服务和边缘数据的安全依托强大的社区和厂商在云原生领域的支持下,云原生技术对异构资源的适用性逐步提升。在物联网领域,云原生技术已经能够支持多种CPU架构和通信协议,并实现低资源占用,这意味着云原生技术不仅可以应用于云端,还可以应用于边缘网络和终端设备。目前很多厂商都在尝试云原生边缘计算,也有一些成功的案例。适用于边缘计算的云原生容器技术主要分为两大类:微虚拟机(MicroVM)和沙盒(Sandbox)。微虚拟机技术所谓微虚拟机是指可以运行在容器环境中的虚拟机,既可以利用容器化的便捷和轻量,又可以考虑虚拟机的隔离安全性.AmazonAWS的Firecracker、OpenStackFoundation的KataContainer、VMWare的vSphereIntegratedContainers都属于微虚拟机技术。Firecracker是一种利用KVM的虚拟化技术,旨在创建和管理多租户容器和基于功能的服务。轻量级微型虚拟机可以在非虚拟化环境中在几分之一秒内启动,充分利用传统虚拟机提供的安全性和工作负载隔离,同时结合容器的资源效率。通过RESTfulAPI控制Firecracker进程可以精确控制同一台计算机上数千个虚拟机使用的网络和存储资源。KataContainers是由OpenStackFoundation管理的容器项目,但独立于OpenStack项目。KataContainers可以支持不同平台的硬件(如x86-64、arm等),符合开放容器规范(OCI:OpenContainerInitiative),也可以兼容k8sContainerRuntimeInterfaceSpecification(CRI:容器运行时接口)。这意味着KataContainer兼容容器生态中现有的各种产品,如docker、k8s等。Docker引擎过去使用runc启动容器,现在可以用kata代替。KataContainer可以作为docker插件,通过docker命令启动KataContainer。Kata最大的亮点在于解决了传统容器共享内核的安全和隔离问题。方法是让每个容器运行在一个轻量级的虚拟机中,使用单独的内核。k8s也使用kata代替runc创建容器k8s传统上默认使用runC创建容器。现在是使用katacontainer先创建虚拟机,然后在虚拟机中创建pod,更加安全。沙盒技术沙盒不同于传统的容器和微型虚拟机。容器通过namespace和cgroup实现资源隔离,而微虚拟机通过虚拟化技术实现资源隔离,而沙箱技术通过系统调用劫持和Redirection实现资源隔离。Google的gVisor就属于这类技术。gVisor在内核之外实现了一个“内核进程”,称为“哨兵”,可以提供Linux内核的大部分系统调用。用户进程进行的大多数系统调用都被转换为对该“哨兵”进程的访问。传统系统调用与gVisor沙盒系统调用的比较谷歌将gVisor定位为“沙盒”而非安全容器,主要是因为Sentry无法完全替代Linux系统内核,部分系统调用仍需中转至HostKernel。gVisor可以为容器进程提供安全的隔离措施,同时继续保持远优于虚拟机的轻量级特性。此外,gVisor还可以与Docker和Kubernetes集成,更容易在生产环境中构建沙盒容器系统。总结随着微虚拟机、沙箱等轻量级容器技术的出现,容器对系统资源的要求进一步降低,非常适合资源有限的边缘场景应用。边缘计算资源容器化,与云端一致。管理资源的方式。
