pod调度

2023-09-17 12:02:10

定向调度
通过标签选择器定向调度到node上
此调度方式是硬性现在 如果匹配不上 会调度失败

#在node上加标签
k label nodes dev4-worker zone=north
#查看
k get node dev4-worker --show-labels

创建pod的yaml文件

#通过标签选择器 定向调度到指定node
apiVersion: v1
kind: ReplicationController
metadata:
 name: redis-master
 labels:
  name: redis-master
spec:
 replicas: 1
 selector: 
  name: redis-master
 template:
  metadata:
   labels:
    name: redis-master
  spec:
   containers:
   - name: master
     image: kubeguide/redis-master
     ports:
     - containerPort: 6379
   nodeSelector: #标签选择器 选择要调度到带此标签的node上
    zone: north

验证

k get pod -o wide

通过node的亲和与反亲和选择调度到node节点

#通过node亲和性选择节点
apiVersion: v1
kind: Pod
metadata:
 name: with-node-affinity
spec:
 affinity:
  nodeAffinity:
   requiredDuringSchedulingIgnoredDuringExecution:  #Node节点必须满足指定的所有规则才可以,相当于硬限制
    nodeSelectorTerms: # 节点选择列表
    - matchExpressions:   #标签选择器 可以选择符合的标签列表(推荐)
      - key: kubernetes.io/arch   #键
        operator: In #匹配标签的关系符 支持Exists, DoesNotExist, In, NotIn, Gt, Lt
        values: #值
        - amd64  
   preferredDuringSchedulingIgnoredDuringExecution: #优先调度到满足指定的规则的Node,相当于软限制 (倾向)     
   - weight: 1 #倾向权重,在范围1-100。
     preference:   #一个节点选择器项,与相应的权重相关联
      matchExpressions:   
      - key: disk-type # 键
        operator: In #关系符 支持In, NotIn, Exists, DoesNotExist, Gt, Lt  
        values:  # 值
        - ssd
 containers:
 - name: with-node-affinity
   image: busybox       
   

关系符的使用说明:

- matchExpressions:
    - key: nodeenv # 匹配存在标签的key为nodeenv的节点
      operator: Exists   
    - key: nodeenv # 匹配标签的key为nodeenv,且value是"xxx"或"yyy"的节点
      operator: In    
      values: ["xxx","yyy"]
    - key: nodeenv # 匹配标签的key为nodeenv,且value不是"xxx"或"yyy"的节点
      operator: NotIn
      values: ["xxx","yyy"]  
    - key: nodeenv # 匹配标签的key为nodeenv,且value大于"xxx"的节点
      operator: Gt   
      values: "xxx"

pod亲和性与反亲和调度
pod的亲和与反亲和调度 会限制在拓扑域中例如:在一个机架 一个主机 或者一个区域
创建参照目标pod

#测试pod的亲和与反亲和 参照目标pod
apiVersion: v1
kind: Pod
metadata:
 name: pod-flag
 labels:
  security: "S1"
  app: "nginx"
spec:
 containers:
 - name: nginx-flag
   image: nginx  

pod亲和性调度

#pod亲和性调度
apiVersion: v1
kind: Pod
metadata:
 name: pod-affinity
spec:
 affinity:
  podAffinity:
   requiredDuringSchedulingIgnoredDuringExecution:
   - labelSelector:
      matchExpressions:
      - key: security
        operator: In
        values:
        - S1
     topologyKey: kubernetes.io/hostname #对应的目标拓扑域内 进制亲和与反亲和调度
 containers:
 - name: with-pod-affinity
   image: nginx      

反亲和调度
这个新pod必须与security=S1的pod在一个zong的拓扑里 ,但是不与app=nginx 在一个node节点上

#反亲和性
apiVersion: v1
kind: Pod
metadata:
 name: pod-anti-affinity
spec:
 affinity:
  podAffinity:
   requiredDuringSchedulingIgnoredDuringExecution:
   - labelSelector:
      matchExpressions:
      - key: security
        operator: In
        values:
        - S1
     topologyKey: topology.kubernetes.io/zone #这个新pod必须与security=S1的pod在一个zong的拓扑里 
  podAntiAffinity:
   requiredDuringSchedulingIgnoredDuringExecution:
   - labelSelector:
      matchExpressions:
      - key: app
        operator: In
        values:
        - nginx
     topologyKey: kubernetes.io/hostname #但是不与app=nginx 在一个node节点上
 containers:
 - name: with-pod-anti-affinity
   image: nginx  
更多推荐

AndroidUtil - 强大易用的安卓工具类库

官网https://github.com/Blankj/AndroidUtilCode/blob/master/README-CN.md项目介绍AndroidUtilCode🔥是一个强大易用的安卓工具类库,它合理地封装了安卓开发中常用的函数,具有完善的Demo和单元测试,利用其封装好的APIs可以大大提高开发效率,如

解锁黑科技!群晖管家+cpolar内网穿透,让你的本地黑群晖实现公网远程访问!

白嫖怪狂喜!黑群晖也能使用群晖管家啦!文章目录白嫖怪狂喜!黑群晖也能使用群晖管家啦!1.使用环境要求:2.下载安装群晖管家app3.随机地址登陆群晖管家app4.固定地址登陆群晖管家app自己组装nas的白嫖怪们虽然也可以通过在局域网使用黑群晖,但是群晖quickconnect需要绑定正版群晖账号,那么白嫖怪们要怎样在

【自动化测试】如何下载安装webdriver

1.下载合适的浏览器驱动2.配置环境变量写自动化脚本的时候经常会用到selenium,selenium来自webdriver模块,所以需要安装对应的webdriver驱动。1.查看自己浏览器的版本;发现我的浏览器版本已经升到了最新的版本,我参照这个链接,下载了最新版本的驱动,https://googlechromela

基于JAVA+SpringBoot+Vue+协同过滤算法+爬虫的前后端分离的租房系统

✌全网粉丝20W+,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌🍅文末获取项目下载方式🍅一、项目背景介绍:随着城市化进程的加快,租房需求逐渐增多,传统的租房方式已经无法满足人们的需求。为了提

Linux下的系统编程——信号(十一)

前言:信号在我们的生活中随处可见,如:古代战争中摔杯为号;现代战争中的信号弹;体育比赛中使用的信号枪......他们都有共性,信号是信息的载体,Linux/UNIX环境下,古老、经典的通信方式,现下依然是主要的通信手段。Unix早期版本就提供了信号机制,但不可靠,信号可能丢失。Berkeley和AT&T都对信号模型做了

如何在前端传递一个String 的变量和一个obj对象到后端,然后被Java后端接收

首先我们通过post向后端发送请求,本篇博客仅纪录一下,在实际开发中需要从前端传递多值到后端,并且不存放到一个对象中进行传值处理,简单的一个案例展示该怎么做罢了!!!//创建一个包含字符串和对象的数据constpostData={stringValue:"Hello,World!",//你要发送的字符串数据yourOb

华为云Stack的学习(七)

八、华为云Stack存储服务介绍1.云硬盘EVS云硬盘(ElasticVolumeService,EVS),又名磁盘,是一种虚拟块存储服务,主要为ECS(ElasticCloudServer)和BMS(BareMetalServer)提供块存储空间。用户可以在线创建云硬盘并挂载给实例,云硬盘的使用方式与传统服务器硬盘完

浅谈电力电容器技术的发展及选型

安科瑞华楠摘要:介绍了我国电力电容器产品制造技术的发展现状。在与国外电力电容器产品先进水平对比的基础上,讨论了我国电力电容器产品的差距和某些对策,并对我国电力电容器技术发展趋势提出了一些看法。关键词:电力电容器;制造技术;技术发展0引言电力电容器是一种重要的基础工业产品,他是电力系统并联无功补偿、串联补偿、谐波滤波装置

基变换与矩阵对角化

矩阵乘法的本质是映射坐标的意思是把映射到以和为基的向量空间中表示将展示成我们正常基向量空间中显示,而是将用其本身的坐标系展示。这也是基变换的本质,如果想对一组在向量空间中的向量进行旋转操作,旋转逆时针90度,则需要先将其转换为我们向量空间中显示,即,然后再执行旋转操作,最后再将它转变为自己的坐标系展示,。就是基变换。特

驾驭Java线程池:一步一步带你从新手到高手!

驾驭Java线程池:一步一步带你从新手到高手!java框架中例如Tomcat、Dubbo等都离不开线程池,这些框架用到线程的地方,都会用线程池来负责。我们在使用这些框架的时候,会设置线程池参数,用于提高性能。那么开多少线程合适?今天我们将围绕这个问题来学习一下线程池。为什么使用线程池平常我们使用java线程的时候,都是

浅谈Rust内存管理

Rust因在内存管理上的独到之处,近年来受到了不少开发者的青睐。Rust内存管理的核心功能就是所有权。不同的语言采取了不同的内存管理方式,主要分为开发者手动管理或者编译器辅助管理,以及垃圾回收机制等。Rust的所有权机制,有别于这两者。堆栈内存我们知道程序会在堆或者栈上创建数据。栈上创建数据很容易,只要知道数据的大小,

热文推荐