priorityClass 是如何工作的
How does priorityClass Works
我尝试使用 priorityClass。
我创建了两个 pods,第一个具有系统节点关键优先级,第二个具有集群节点关键优先级。
两者 pods 都需要 运行 在标有 nodeName: k8s-minion1 的节点中,但这样的节点只有 2 cpus 而 pods 都要求 1.5 cpu。
然后我希望第二个 pod 运行s 和第一个 pod 处于待处理状态。相反,无论我影响第二个 pod 的类优先级如何,第一个 pod 总是 运行s。
我什至尝试在我应用我的清单后标记节点,但没有改变任何东西。
这是我的清单:
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 中导出我的 运行ning 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"}
知道为什么这不起作用吗?
提前致谢,
阿卜杜勒加尼
PriorityClasses 首次出现在 k8s 1.8 as alpha feature。
它graduated to beta in 1.11
您使用的是 1.10,这意味着此功能处于 alpha 版。
默认情况下未启用 Alpha 功能,因此您需要启用它。
不幸的是,k8s 版本 1.10 不再受支持,所以我建议至少升级到 1.14,其中 priorityClass feature 变得稳定。
我尝试使用 priorityClass。
我创建了两个 pods,第一个具有系统节点关键优先级,第二个具有集群节点关键优先级。
两者 pods 都需要 运行 在标有 nodeName: k8s-minion1 的节点中,但这样的节点只有 2 cpus 而 pods 都要求 1.5 cpu。 然后我希望第二个 pod 运行s 和第一个 pod 处于待处理状态。相反,无论我影响第二个 pod 的类优先级如何,第一个 pod 总是 运行s。
我什至尝试在我应用我的清单后标记节点,但没有改变任何东西。
这是我的清单:
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 中导出我的 运行ning 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"}
知道为什么这不起作用吗?
提前致谢,
阿卜杜勒加尼
PriorityClasses 首次出现在 k8s 1.8 as alpha feature。 它graduated to beta in 1.11
您使用的是 1.10,这意味着此功能处于 alpha 版。
默认情况下未启用 Alpha 功能,因此您需要启用它。
不幸的是,k8s 版本 1.10 不再受支持,所以我建议至少升级到 1.14,其中 priorityClass feature 变得稳定。