本文发表于一年多前。旧文章可能包含过时内容。请检查页面中的信息自发布以来是否已变得不正确。

Windows Server 支持来到 Kubernetes

编者按:这篇博文是关于 Kubernetes 1.5 新功能系列深度文章的一部分。

为了扩展为用户提供选择的主题,Kubernetes 1.5 版本包含对 Windows Server 的支持。随着超过 80% 的企业应用程序在 Linux 上运行 Java 或在 Windows 上运行 .Net,Kubernetes 正在预览扩展其覆盖范围到绝大多数企业工作负载的功能。

新的 Kubernetes Windows Server 2016 和 Windows 容器支持包含公共预览版,具有以下功能:

  • 容器化多平台应用程序 - 以前,用 Go 和 .NET Core 等操作系统中立语言开发的应用程序无法在 Linux 和 Windows 之间进行编排。现在,借助 Kubernetes 中对 Windows Server 2016 的支持,此类应用程序可以部署在 Windows Server 和 Linux 上,为开发人员提供了操作系统运行时选择。客户对这种能力的需求已经近二十年了。

  • 同时支持 Windows Server 容器和 Hyper-V 容器 - Windows Server 2016 中有两种类型的容器。Windows 容器类似于 Linux 上的 Docker 容器,并使用内核共享。另一种称为 Hyper-V 容器,比虚拟机更轻量级,同时提供更大的隔离性、自己的内核副本和直接内存分配。Kubernetes 可以编排这两种类型的容器。

  • 扩展的应用程序生态系统 - 在 Kubernetes 中引入 Windows Server 支持的关键驱动力之一是扩展 Kubernetes 支持的应用程序生态系统:IIS、.NET、Windows Services、ASP.NET、.NET Core 是现在可以由 Kubernetes 编排的应用程序类型,它们在 Windows Server 上的容器中运行。

  • 异构数据中心覆盖 - 组织已经使用 Kubernetes 在全球 2000 强和财富 500 强企业中托管了数万个应用程序实例。这将使他们能够将 Kubernetes 扩展到庞大的 Windows Server 足迹。

将 Windows Server 引入 Kubernetes 的过程是一个真正的多供应商合作,由 Windows 特别兴趣小组 (SIG) 牵头——Apprenda、Google、Red Hat 和 Microsoft 都参与了将 Kubernetes 引入 Windows Server 的工作。关于将 Kubernetes 引入 Windows Server 的社区工作,微软首席项目经理 Taylor Brown 表示:“这项新的 Kubernetes 社区工作进一步增强了对流行编排器中 Windows Server 容器的支持选项,重申了微软对 Windows 和 Linux 生态系统选择和灵活性的承诺。”

当前使用指南

| 何时使用 Windows Server 支持? | 目前,组织应开始在 Windows Server 上测试 Kubernetes 并提供反馈。大多数组织需要数月时间才能建立加固的生产环境,而通用可用性应在 Kubernetes 的接下来的几个版本中提供。 | | 什么有效? | 大多数 Kubernetes 构造,例如 Pods、Services、Labels 等,都适用于 Windows 容器。 | | 什么尚无效? |

  • 由于网络命名空间,Pod 抽象不相同。最终结果是单个 POD 中的 Windows 容器无法通过 localhost 进行通信。Linux 容器可以通过将它们放置在相同的网络命名空间中来共享网络堆栈。
  • DNS 功能尚未完全实现
  • 容器内不支持 UDP

| | 何时可用于所有生产工作负载(通用可用性)? | 目标是改进网络和其他需要改进的领域,以便在接下来的几个版本中为 Kubernetes 用户提供 Windows Server 2016 的生产版本支持,包括 Windows Nano Server 和 Windows Server Core 安装选项。 |

技术演示

路线图

Kubernetes 1.5 的 Windows Server 容器支持处于 Alpha 版本模式,但社区不止于此。客户希望为他们的整个技术组合提供企业级加固的容器调度和管理。这必须包括 Linux 和 Windows Server 在生产中的功能完全对等。通过几个关键投资领域,Windows Server SIG 将在 Kubernetes 的未来一两个版本中实现这种对等性:

  • 网络 - SIG 将继续与微软并肩工作,以增强 Windows Server 容器的网络骨干,特别是围绕点亮容器模式网络和对容器端点的原生网络覆盖支持。
  • OOBE - 改进 Windows Server 节点的设置、部署和诊断,包括部署到任何云(Azure、AWS、GCP)的能力
  • 运行时操作 - SIG 将在定义容器运行时接口 (CRI) 的监控界面方面发挥关键作用,利用它为基于 Windows Server 的容器提供深入的洞察和监控。入门

要开始在 Windows Server 2016 上使用 Kubernetes,请访问 GitHub 指南了解更多详细信息。
如果您想帮助支持 Windows Server,请联系 Windows Server SIG,或直接在 GitHub 上联系 SIG 负责人 Michael Michael。

| | | Kubernetes 在 Windows Server 2016 上的架构 |