kubernetes調度之 PriorityClass

系列目錄html

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

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

定義PriorityClass對象:api

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獲得節點資源進行部署。code

相關文章
相關標籤/搜索