NET应用的上云之路 Windows 容器化技术初探.docx

上传人:王** 文档编号:1351964 上传时间:2024-06-21 格式:DOCX 页数:5 大小:35.59KB
下载 相关 举报
NET应用的上云之路 Windows 容器化技术初探.docx_第1页
第1页 / 共5页
NET应用的上云之路 Windows 容器化技术初探.docx_第2页
第2页 / 共5页
NET应用的上云之路 Windows 容器化技术初探.docx_第3页
第3页 / 共5页
NET应用的上云之路 Windows 容器化技术初探.docx_第4页
第4页 / 共5页
NET应用的上云之路 Windows 容器化技术初探.docx_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《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方式运行,本次

8、选择了更为稳定的Windows服务方式,经验证节点重启后可以自动加入集群。(二)基础镜像选择微软提供提供四种基础镜像供不同种类的应用选择,见下表:NanoServer支持.NETCOre应用WindowsServerCore支持传统.NETFramework应用Windows提供完全的WindOWSAPIWindowsIoTCore为IoT应用专用其中NanoServer和WindowsServerCore为最常用的选择,NanoServer的优势是仅为.NETCore构建,镜像大小相比ServerCore小得多。ServerCore除提供.NETFramework支持外,还内置了POWerS

9、he11、WMl等功能。我行现有的.NETFramwork应用上云,如不考虑改造为.NETCore应用,则应选择WindowsServerCore作为基础镜像。基于WindowsServerCore,微软又提供了如下镜像供选择:windows/servercoreservercore基础镜像windows/servercore/iis在servercore基础上加入iis功能dotnetframeworksdk用于.NETFramework应用开发测试及编译dotnetframework/aspnet在servercore基础上加入iis及支持dotnet/framework/runtime用

10、于在生产环境运行.NETFramework应用根据应用种类和场景选择基础镜像后,再根据内核版本确定镜像标签,即可完成基础镜像选择。需要注意的是,微软官方仓库里的镜像每月会有更新,为保持一致性,在下载镜像时最好在tag中明确指定哪个月份的更新。(三)镜像制作在本小节,我们使用iis作为基础镜像制作一个最简单的网站镜像。DOCkerfne如下:FROMCOPYindex.htmlinetpubwwwroot其中index.html内容为:HellofromWindowsContainer!使用如下命令进行打包:dockerbuild-tiis-site.(四)本地运行使用如下命令在本地运行:doc

11、kerrunrm-dnameiis-p5000:80iis-site在浏览器中访问localhost:5000,出现如下页面证明运行成功。Iocalhost5000/+GfCQ。IocaIhostS(XX)HellofromWindowsContainer!可以使用命令dockerexec-itiispowershell登入运行的容器,并查看.NETFramework版本为4.8,如下图。VindoysPowerShellCopyxight(C)MicrosoftCoXPOXStion.Allrightsreserved.xythenewcross-platfoxnPovezShellhttp

12、s:/aka-nspscoxe6PSC:GetHIindovsFeatuxeDisplayKaeNMeInstallStateIXJ.NETFxanework4.8FeaturesNET-FzaaeworkHS-Fea.InstalledX.METFxaMVark4.8NET-FXaterOHkT5YoxeInstalledASP.HET4.8HET-Fxaework-45-ASPMETAvailableXVCFServicesHET-VCF-Services45InstalledHTTPActivationKET-VCF-mP-Activat.AvailableMessajeQueUing(

13、MSMQ)ActivationKET-VCF-MSMQ-Activat.AvailableManedPipeActivationKET-VCF-Pipe-Activat.AvailableTCPActivationKCT-VCF-TCP-Activati.Available(XTCPPortSharingREr-VCF-TCP-PortShar.Installed上图中有许多功能未开启,可以使用Add-WindowsFeature在制作镜像时添加Windows功能。和1.inux容器只能看到一个进程不同,在Windows容器中可以看到除应用外的其他多个进程。PSC:Get-processSIP

14、rocessNameIdUCpHandlesNPM(K)1CExecSvc1conhost1CSrSS1f0ntdr50stOIdle1Isass1Jiisdtc1powershell1ServiceMonitor1servicesOSmSS1svchost1svchost1svchost1svchost1svchost1svchost1svchost1svchost1svchost1svchost1svchostOSystem一80886(Il8(0004840864040260288248080885840635890636564229401123445562111111111111265

15、2Oa2OO.66O.24010040l330060SO.3.SO.1.S64.S61.S61.S6O.S004288006246846026602004牙583448ol2142J5al9s2944049867730122509280746810444229946108038481576171IZIll2166008426866QQ2842686QO4国34a2411693294219090a216795880064785501345141132321221275413141i1571500365933594542728401214IlZII3121OI39300692008746931852960529176(a61u38572523281341141231(五)在k8s上部

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > windows相关

copyright@ 2008-2023 yzwku网站版权所有

经营许可证编号:宁ICP备2022001189号-2

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!