kubernetes - priorityClass 是如何工作的
问题描述
我尝试使用priorityClass。
我创建了两个 pod,第一个具有系统节点关键优先级,第二个具有集群节点关键优先级。
两个 pod 都需要在标有 nodeName: k8s-minion1 的节点中运行,但是这样的节点只有 2 个 cpu,而两个 pod 都请求 1.5 个 cpu。然后我希望第二个 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
值得注意的是,当我使用 yml 导出正在运行的 pod 时出现错误"unknown object : priorityclass"
,kubectl get priorityclass
我kubectl get pod secondpod -o yaml
找不到任何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 作为 alpha 特性首次出现在k8s 1.8 中。它在 1.11 中升级为 beta
您使用的是 1.10,这意味着此功能处于 alpha 阶段。
默认情况下不启用 Alpha 功能,因此您需要启用它。
不幸的是,k8s 1.10 版不再受支持,所以我建议至少升级到 1.14,priorityClass 功能变得稳定。
推荐阅读
- reactjs - 反应组件不反映商店的当前状态
- html - 如何使用保存在前端后端的html语法与反应
- html - Adobe XD 导出未在 HTML 和 CSS 上转换
- javascript - Bootstrap 避免导航栏切换按钮以关闭移动设备上打开的子菜单
- assembly - 访问汇编中缓冲区的第一个字节?
- python - re.findall() 和 str.count('str') 有什么区别?
- c - 如何分隔单词是.txt。文件
- ios - 调整 UISearchController 的 searchBar 的插图
- postgresql - 如何在 gorm postgresql 中定义只读副本
- web-scraping - 如何将代码外包给其他计算机永久运行?