完成Docker EE for Windows在Swarm最後一哩Routing mesh(Ingress Mode)

完成 Docker EE for Windows 在 Swarm 最後一哩 Routing mesh(Ingress Mode)

在 Docker Enterprise Edition for Windows Server (簡稱 Docker EE for Windows) 架設與使用 Swarm Mode 時,一定會碰到一個問題,就是目前 Docker EE for Windows 還不支援 Swarm Mode 裡重要的 Routing mesh(又稱 Ingress mode) 功能。

在 Microsoft Docs 文件並沒有把話寫死,它寫著 "coming soon",讓我心裡一直有個希望的種子。

routing-mesh-coming-soon

沒有 Routing mesh(Ingress mode) 功能的 Swarm Mode,在僅有的 publish-port mode (mode=host) 下有如半殘狀態,照著官方文件,使用 --publish mode=host,target=80 來部署個 iis service,保證讓你哭,Swarm 會直接 Crash,而且更好笑,公司使用 VM,Swarm Crash 之後,遠端桌面會也跟著斷,然後你就連不上了。只能請管 VM 的同事進行本機登入來排除問題。

不過,不是沒有好消息,在 Docker’s routing mesh available with Windows Server version 1709 說明,在 Windows Server Core 1709 與 Docker Enterprise Edition Preview 已經支援 Routing mesh(Ingress mode)。

在 Test / Staging 環境用 Docker Enterprise Edition Preview 怎麼玩怎麼 Crash 都沒問題,但要放到 Production 使用的東西,那個 Preview 總是讓我心裡不安。

最近 6、7 月,Docker EE Engine 有進行新版 18.x.x 的發行,一直關心的 Routing mesh(Ingress mode) 與 LCOW 兩個核心一直看不到消息。LCOW 在 github 上可以看到有在更新進行,那是個大專案,我們只能等,我猜會在 Windows Server 2019 身上看到它的影子。但一個去年 9 月就在 coming soon 的 Routing mesh(Ingress mode) 怎麼都沒消息?

我想知道怎麼了。

我跑去 Docker’s routing mesh available with Windows Server version 1709 留言,不知為何,連出現在下面留言版的機會都沒有。不死心,文中留有一個 sdn_feedback@microsoft.com,寫信去問,沒人理我。在 docker / for-win 發現去年就有人在問了,最後一則留言是今年 2 月,雖然知道沒什麼希望,但還是跟風在問一次,結果,當然還是沒人理我。心灰意冷,再不死心一次,在 Microsoft Docs - Getting Started with Swarm Mode 原始文件下去留言,說這個 coming soon 也太久了吧(心想,滿一年我就去放生日蛋糕!)。

結果,有人理我了:

Feedback common

二話不說,立即打開 Azure 使用 Windows Server, version 1803 with Containers 建了二台 VM 進行測試,預設 Based Images 內建 Docker EE Engine 17.x.x,移除重裝 Docker EE Engine 18.03.1-ee-2 (2018-07-10)(移除 Docker 可參考之前的 Label Docker 文章)。

docker service create --name web --replicas 2 --publish 8080:80 --constraint 'node.labels.osrole==frontend' microsoft/iis:windowsservercore-1803

我使用 --constraint 把 service 的 task 留在 Host 1 上面,但整個 Swarm 上的 node 都能存取到 web service,而且同有時 web.1 與 web.2 在提供服務。

Windows Container, Routing mesh
圖片來源:Docker’s routing mesh available with Windows Server version 1709

Docker EE for Windows 除去 LCOW 這個非 Docker 原生功能不談,現在整個 Docker EE for Windows 在完成 Swarm Routing mesh(Ingress Mode) 最後一哩功能後,它是一個可以上 Windows Production 的產品了。

沒有留言:

張貼留言

感謝您的留言,如果我的文章你喜歡或對你有幫助,按個「讚」或「分享」它,我會很高興的。