SIG Windows聚光灯

这篇文章讲述了Kubernetes贡献者如何一起工作以提供适用于Linux和Windows的容器协调器的故事。

带有Kubernetes徽标的计算机的图像

大多数熟悉Kubernetes的人可能习惯于将其与Linux相关联。由于Kubernetes从一开始就在Linux上运行,因此连接很有意义。但是,许多采用Kubernetes的团队和组织都需要能够在Windows上协调容器。自从Docker发布以来,随着容器的普及,社区和Microsoft一直在努力使容器技术在Windows系统中像在Linux系统中一样易于访问。

在Kubernetes社区中,那些热衷于使Windows社区可以访问Kubernetes的人可以在Windows Special Interest Group中找到家。要了解有关SIG-Windows和Kubernetes在Windows上的未来的更多信息,我与共同主席进行了交谈。 马克·罗塞蒂迈克尔·迈克尔 有关SIG的目标以及其他人如何贡献的信息。

Windows容器和Kubernetes简介

Kubernetes是用于协调容器工作负载的最受欢迎的工具,因此要了解Kubernetes项目中的Windows特殊兴趣小组(SIG),重要的是首先了解当我们谈论在Windows上运行容器时的含义。


SIG(特别兴趣小组)联合主席Mark Rossetti和Michael Michael说:“在Kubernetes中查看Windows支持时,许多人开始对Linux容器进行比较。尽管有些比较突出了局限性,但对于区分操作限制和Windows和Linux操作系统之间的差异。Windows容器运行Windows操作系统,Linux容器运行Linux。”


本质上,任何“容器”都只是在其主机操作系统上运行的进程,并且具有一些关键工具将该进程及其依赖项与环境的其余部分隔离。目的是使运行中的进程安全地隔离,同时从系统中占用最少的资源来执行隔离。在Linux上,用于隔离进程以创建“容器”的工具通常可以归结为cgroup和名称空间(以及其他一些名称),而cgroup和名称空间本身就是内置在Linux内核中的工具。

使用狗的视觉类比来解释Linux cgroup和名称空间。

如果狗是进程:容器化就像使用cgroup为每只狗提供自己的资源,如玩具和食物,并使用名称空间隔离麻烦的狗。

本机Windows进程是已经或必须在Windows操作系统上运行的进程。这使得它们与Linux操作系统上运行的进程从根本上有所不同。由于Linux容器是被称为cgroups和命名空间的Linux内核工具隔离的Linux进程,因此对本地Windows进程进行容器化意味着在Windows内核本身中实现类似的隔离工具。因此,“ Windows容器”和“ Linux容器”是根本不同的技术,即使它们具有相同的目标(隔离进程)并且在某些方面也可以类似地工作(使用内核级容器化)。

因此,在Windows上运行容器时,实际上要考虑两个非常重要的概念:

  • 作为本机Windows Server样式容器运行的本机Windows进程,
  • 和运行在Linux内核上的传统Linux容器(通常托管在轻量级的Hyper-V虚拟机上)。

您可以在此了解有关Linux和Windows容器的更多信息 教程 来自微软。

Windows上的Kubernetes

Kubernetes最初是在考虑Linux容器的情况下设计的,而其本身旨在在Linux系统上运行。因此,Kubernetes的许多功能都涉及独特的Linux功能。特定于Linux的工作是有意的-我们都希望Kubernetes在Linux上最佳运行-但对Windows服务器进行类似优化的需求正在增长。对于用户需要在Windows上进行容器编排的情况,SIG-Windows的Kubernetes贡献者社区已结合了针对Windows特定用例的功能。


“我们遇到的一个常见问题是,我能否拥有一个仅Windows的集群。答案是否定的。Kubernetes控制平面组件将继续基于Linux,而SIG-Windows则专注于拥有Windows worker的经验。 Kubernetes集群中的节点。”


SIG-Windows社区并未分离“ Windows Kubernetes”和“ Linux Kubernetes”的概念,而是致力于向主Kubernetes项目添加功能,从而使其能够处理Windows用例。这些Windows功能反映了Kubernetes自2014年发布以来所服务的Linux用例,并在某些情况下增加了独特的功能(想了解更多历史记录? 原始设计文件.

SIG-Windows会做什么?


“ SIG-Windows实际上是Kubernetes中Windows所有事物的中心,” SIG主席Mark和Michael说, “我们主要侧重于计算方面,但实际上,与在Windows上运行Kubernetes有关的任何事情都属于SIG-Windows。”


为了最好地服务用户,SIG-Windows致力于使Windows和Linux用户的Kubernetes用户体验尽可能一致。但是,某些用例仅适用于一个操作系统,因此,SIG-Windows组还致力于创建仅Windows工作负载所独有的功能。

Kubernetes内的许多SIG或“特殊兴趣组”都有很窄的重点,使成员可以深入研究该技术的某个方面。虽然欢迎特定的专业知识,但对SIG-Windows感兴趣的人会发现它是一个不错的社区,可以在Kubernetes的许多重点领域建立广泛的了解。 “来自我们SIG界面的成员,包括Kubernetes中的存储,网络,测试,集群生命周期和其他组。”

SIG-Windows的用户是谁?

了解团队所采用技术的最好方法通常是了解其客户或用户是谁。

SIG主席分享道:“我们与之互动的大多数用户都拥有运行在Windows上的关键业务基础架构,这些基础架构已经开发了多年,并且由于各种原因(成本,时间,合规性等)而无法将这些工作负载迁移至Linux。” 。 “通过将这些工作负载传输到Windows容器中并在Kubernetes中运行,他们能够快速现代化其基础架构并将其迁移到云中。”

正如Kubernetes领域中的任何人都可以证明的那样,世界各地许多不同行业的公司都将Kubernetes视为其基础设施现代化的途径。通常,这涉及重新设计架构或完全完全颠覆他们开展业务的许多方式。目标是使他们的系统更具可扩展性,更强大,并且为将来可能带来的一切做好准备。但是并不是每个应用程序或工作负载都可以或应该更改其运行的核心操作系统,因此许多团队需要能够在Windows或Linux或两者上大规模运行容器的能力。

“有时,Windows容器的驱动程序是一项现代化的工作,有时是由于当前操作系统的硬件保修期或支持终止周期到期。我们在SIG-Windows中所做的努力使Windows开发人员能够利用云原生工具和Kubernetes更快地构建和部署分布式应用程序。这令人兴奋!实质上,用户可以保留应用程序可用性的好处,同时降低成本。”

谁是SIG Windows?

这些贡献者是谁,为Kubernetes启用Windows工作负载?可能是你!

像其他Kubernetes SIG一样,SIG Windows的贡献者可以是从独立爱好者到在许多公司工作的专业人员。他们来自世界各地,并带来了许多不同的技能。

好几个人聊天的形象

“与大多数其他Kubernetes SIG一样,我们是一个非常受欢迎且开放的社区,” SIG联合主席Michael Michael和Mark Rosetti解释说。

成为贡献者

对于有兴趣入门的人,联合主席补充说:“新贡献者可以在GitHub上查看旧的社区会议(我们记录了三年以来的每一次会议),阅读我们的文档,参加新的社区会议,亲自或在网上提问放松一下,并在Github上提交一些问题。我们还参加了所有KubeCon会议,并主持了1-2次会议,一次贡献者会议以及与维修人员开会的时间。”

共同主席还共同介绍了成为SIG-Windows社区成员的道路:

“我们鼓励新的贡献者开始只是加入我们的社区并倾听,然后开始提出一些问题并在Kubernetes的Windows上接受教育。他们感到很舒服,他们可以逐步改善我们的文档,提出一些bug /问题,最终他们可以修复一些错误即可成为代码贡献者。如果他们长期和持续对Windows做出重大贡献,则可以成为SIG-Windows的技术主管或主席。除非您开始使用,否则您将不知道自己是否喜欢这一领域。 :) 开始, 访问此入门页面。这是一站式商店,可链接到Kubernetes中与SIG Windows相关的所有内容。”

当被问及新贡献者是否有有用的技能时,共同主席说,

“我们一直在寻找Go和网络与存储方面的专业知识,以及对Windows的热情。这些都是非常重要的技能。但是,我们不需要这些技能,我们欢迎任何和所有贡献者,他们拥有不同的技能如果您不了解某些内容,我们将帮助您获取。”

您可以在SIG Windows中与他们联系 松弛通道 或参加他们的例行会议之一-目前在美国东部标准时间星期二12:30 PM持续30分钟!您可以找到他们的例行会议的链接,以及以往会议记录和会议记录中的链接。 SIG Windows自述文件 在GitHub上。

作为SIG Windows的结束语:


“我们欢迎您加入我们的社区,并分享反馈和部署故事,并为代码,文档和各种改进做出贡献。”