k8s中Priority和PriorityClass对象之间的区别

时间:2019-09-05 06:45:33

标签: kubernetes pod-priority

我知道k8s中有什么优先级类,但是经过大量搜索后找不到任何有关优先级对象的信息。

所以问题是我在我的k8s集群中创建了PriorityClass对象,并将其值设置为-100000,并创建了具有该priorityClass的Pod。现在,当我用kubectl描述Pod时,我得到了两个不同的字段

unmet

我的准入控制器抛出以下错误

Priority:           0

PriorityClassName:  imagebuild-priority

在某处将Priority设置为0,PriorityClass尝试将其设置为-10000。

PriorityClass对象具有globalDefault:False

命令运行

Error from server (Forbidden): error when creating "/tmp/tmp.4tJSpSU0dy/app.yml": pods "pod-name" is forbidden: the integer value of priority (0) must not be provided in pod spec; priority admission controller computed -1000000 from the given PriorityClass name

Yaml文件

kubectl create -f app.yml

受控制的突变将附加PriorityClass

1 个答案:

答案 0 :(得分:0)

根据documentation

  

PriorityClass也有两个可选字段:globalDefault和description。 globalDefault字段指示此PriorityClass的值应用于不具有priorityClassName的Pod。 系统中只能存在一个将globalDefault设置为true的PriorityClass 。如果没有设置带有globalDefault的PriorityClass,则没有priorityClassName的Pod的优先级为零。

此错误表示您有碰撞

the integer value of priority (0) must not be provided in pod spec; 
priority admission controller computed -1000000 from the given PriorityClass name

您可以通过两种方式对其进行修复:

您应该在 globalDefault:true 之间进行选择:

PriorityClass:

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

吊舱:

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

priorityClassName 可以在这里使用,但您不需要

或使用 globalDefault:false

您需要选择 1个选项,如消息错误中所述,在您的广告连播中选择priorityClassName或优先级。

PriorityClass:

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

吊舱:

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