priorityClass是如何工作的



我尝试使用priorityClass。

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

两个pod都需要在标记为nodeName:k8s-minione1的节点中运行,但这样的节点只有2个cpu,而两个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

值得注意的是,当我执行kubectl get priorityclass时,我得到了一个错误"unknown object : 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", Minor:"10", GitVersion:"v1.10.0+coreos.0", GitCommit:"6bb2e725fc2876cd94b3900fc57a1c98ca87a08b", GitTreeState:"clean", BuildDate:"2018-04-02T16:49:31Z", GoVersion:"go1.9.3", Compiler:"gc", Platform:"linux/amd64"}

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

提前感谢

Abdelghani

PriorityClass首次出现在K8S1.8中,作为alpha功能。它在1.11 中升级为测试版

您使用的是1.10,这意味着该功能处于alpha中。

Alpha功能默认情况下没有启用,因此您需要启用它。

不幸的是,k8s版本1.10不再受支持,所以我建议至少升级到1.14,在那里priorityClass功能变得稳定。

相关内容

  • 没有找到相关文章

最新更新