# Kubernetes 的 Windows Server 支持

响应群众呼声，[Kubernetes 1.5](http://blog.kubernetes.io/2016/12/kubernetes-1.5-supporting-production-workloads.html) 包含了对 Windows Servern 的支持。[80%](http://www.gartner.com/document/3446217) 的企业应用运行于 Linux + Java 或 .Net + Windows 平台上。Kubernetes 正在 Preview 阶段的这一功能，是贴近企业需求的一次努力。

Kubernetes Windows Server 2016 以及 Windows 容器支持包含了下列功能的预览版本：

- 容器化的多平台应用

使用操作系统原生语言，例如 Go 和 .NET 核心开发的应用，在以前是不可能再 Linux 和 Windows  之间进行编排的。现在 Kubernetes 有了 windows Server 2016 支持，这些应用就能够同时部署在 Windows 和 Linux 之下了，开发者可以自行选择操作系统运行时。这一功能，消费者已经等了 20 年了。

- 同时支持 Windows Server 容器和 Hyper-V 容器

Windows Server 2016 有两种类型的容器。Windows 容器会共享内核，比较像 Linux 的 Docker 容器。Hyper-V 容器比虚拟机轻量，同时还提供了更好的隔离。他具有独立的内核，直接的内存访问。Kubernetes 对这两种容器都有编排能力。

- 扩展应用生态

为 Kubernetes 添加 Windows Server 支持的一个好处就是扩展了 Kuberntes 应用的生态环境：IIS，.NET，Windows 服务，ASP.NET，.NET 核心，以及一些其他类型的应用现在可以以 Windows Server 容器的形式被 Kubernetes 调度了。

- 支持更多数据中心 

包含全球 2000 以及财富 500 的很多企业采用了 Kubernetes，托管了几万个应用。加入 Windows 支持之后，这些组织就可以更近一步的将 Windows 应用纳入 Kubernetes 进行管理了。

将 Windows Server 支持加入 Kubernetes 的过程由 [Windows Special Interest Group(SIG)](https://github.com/kubernetes/community/blob/master/sig-windows/README.md) 牵头完成，其中包含了 Apprenda、Google、Red Hat 以及微软等众多厂商。微软的首席项目经理  Taylor Brown 表示：社区工作进一步推动了 Kubernetes 的 windows 容器支持，落实了微软对 Windows 和 Linux 两个生态系统的支持承诺。

## 使用指南

- 在哪里使用？

现在就可以开始进行测试，并提供反馈。未来的几个月里，这一功能将会进入 GA 状态，可以在这段时间差进行生产环境的设置。

- 能怎么用？

多数的 Kuberntes 对象，比如 Pods，Services，Labels 都和 Windows Container 兼容。

- 还有什么没完善？

> 因为网络命名空间的问题导致的 Pod 抽象差异。同一个 Pod 内的 Windows 容器无法利用 localhost 进行通信。Linux 容器就可以利用网络命名空间来共享网络栈。
- DNS 能力实现不完整
- 容器内不支持 UDP

- 什么时候可用？

> 需要再等几个发布周期。在 GA 之前，要理顺网络和一些其他的事情，包含 Windows Nano 和 Windows Server Core 的支持。

## 技术演示

## Roadmap

在 Kuberntes 1.5 中，Windows Server 容器支持正处于 Alpha 阶段，当然并不会止步于此。客户希望获得企业级的稳定的容器调度和管理功能，来支撑整个技术路线。这要求我们对 Windows 和 Linux 一视同仁。Windows Server SIG 将在未来的发布中做出以下增强：

- 网络 SIG 会持续同微软的合作来增强 Windows Server 容器的网络核心，尤其是容器模式的网络，以及本地叠加网络的支持。
- OOBE 增强 Windows Server Node 的设置部署和检测功能，包括在任何云上部署的能力。
- 运行时操作 定义 CRI 监控的过程中，SIG 将在其中扮演重要角色，将为 Windows Server 容器提供深入的监控能力。

## 起步

请查看 [Github](http://kubernetes.io/docs/getting-started-guides/windows/) 获取更多细节信息，以便尝试 Windows Server 2016 上的 Kubernetes。如果读者愿意帮助促进 Windows Server 支持，请联系 [Windows Server SIG](https://github.com/kubernetes/community/blob/master/sig-windows/README.md)，或者联系 SIG Lead [Michael Michael](https://github.com/michmike)。
