kubernetes調度之 PriorityClass


系列目錄

kubernetes支持多種資源調度模式,前面講過簡單的基於nodeNamenodeSelector的服務器資源調度,我們稱之為用戶綁定策略,下面簡要描述基於PriorityClass的同一node下不同pod資源的優先級調度,我們稱其為搶占式調度策略

現在版本支持Pod優先級搶占,通過PriorityClass來實現同一個Node節點內部的Pod對象搶占。根據 Pod 中運行的作業類型判定各個 Pod 的優先級,對於高優先級的 Pod 可以搶占低優先級 Pod 的資源。Pod priority指的是Pod的優先級,高優先級的Pod會優先被調度,或者在資源不足低情況犧牲低優先級的Pod,以便於重要的Pod能夠得到資源部署.

定義PriorityClass對象:

apiVersion: scheduling.k8s.io/v1alpha1
kind: PriorityClass
metadata:
name: high-priority
value: 1000000
globalDefault: false
description: "This priority class should be used for XYZ service pods only."

在Pod的spec. priorityClassName中指定已定義的PriorityClass名稱

apiVersion: v1
kind: Pod
metadata:
name: nginx
labels:
env: test
spec:
containers:
- name: nginx
image: nginx
imagePullPolicy: IfNotPresent
priorityClassName: high-priority

當節點沒有足夠的資源供調度器調度Pod、導致Pod處於pending時,搶占(preemption)邏輯會被觸發。Preemption會嘗試從一個節點刪除低優先級的Pod,從而釋放資源使高優先級的Pod得到節點資源進行部署。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM