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

相关文章
相关标签/搜索