當你把網站應用以 Deployment 多副本、且副本 Pod 分散在叢集內不同節點的方式部署到 Kubernetes 後,這樣就真的做到 Zero Downtime 了嗎?實務上,當某個節點要維護,Deployment Pod 在其他節點被重建時,儘管全程有 Running 的 Pod 能對外服務,使用者卻往往開始遇到連線失敗的問題。可是明明還有 Pod 全程活著,為什麼連線還是失敗了?
本場會以一個用 Go 寫的企業導覽網站為例,拆解應用程式自身的 Graceful Shutdown,搭配調整 Deployment 滾動式更新策略、Probes 與 preStop Hook,探討在 Deployment 滾動式更新的期間,Kubernetes 會「如何啟動與終止 Pod」與 「流量何時被導入新 Pod、何時從關閉中的 Pod 移除」這兩件事對齊。並透過持續對網站發送外部請求,實際驗證 Pod 在節點間汰換的全程是否真能做到 Zero Downtime,帶你掌握如何為網站應用實現 Zero Downtime 的關鍵技術細節。
聽眾收穫:
Session
進階
中文