spec.strategy
定義升級策略,Deployment 的升級有兩種策略,一種是 RollingUpdate,滾動升級。顧名思義,就是一個一個 pod 進行升級,而不是同時停止整個服務。這個升級能保證整個升級過程中服務的可用性。另外一種就是 Recreate,先將舊 Pod 下線,再啟動新 Pod。 默認是使用 RollingUpdate。
所以 sepc.strategy.rollingUpdate 就是滾動升級的一些詳細策略:
- maxSurge: 在升級過程中,最多可以創建多少個 Pod。也就是說每次滾動的步長。該值不能為0。
- maxUnavailable: 在升級過程中,最多不可用的 pod 的數量。該值不能為0。
spec.progressDeadlineSeconds
k8s 在升級過程中有可能由於各種原因升級卡住(這個時候還沒有明確的升級失敗),比如在拉取被牆的鏡像,權限不夠等錯誤。那么這個時候就需要有個 deadline ,在 deadline 之內如果還卡着,那么就上報這個情況,這個時候這個 Deployment 狀態就被標記為 False,並且注明原因。但是它並不會阻止 Deployment 繼續進行卡住后面的操作。完全由用戶進行控制。
這個配置就是設置 deadline 的。單位為秒。
spec.revisionHistoryLimit
我們做的回滾操作並不是沒有代價的,代價就是舊版本的 ReplicaSet 會被保留,但是不會繼續提供服務了。當我們執行回滾操作的時候,就直接使用舊版本的 ReplicaSet。
這個配置就是控制保留多少個版本的 ReplicaSet
