2016-04-11 35 views
0

我們有一個要求,即在進行滾動部署時沒有任何請求會收到404的請求。目前我們通過在繼續進行滾動部署之前將新資產容器部署到所有服務器來實現這一目標。藉助nginx的「try_files」,可以確保隨着新代碼的推出,我們可以提供新舊版本的資產。 Kubernetes是否有任何功能來支持這種類型的工作流程?當靜態資產發生變化時,Kubernetes是否有設施來支持零停機時間部署?

回答

1

您可以使用Deployment API(用於Kubernetes> = 1.2)或kubectl rolling-update(用於< V1.2)來管理Kubernetes Pod S的滾動部署(每個集裝箱是和體積的協同定位組) 。您還需要創建Service s來訪問那些Pod s(Service s將流量重定向到Pod s)。在滾動部署期間,用戶將被重定向到具有舊版本或新版本資產容器的Pod

0

一種可能性是使用Deployments。您可以使用多個副本運行部署。

現在,當您更新到新版本時,部署會注意刪除一箇舊版本,並且一個接一個地添加新版本,直到完全推出新版本。該網絡的部署策略可以

當提供靜態文件運行在波德的nginx的,我建議增加以下到您的容器規格:

lifecycle: 
    preStop: 
    exec: 
     command: ["/usr/sbin/nginx", "-s", "quit"] 

這將波德之前發送QUITSignal你的nginx正在被毀壞。這樣,您可以確定在服務器關閉之前,nginx不會接受任何新連接。

相關問題