2017-04-04 40 views
1

我有一個包含前端nginx的10個應用程序容器的堆棧。在堆棧中部署新的應用程序容器映像時,如果我運行apachebenchmark或gatling測試,我會看到〜1-2%的失敗請求。如果我在部署期間發送約100次請求/秒,則約2次請求失敗。碼頭羣模式(docker 1.13和compose v3)真的提供零停機滾動更新或部署嗎?

雖然經歷了日誌,但看起來差異僅僅是1-2毫秒的失敗。 Nginx發送請求& swarm將應用程序容器取下來& nginx給出502錯誤。

錯誤日誌(請參閱響應時間 - 0.002) -

23 Mar 2017 11:07:35.047 192.168.50.68 - - [23/Mar/2017:05:37:34 +0000] "GET http://dev-hapdocker-01/feeds HTTP/1.1" 502 173 "-" "-" 0.002- Context 

我懷疑這可能是一個問題,如果你的機器是在速度較慢的側面位。

讓我知道如果我失去了一些東西。只是想知道在滾動更新或部署過程中如何設計羣集模式,他們是否認爲它的宕機時間爲零? (我啓用了所有健康檢查)。

回答

2

我們用DotNet Core來做這件事,但它意味着兩端(giggity)的很多工作。您需要確保您的圖像是準備在實例化的時刻啓動。在編譯語言中,你需要確保所有的構建操作都在容器實例化之前完成,IE在構建階段。

這意味着只要服務更新圖像,它就基本上在該時間點運行。接下來你需要考慮的是將update-delay標誌添加到服務更新語句中。

如果你這樣做搬運工服務更新--image新/圖片:版本--update-延時10s,

該服務將重建與服務上的容器之一,但會等待10秒鐘移動到前下一個。它需要一些規劃,並且我總是會在羣主機前擁有一個應用程序負載平衡器,但我們無任何問題地對其進行管理。