我知道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
答案 0 :(得分:0)
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