Kubernetes PodDisruptionBudget 主動驅逐保護

目錄

場景

特性

參考示例


最近看代碼時,老是在代碼中能看到PDB 是什麼呢?Pod Disruption Budget (pod 中斷 預算),含義其實是 終止pod前 通過labelSelector機制獲取正常運行的pod數目的限制,目的是對主動驅逐的保護措施。

場景

  1. 節點維護或升級時(kubectl drain)
  2. 對應用的自動縮容操作(autoscaling down)
  3. 由於節點不可用(not ready)導致的Pod驅逐就不能稱之爲主動

特性

  1. PDB指定一個pod集合在一段時間內存活的最小實例數量或者百分比
  2. 作用於一組被同一個控制器管理的pod。例如:RC或者statefulapp
  3. 使用PodDisruptionBudget控制器本身無法真正保障指定數量或者百分比的pod存活,PodDisruptionBudget控制器只能保證POD主動逃離的情況下業務不中斷或者業務SLA不降級
  4. 場景侷限於:主動驅逐

主動驅逐的場景,用用如果能夠保持存活pod數量,將會非常有用。通過使用Pod Disruption Budget 對象,應用可以保證那些主動移除pod的集羣操作永遠不會同一時間停掉太多pod,導致服務中斷或者服務降級。

kubectl drain 操作時遵循PDB對象的設定,如果在該節點上運行了屬於統一服務的多個pod,則爲了保證最少存活數量,系統會確保每終止一個pod就會在健康的node上啓動新的pod後,再繼續終止下一個pod容器。

參考示例

kubernetes1.7新特性:PodDisruptionBudget控制器變化

Disruptions

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章