Windows 10 容器是未来的趋势以下是你需要知道的

微软在Windows上提供了许多不同的容器模型。如果你运行的是Windows 10,那么你就运行了好几个,而你自己都没有意识到:包装和隔离所有的UWP应用程序;使用瘦虚拟机来提供安全性;如果您是开发人员,可以使用Windows或Linux Docker实例。

这种分层容器模型是Windows未来的关键——它可以进入即将到来的Windows 10X,并延伸到更广阔的公共和私有云世界,Docker Windows容器现在正式成为Kubernetes的一部分。微软正在努力缩小Windows服务器,以产生更强大的Windows轻量级容器基础映像。

尽管桌面容器旨在简化和保护桌面应用程序,为通过appx或MSIX安装的应用程序(以及在Windows 10X中安装的任何其他Win32代码)提供急需的隔离,但Windows 10的容器基于Windows自己的进程隔离技术。它不是我们在云托管企业应用程序中找到的熟悉的Docker模型。

这并不是说Windows 10不能运行Docker容器。微软正在使用Docker的服务来支持其Windows服务器容器。您可以在Windows pc上构建和测试运行在其中的代码,运行专业版或企业版,而即将发布的2004版Windows 10带来了WSL2和对运行在Windows上的Linux容器的支持。

Docker一直在围绕WSL2开发针对Windows的Docker桌面工具的新版本,这使得在Windows 10上开发和测试Linux容器与在Windows自己的容器上工作一样容易。随着微软将Windows定位为Kubernetes和其他云平台的开发平台,在Windows pc上提供一流的Docker支持至关重要。

它不仅仅是云中的Linux容器。Windows容器也有自己的位置,可以托管. net和其他Windows平台。不需要在云服务中部署SQL Server或其他Windows Server应用程序,您可以将其安装在容器中,并将代码作为DevOps CI/CD部署的一部分快速部署。现代DevOps将基础设施(尤其是虚拟基础设施)视为构建的最终状态,因此将容器中的组件应用程序视为许多不同类型的构建构件之一是很有意义的。

这里重要的不是应用程序,而是如何编排和管理它。这就是Kubernetes的作用,以及RedHat的OpenShift Kubernetes服务。最近的版本在Linux之外增加了对Windows容器的支持,从同一个控制器管理这两个容器。

虽然OpenShift和Kubernetes现在都支持Windows容器,但它们实际上并没有在Linux主机上运行Windows容器。他们没有理由不使用与Docker类似的技术在Windows上运行Linux容器。然而,Windows Server相对严格的许可条件要求为每个承载Windows容器的虚拟机实例提供Windows许可。

在Kubernetes中使用Windows容器意味着构建混合Linux和Windows主机的混合基础设施,Windows容器在Windows服务器支持的工作节点上运行。使用OpenShift或Azure Kubernetes服务这样的工具可以自动将代码放置到这些工作人员的位置上,为您的应用程序管理一个跨os集群。. net代码可以被提升到一个Windows Docker容器中,并通过Azure容器注册表进行部署。您可以从与Linux节点相同的控制器中管理这些节点。

参见:无服务器计算:IT领导者指南(TechRepublic Premium)

如果您是从Linux转到Windows容器,那么不需要学习任何新知识。您使用熟悉的Docker工具来构建和管理容器映像,然后使用与纯Linux应用程序相同的Kubernetes工具。在一个应用程序中混合和匹配Windows和Linux微服务,允许您利用特定于操作系统的特性,并保留现有开发团队的专业知识,即使您正在从传统的单片应用程序环境切换到现代的分布式系统。

微软正在构建一套开源工具来帮助管理Windows容器,第一个工具是一个GitHub存储库,一个日志工具。改进日志记录对于分布式应用程序是有意义的,因为在分布式应用程序中,多个容器在Kubernetes操作人员的控制下进行交互。

在Kubernetes之外,Windows服务器上的Windows容器有两种不同的隔离模式。第一种是进程隔离,它与Linux容器使用的隔离类似,在一个主机操作系统上运行多个映像,对所有映像和主机使用相同的内核。名称空间使进程保持隔离,适当地管理资源。当您知道服务器上运行的所有进程是什么,并确保在不同的容器映像之间没有信息泄漏的风险时,最好使用这种方法。共享内核带来的小的安全风险就是为什么微软提供了一个更安全的替代方案:隔离容器。

在Windows Server隔离容器的引擎盖下,当然是Hyper-V。微软一直在使用它来改善Windows上Docker容器的隔离,使用一个运行在Hyper-V上的瘦操作系统层来托管一个Docker容器映像,在保证容器完全隔离的同时保持性能。虽然每个容器在技术上都是一个拥有自己内核的虚拟机,但是它们针对运行容器映像进行了优化。以这种方式使用虚拟化在容器映像之间增加了一层硬件隔离,使它们之间的信息更难泄漏,并为您提供了一个可以为您托管多个租户映像的平台。

它很容易使和运行一个Hyper-V容器。你所需要做的就是将Docker命令行中的隔离参数设置为“hyperv”,它将使用虚拟化来启动容器来保护它。桌面电脑默认使用Hyper-V,服务器使用Docker隔离。因此,您可能更愿意在您的Windows服务器容器主机上强制使用Hyper-V容器。

微软一直在努力减少用于Windows容器的Hyper-V服务器映像的大小。在即将到来的2004年版本中,它的大小从Windows Server 1809和1903的近5GB下降到2.46GB的一半。那是Windows服务器内核,不是Nano!构建在Windows Server Core上是有意义的,因为它有一个更大的API表面,减少了应用程序不兼容的风险。

有了两个用于其容器的用例,以及五个不同的容器模型,似乎微软的容器策略已经到了混淆的时候了。但事实并非如此。Windows自己的应用程序隔离技术是由安装程序自动管理的,因此您需要考虑的是服务器应用程序是使用进程隔离还是在Hyper-V中运行。这个决定最好由您是在自己的数据中心的服务器上运行应用程序,还是在公共云中运行。

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时候联系我们修改或删除,多谢