priorityClass如何工作

问题描述

我尝试使用priorityClass。

我创建了两个Pod,第一个Pod具有系统节点关键优先级,第二个具有群集节点关键优先级。

两个Pod都需要在标有nodeName:k8s-minion1的节点中运行,但是这样的节点只有2 cpus,而两个pod都要求1.5 cpu。 然后,我希望第二个Pod运行并且第一个Pod处于待处理状态。相反,无论我对第二个Pod的优先级如何,第一个Pod始终运行。

我什至试图在应用了清单的船尾标记节点,但是什么也没做。

这是我的清单:

apiVersion: v1
kind: Pod
metadata:
  name: firstpod
spec:
  containers:
  - name: container
    image: nginx
    resources:
      requests:
        cpu: 1.5
  nodeSelector:
    nodeName: k8s-minion1
  priorityClassName: cluster-node-critical
---
apiVersion: v1
kind: Pod
metadata:
  name: secondpod
spec:
  containers:
  - name: container
    image: nginx
    resources:
      requests:
        cpu: 1.5
  priorityClassName: system-node-critical
  nodeSelector:
    nodeName: k8s-minion1

值得注意的是,当我执行"unknown object : priorityclass"时出现错误kubectl get priorityclass,并且当我使用kubectl get pod secondpod -o yaml用yml导出正在运行的pod时,找不到任何classpriority:字段。

这是我的版本信息:

$ kubectl version
Client Version: version.Info{Major:"1",Minor:"10",GitVersion:"v1.10.0",GitCommit:"fc32d2f3698e36b93322a3465f63a14e9f0eaead",GitTreeState:"clean",BuildDate:"2018-03-26T16:55:54Z",GoVersion:"go1.9.3",Compiler:"gc",Platform:"linux/amd64"} 
Server Version: version.Info{Major:"1",GitVersion:"v1.10.0+coreos.0",GitCommit:"6bb2e725fc2876cd94b3900fc57a1c98ca87a08b",BuildDate:"2018-04-02T16:49:31Z",Platform:"linux/amd64"}

有什么想法为什么不起作用?

预先感谢

阿卜杜勒加尼

解决方法

PriorityClasses首次出现在k8s 1.8 as alpha feature中。 它graduated to beta in 1.11

您使用的是1.10,这意味着此功能处于alpha状态。

默认情况下未启用Alpha功能,因此您需要将其启用。

不幸的是,不再支持k8s版本1.10,因此我建议至少升级到priorityClass feature稳定的1.14。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...