Linux 与 Windowshtml
众所周知,Windows 的应用没法运行在 Linux上,而 Linux 应用也没法运行在 Windows 上。可是,事实上,当 Docker 将容器做为一种显著的打包应用的方法,而且能够在“任意地方”封装它的时候,这里的“任意地方”就已经包含了“Linux”。Windows 也有容器,可是要让全部工做都一块儿运行仍是不太可能的。linux
可是,今天 Kubernetes1.5 的发布,让 Linux 和 Windows 一块儿运行的梦想可以实现了。数据库
Kubernetes1.5 (alpha 版本)支持 Windows 服务器容器,跟 Docker 相似,他们共享同一个内核模式;而 Hyper-V 容器的单核模式则为多租户环境提供了更好的隔离(代价是延迟时间更长了)。最终的结果就是,在你建立的这个 Kubernetes 集群上,Linux 节点能够运行 Linux 容器,Windows 节点能够运行 Windows 容器;同时,Linux 节点也能够运行 Windows 容器,Windows 节点也能够运行 Linux 容器,真正实现混合集群。好比,单个 service 容许 Pod 使用 Windows 服务器容器,也容许其它的 Pod 使用 Linux 容器。windows
虽然 Kubernetes1.5 功能全面,可是也有它的局限性,好比:服务器
Kubernetes 是由 Go 语言编写的,以致于它带有必定的依赖性,因此 Kubernetes master 必须运行在 Linux 上。若是端口映射到 Windows 也是能够的,可是技术团队更愿意把主要精力放在客户组件上。网络
Windows 本地不支持网络叠加功能的容器,因此网络就被限制在了 L3。(虽然问题也有其它的解决办法,可是这些办法都不支持本地。)Kubernetes Windows SIG 正在跟 Microsoft 协同工做解决这些问题,但愿明年发布的 Kubernetes1.6 版本中,这些问题都可以获得解决。分布式
Windows 容器间的网络更加复杂,由于每一个容器都有本身的网络 namespace,因此推荐使用单个容器 pod。spa
运行在 Windows 服务器上的应用可以以任意 Windows 支持的语言运行。能够在 Linux 容器中运行 .NET 应用,可是前提是这些应用必须是用 .NET Core 写的才能够。Nano 服务器操做系统也支持 .NET core,并且还能够部署在 Windows 服务器容器上。操作系统
此次 Kubernetes1.5 的发布也支持 IIS(目前它占据了网上 11.4% 的江山)和 ASP.NET。视频
Apprenda 努力开发 Kubernetes,就是为了让企业既可以享受 Kubernetes 带来的益处,同时还可以有效利用他们已有的 Windows 资源。“咱们的策略就是给咱们的企业客户提供坚决使用 Kubernetes 的理由。要作到这点,没有 Windows 的支持是不行的。2016 年 3 月,咱们承诺 Kubernetes 会支持 Windows 服务器,咱们在此次发布的 1.5 版本中作到了。”Apprenda CEO,Sinclair说道,“咱们会在编排 Windows 服务器容器、Hyper-V容器的时候,将所有功能交付到 Linux 上,使机构组织者能够为他们的分布式应用得到单个控制面板。”
如下是 Apprenda 的高级产品总监介绍了各项功能的视频 demo,点击查看:
https://v.qq.com/x/page/t0355o1ln4k.html
Kubernetes 其他功能
Kubernetes 1.5 (beta 版本)也支持StatefulSets(由 PetSets 更名)。由 Kubernetes 管理的 ReplicaSets 和 Pods,会变成无状态,因此,若是这些功能不使用,或者用不到的话,就会变成“一次性”应用。可是在某些状况下,好比数据库,集群软件(好比 RabbitMQ 集群),或者其它旧的有状态对象,可能性就比较小了。StatefulSets 提供更加具体的辨识资源的方法,这样更好维护这些项目之间的联系。
Kubernetes1.5 还包括了一些早期所作的努力,好比让 Kubernetes 部署符合 OCI 标准的容器等等。
原文连接:
https://www.mirantis.com/blog/linux-windows-living-together-total-chaos-ok-kubernetes-1-5/?mkt_tok=eyJpIjoiWXpSa09EZzROV1F3WXpnMyIsInQiOiJUaDlmWEpSNTRjWEI3SFlkMm9SYnFudkJuQmRSbnd0Y1hzY2xBV3MzanpLYTFINzV1ZFA5MndZTE1tVGJadUhmZVVcL1VDdURqd282c1dodWFtYUJ6SUFOSGZJV3ZrNUJNcmtQTTJpdk9rWFRtVE5XUWRzc3pjSVJYbU9lb0hZdzUifQ%3D%3D