NET应用的上云之路 Windows 容器化技术初探.docx
《NET应用的上云之路 Windows 容器化技术初探.docx》由会员分享,可在线阅读,更多相关《NET应用的上云之路 Windows 容器化技术初探.docx(5页珍藏版)》请在第壹文秘上搜索。
1、一、引言容器化技术是当今技术浪潮中支撑微服务和DevOps的重要推动力量。虽说DOCker容器技术源自1.inUX内核相关技术,但微软、DoCker及KUberneteS社区也在不断完善WindoWS操作系统对容器化的支持。自vl.14版本起,Kubernetes对Windows容器的支持进入稳定阶段。本文试从Windows容器化技术相关概念出发,对WindoWS.NET应用上云之路的相关问题进行探讨。二、Windows容器化技术(一)WindoWS容器类型相对于传统硬件虚拟化技术,容器技术更加轻量,其代价是容器中应用的运行仍一定程度上依赖于宿主机的操作系统内核提供的能力,多个容器共享宿主机的
2、操作系统内核。也正是因为这个原因,Windows容器无法在1.inUX上运行,1.inux容器也无法在WindoWS上运行。为提供容器化能力,WindOWS自SerVer2016版开始逐渐加入了内核命名空间、控制组群、分层文件系统等内核功能,以提供类似1.inux的容器化能力。事实上,WindoWS支持两种类型的容器运行时:进程隔离和HyPer-V隔离。两种隔离模式可以在运行容器时以参数方式指定。ProcessIsolationHyper-VIsolationUser-modeContainerApplication1Binaries.1.ibranesBinaries.1.ibrariesN
3、TKernelContainerContainerApplication2Application3Hyper-VVMUser-modeContainerApplication5Binaries.1.ibrariesNTKernelHyperVhypervisorHardwarelayer进程隔离,也称为WindoWSSerVerCOntainers,WindOWSSerVer上的默认隔离模式。在该模式下,宿主机上的多个容器共用该宿主机的操作系统内核,有一定的安全风险,只适用于私有云环境。同时由于共享内核,容器的内核版本应与宿主机的内核版本保持一致,即WindowsServer2019宿主机上只
4、能运行WindowsServer2019的容器。HyPer-V隔离,是上述模式的扩展,WindoWSlO上的默认隔离模式。在该模式下,每个容器独立运行于高度优化的虚拟机至上,不共享宿主机内核,因此可以运行其他版本的内核甚至是1.inux内核。但需要注意的是只能运行相同或更老版本的内核,如WindowsServer2019宿主机除了可以运行WindowsServer2019容器外,还可以运行WindoWSSerVer2016容器,而无法运行1903或者1909版本的容器。(二)1.inux容器VSWindOWS容器与1.inux容器相比,Windows容器存在以下主要特点:1、如上所述,Wind
5、OWS容器内核版本与宿主机内核版本存在强绑定,即使使用HyPer-V模式也只是增加了对运行更旧内核版本的容器的支持。而在1.inUX上,只要内核版本高于3.10,任何版本内核的容器都可以运行。2、基础镜像较大。完整的WindowsServer镜像servercore大小约为1.5G,最小化的基础镜像nanoserver约为100M,而对应的alpine1.inux只有5M左右。3、Hyper-V隔离理论上还能支持1.inux容器。1.COW(1.inUXCOntainerSonWindoWS)就是使用Hyper-V隔离支持1.inUX容器,在最新的DockerforWindows中可以作为一项
6、实蔡功能开启。即将发布的WS1.2(WindoWSSUbSyStemfor1.inUx2)由于使用了Hyper-V,也可以实现对1.inux容器的支持。(三)Kubernetes对Windows的局限Kubernetes对Windows的支持还在不断成熟过程中,目前已知存在以下局限性:1最低要求WindowsServer2019及DockerEEl809o2、Kubeadm对纳管Windows节点的支持尚为beta阶段,目前纳管Windows的方式较繁琐。3、目前只支持进程隔离模式,在该模式下无法对容器内存上限作出限制。4、WindOWS支持的CNl插件极少,异构集群还需要插件同时支持1.in
7、UX和WindOWS节点,因此Flannel成为最常用的选择。目前对FIannel的host-gw后端支持为Stable,对vxlan后端支持仍为Alphao5、不支持NFS类型的存储。三、已有.NET应用迁移上云(一)测试环境搭建目前Kubernetes对Windows节点的支持方式为作为工作节点纳管,本次测试环境为Kubernetesv1.17,Windows节点为WindowsServer2019DockerEE18.09,网络方案选择为Flannel的vxlan模式。WindOWS节点上的Flanneld和Kube-Proxy支持以WindOWS服务或者DaemonSet方式运行,本次
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- NET应用的上云之路 Windows 容器化技术初探 NET 应用 容器 技术 初探