kubernetes亲和性NodeAffinity机制允许Pod被调度到具有某些标签的节点。

比如希望Pod被调度到带有SSD硬盘的Kubernetes 节点上,可以对节点添加一个disktype:ssd的标签。

Node标签

  • 获取节点全部标签
[root@k8s-master ~]# kubectl get nodes --show-labels
NAME         STATUS   ROLES                  AGE   VERSION   LABELS
k8s-master   Ready    control-plane,master   24m   v1.21.2   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=k8s-master,kubernetes.io/os=linux,node-role.kubernetes.io/control-plane=,node-role.kubernetes.io/master=,node.kubernetes.io/exclude-from-external-load-balancers=
  • 获取感兴趣的标签

比如对标签sshgpu感兴趣,可以通过-L选项筛选。

[root@k8s-master ~]# kubectl get nodes -L disktype,gpu
NAME         STATUS   ROLES                  AGE   VERSION   DISKTYPE   GPU
k8s-master   Ready    control-plane,master   33m   v1.21.2   ssd
  • 给节点添加标签
kubectl label nodes <your-node-name> disktype=ssd

硬性限制和软性限制

kubernetes可以通过匹配Node节点标签来决定是否将Pod调度到该节点上。

限制类型 语法
硬限制 requiredDuringSchedulingIgnoredDuringExecution
软限制 preferredDuringSchedulingIgnoredDuringExecution
  • 硬限制

如果节点没有SSD硬盘,则不会调度。

apiVersion: v1
kind: Pod
metadata:name: nginx
spec:affinity:nodeAffinity:requiredDuringSchedulingIgnoredDuringExecution:nodeSelectorTerms:- matchExpressions:- key: disktypeoperator: Invalues:- ssd            containers:- name: nginximage: nginximagePullPolicy: IfNotPresent
  • 软限制

优先调度SSD硬盘节点,如果没有符合条件的节点,回退至普通节点调度。

apiVersion: v1
kind: Pod
metadata:name: nginx
spec:affinity:nodeAffinity:preferredDuringSchedulingIgnoredDuringExecution:- weight: 1preference:matchExpressions:- key: disktypeoperator: Invalues:- ssd          containers:- name: nginximage: nginximagePullPolicy: IfNotPresent

Kubernetes调度 -- NodeAffinity相关推荐

  1. 从零开始入门 K8s | Kubernetes 调度和资源管理

    作者 | 子誉  蚂蚁金服高级技术专家 关注"阿里巴巴云原生"公众号,回复关键词**"入门"**,即可下载从零入门 K8s 系列文章 PPT. Kubernet ...

  2. Kubernetes调度之亲和性和反亲和性

    背景 Kubernetes中的调度策略可以大致分为两种,一种是全局的调度策略,要在启动调度器时配置,包括kubernetes调度器自带的各种predicates和priorities算法:另一种是运行 ...

  3. Kubernetes调度

    Overview kube-scheduler 是kubernetes控制平面的核心组件,其默认行为是将 pod 分配给节点,同时平衡Pod与Node间的资源利用率.通俗来讲就是 kube-sched ...

  4. Kubernetes调度器-Pod分配给节点(node-pod亲和性、固定节点)

    1.需求 约束一个Pod只能在特定的 Node(s)上运行,或者优先运行在特定的节点上.有几种方法可以实现这点,推荐的方法都是用标签选择器来进行选择.通常这样的约束不是必须的,因为调度器将自动进行合理 ...

  5. Kubernetes — 调度系统

    目录 文章目录 目录 调度系统 Kubernetes 调度器的设计 Kubernetes 调度器的工作流 Kubernetes 调度系统的未来 Scheduler Extender(调度器扩展) Mu ...

  6. 进击的 Kubernetes 调度系统(二):支持批任务的 Coscheduling/Gang scheduling

    作者 | 王庆璨(阿里云技术专家).张凯(阿里云高级技术专家) **导读:**阿里云容器服务团队结合多年 Kubernetes 产品与客户支持经验,对 Kube-scheduler 进行了大量优化和扩 ...

  7. 进击的 Kubernetes 调度系统(一):Kubernetes scheduling framework

    作者 | 王庆璨(阿里云技术专家).张凯(阿里云高级技术专家) 导读:阿里云容器服务团队结合多年 Kubernetes 产品与客户支持经验,对 Kube-scheduler 进行了大量优化和扩展,逐步 ...

  8. 进击的Kubernetes调度系统(一):SchedulingFramework

    作者:王庆璨 张凯 前言 Kubernetes已经成为目前事实标准上的容器集群管理平台.它为容器化应用提供了自动化部署.运维.资源调度等全生命周期管理功能.经过3年多的快速发展,Kubernetes在 ...

  9. Kubernetes 调度器实现初探

    戳蓝字"CSDN云计算"关注我们哦! 作者:阿里云智能事业群高级开发工程师 萧元 转自:阿里系统软件技术 Kubernetes作为一个分布式容器编排调度引擎,资源调度是它的最重要的 ...

最新文章

  1. 北汽蓝谷和北汽新能源
  2. 在线试玩,在体感游戏中打败泰森,这位小哥破解了任天堂「拳无虚发」
  3. 吴琦:AI研究一路走到“黑”, 从VQA到VLN
  4. Python 中的pyc文件的用途
  5. MySQL 的日语认证有了,中文呢?
  6. Linux 下安装和配置git
  7. php查找特定字符并替代,php怎样查找替代字符串_后端开发
  8. 微软宣布新命令行工具 Windows Terminal 和 WSL2
  9. 中九天线调节经验总结
  10. 前端基础-html 介绍和head标签 ( 1 )
  11. 一般不要在头文件中定义变量
  12. AD9371开发总结(一)
  13. 马士兵oracle_,马士兵oracle视频教程学习笔记个人整理
  14. java7 pc6_GitHub - ShingmoYeung/oss-sdk-java at ec7c09757dcbcb2b934f46b12ab71f3e14d2df72
  15. st visual develop STM8 软件配置教程
  16. mysql 按记录编号_告别硬编码,mysql 如何实现按某字段的不同取值进行统计
  17. CAD关闭图层快捷键,隐藏显示的CAD图层
  18. 应届生面试国企时要注意的地方有哪些?
  19. 2018年就要过去了
  20. c语言遍历 json字符串,全面详解c语言使用cJSON解析JSON字符

热门文章

  1. xilinx平台dma分析
  2. 计算机专业科研经费排名2015,2016中国高校企业科研经费排名公布!
  3. 软件测试缺陷报告单怎么填,缺陷报告(缺陷报告怎么写)
  4. PHP自定义生成html网页
  5. SelFlow: Self-Supervised Learning of Optical Flow
  6. 关于 DPDK 的 一些零散的杂言杂语的念头/看法
  7. 一个U盘装 N 款系统不是梦!超级好用的装机神器!
  8. 【听学长学姐聊求职】2012年百度、腾讯、微软、奇虎360、人人、去哪网找工作经历总结...
  9. loader是什么?
  10. SpringSecurity之RememberMe