首页 > 其他分享 >【K8s】专题八:Kubernetes 服务调度详解

【K8s】专题八:Kubernetes 服务调度详解

时间:2024-08-03 13:26:35浏览次数:10  
标签:Node Kubernetes demo 亲和性 调度 详解 Pod K8s 节点

以下内容均来自个人笔记并重新梳理,如有错误欢迎指正!如果对您有帮助,烦请点赞、关注、订阅、转发!欢迎扫码关注个人公众号!

公众号二维码


目录

一、基本介绍

二、工作原理

三、节点绑定

四、亲和性调度

1、亲和性类型

2、亲和性规则

3、Node Affinity

4、Pod Affinity

五、反亲和性调度

1、反亲和性类型

2、反亲和性规则

3、Pod Anti-Affinity

六、污点和容忍

1、污点

2、容忍

七、相关命令

1、label

2、taint

3、cordon

4、drain


一、基本介绍

在 Kubernetes 中,服务调度是指 kube-scheduler 组件根据特定的调度算法和策略,将 Pod 分配到最合适的 Node 节点上,以满足应用程序的资源需求和 Kubernetes 集群的资源限制,实现集群资源充分、合理的利用。

官方文档:Kubernetes Scheduler | Kubernetes


二、工作原理

kube-scheduler 持续监听 kube-apiserver,当检查到没有绑定 Node 节点的 Pod(即 PodSpec.NodeName 为空)时,会为其分配 Node 节点并进行绑定。

整个调度过程大致可以分为 3 个阶段:

  • 预选阶段:过滤掉不满足条件的 Node 节点,这个过程称为 Predicates
  • 优选阶段:对满足条件的 Node 节点进行优先级排序,称之为 Priorities
  • 选定阶段:从多个优选出的 Node 节点中随机选择一个

如果中间任何一个阶段出现错误,就会直接返回错误。


三、节点绑定

节点绑定(Node Selector)是一种调度机制,该机制基于 Node 节点的标签,将 Pod 调度到具有特定标签的 Node 节点上,实现与指定 Node 节点的绑定。

资源清单示例如下:

# deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: demo-deployment
spec:
  replicas: 1
  selector:
    matchLabels:
      app: demo-deployment
  template:
    metadata:
      labels:
        app: demo-deployment
    spec:
      containers:
      - name: demo-container
        image: demo-image:latest
        ports:
        - containerPort: 80
      nodeSelector:
        kubernetes.io/hostname: my-node01

标签:Node,Kubernetes,demo,亲和性,调度,详解,Pod,K8s,节点
From: https://blog.csdn.net/2401_82795112/article/details/140694666

相关文章

  • 【C语言】详解feof函数和ferror函数
    文章目录前言1.feof1.1feof函数原型1.2正确利用函数特性读写文件1.2.1针对文本文件1.2.2针对二进制文件1.3feof函数实例演示2.ferror2.1ferror函数原型前言或许我们曾在网络上看过有关于feof函数,都说这个函数是检查文件是否已经读取结束了。但事实却并非......
  • 如何在kubernetes中抓包 原创 NANA SRE运维实践
    如何在kubernetes中抓包原创 NANA SRE运维实践如何在kubernetes中抓包原创 NANA SRE运维实践  2024年08月03日01:06 江苏 听全文序言  随着云原生的落地,k8s使用的人也越来越多了,而在这种环境中,抓包有的时候也是一种纠结的事情。    爱意随风起,风止意......
  • [Bugku] web-CTF靶场详解!!!
    平台为“山东安信安全技术有限公司”自研CTF/AWD一体化平台,部分赛题采用动态FLAG形式,避免直接抄袭答案。          平台有题库、赛事预告、工具库、Writeup库等模块。---------------------------------你必须让他停下:                    ......
  • 7-Python数据类型——列表和元组的详解(增删改查、索引、切片、步长、循环)
    一、列表1.1列表list有序且可变的容器,可以存放多个不同类型的元素列表就是专门用来记录多个同种属性的值列表:存储同一个类别的数据,方便操作字符串,不可变:即:创建好之后内部就无法修改【内置功能都是新创建一份数据】name="xiaochaun"data=name.upper()print(nam......
  • MoCo论文详解
    文章目录前言一、对比学习简介二、MoCo理论三、MoCo伪代码实现四、疑问总结前言 MoCo是Facebook团队在2020年提出的一篇论文,论文全称是《MomentumContrastforUnsupervisedVisualRepresentationLearning》通过动量对比进行无监督的视觉表征学习,MoCo就是Moment......
  • 【C语言】操作符详解
    目录一、操作符分类二、移位操作符(1)左移位操作符(2)右移位操作符三、位操作符四、移位、位操作符的综合练习(1)不用临时变量,交换两个整数(2)求内存中整数的二进制中1的个数(3)二进制位置0或置1五、单目操作符六、逗号表达式七、结构体成员访问操作符(1)结构体(2)结构体的声明......
  • C语言数据在内存中的存储超详解
    文章目录1.整数在内存中的存储2.大小端字节序和字节序判断2.1什么是大小端?2.2为什么会有大小端?2.3练习3.浮点数在内存中的存储3.1一个代码3.2浮点数的存储3.2.1浮点数存的过程3.2.2浮点数取的过程3.3题目解析1.整数在内存中的存储在操作符......
  • C语言自定义类型结构体与位段超详解
    文章目录1.结构体类型的声明1.1结构体声明1.2结构体变量的创建和初始化1.3结构体的特殊声明1.3结构体的自引用2.结构体内存对齐2.1对齐规则2.2为什么存在内存对齐2.3修改默认对齐数3.结构体传参4.结构体实现位段4.1什么是位段4.2位段成员的内存......
  • k8s
    K8sPod:自主式Pod:死亡后没有控制器将其拉起控制器管理的Pod:死亡后控制器能够将其拉起Pod内容器:当一个Pod创建后,会立即在Pod内创建一个pause容器,该Pod内其他容器公用该容器的网络协议栈;因此,一个Pod中两个容器的端口不能相同,一个容器访问另一个容器的端口,直接用l......
  • Android开发 - RecyclerView 类详解
    什么是RecyclerViewRecyclerView是Android的一个控件,用来展示长列表或网格的内容,它比以前的ListView更加灵活和高效列表展示:想象你在手机上浏览一个长长的商品列表或图片网格。RecyclerView就是用来展示这样的内容的控件高效显示:如果你有一万件商品,RecyclerView不会一......