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