当前位置: 首页 > article >正文

k8s中,一.pod污点,二.pod容器污点容忍策略,三.pod优先级(PriorityClass类)

一.pod污点:污点是让节点与pod产生排斥的一类规则

	污点标签的命令
		1.查看污点标签
			kubectl describe nodes 节点名
		2.设置污点标签
			kubectl taint node 节点名 key值=value值:污点标签种类
		3.删除污点标签
			kubectl taint node 节点名 key值=value值:污点标签种类-
		4.污点标签种类
			驱逐:NoExecute		//同时影响新Pod的调度和已存在Pod的运行状态
			不调度:NoSchedule 		//仅影响新Pod的调度,对已存在的Pod无影响。
			尽量不调度:PreferNoSchedule  //对新Pod的调度有一定影响,但并非强制性的,已存在的Pod不会受到影响。


二.pod容器污点容忍策略(tolerations):无视污点标签的限制

	1.容忍污点标签精确匹配键值对
		---
		kind: Pod
		apiVersion: v1
		metadata:
		  name: myphp
		spec:
		  tolerations:
		  - operator: Equal      # 完全匹配键值对(Equal,Exists)
		    key: k               # 键
		    value: v1            # 值
		    effect: NoSchedule   # 污点标签
		  containers:
		  - name: php
		    image: myos:php-fpm
		    resources:
		      requests:
		        cpu: 1200m

	2.容忍污点标签模糊匹配键值对
		---
		kind: Pod
		apiVersion: v1
		metadata:
		  name: myphp
		spec:
		  tolerations:
		  - operator: Exists     # 部分匹配,存在即可
		    key: k               # 键
		    effect: NoSchedule   # 污点标签
		  containers:
		  - name: php
		    image: myos:php-fpm
		    resources:
		      requests:
		        cpu: 1200m

	3.容忍所有污点标签
		---
		kind: Pod
		apiVersion: v1
		metadata:
		  name: myphp
		spec:
		  tolerations:
		  - operator: Exists     # 模糊匹配
		    key: k               # 键
		    effect: ""           # 设置空或删除,代表所有污点标签
		  containers:
		  - name: php
		    image: myos:php-fpm
		    resources:
		      requests:
		        cpu: 1200m
		

三.pod优先级(PriorityClass类):优先保证重要的pod被调度运行

	1.优先级策略,value值越大资源分配越优先
		抢占优先策略:PreemptLowerPriority(强行抢夺)(高的会马上把低的干掉,自己占用资源)
		非抢占优先策略(优先):Never(插队,银行的会员卡非抢占优先)(排队执行,高的等待上一个资源执行完)
		
	
	2.优先级类资源文件编写
		文件生成:kubectl create priorityclass --help
		查看优先级:kubectl get pc
		---
		kind: PriorityClass
		apiVersion: scheduling.k8s.io/v1
		metadata:
		  name: high-non
		preemptionPolicy: Never
		value: 1000
		
		---
		kind: PriorityClass
		apiVersion: scheduling.k8s.io/v1
		metadata:
		  name: low-non
		preemptionPolicy: Never
		value: 500
	
	3.pod容器使用优先级类(priorityClassName)
		将三个资源运行在一个节点上,模拟资源抢占
		# 无优先级的 Pod
		[root@master ~]# vim php1.yaml 
		---
		kind: Pod
		apiVersion: v1
		metadata:
		  name: php1
		spec:
		  nodeSelector:
		    kubernetes.io/hostname: node-0003
		  containers:
		  - name: php
		    image: myos:php-fpm
		    resources:
		      requests:
		        cpu: "1200m"
		
		# 低优先级 Pod
		[root@master ~]# vim php2.yaml 
		---
		kind: Pod
		apiVersion: v1
		metadata:
		  name: php2
		spec:
		  nodeSelector:
		    kubernetes.io/hostname: node-0003
		  priorityClassName: low-non      # 优先级名称
		  containers:
		  - name: php
		    image: myos:php-fpm
		    resources:
		      requests:
		        cpu: "1200m"
		
		# 高优先级 Pod
		[root@master ~]# vim php3.yaml 
		---
		kind: Pod
		apiVersion: v1
		metadata:
		  name: php3
		spec:
		  nodeSelector:
		    kubernetes.io/hostname: node-0003
		  priorityClassName: high-non     # 优先级名称
		  containers:
		  - name: php
		    image: myos:php-fpm
		    resources:
		      requests:
		        cpu: "1200m"
	

k8s

一.pod污点:污点是让节点与pod产生排斥的一类规则

    污点标签的命令
        1.查看污点标签
            kubectl describe nodes 节点名
        2.设置污点标签
            kubectl taint node 节点名 key值=value值:污点标签种类
        3.删除污点标签
            kubectl taint node 节点名 key值=value值:污点标签种类-
        4.污点标签种类
            驱逐:NoExecute        //同时影响新Pod的调度和已存在Pod的运行状态
            不调度:NoSchedule         //仅影响新Pod的调度,对已存在的Pod无影响。
            尽量不调度:PreferNoSchedule  //对新Pod的调度有一定影响,但并非强制性的,已存在的Pod不会受到影响。


二.pod容器污点容忍策略(tolerations):无视污点标签的限制

    1.容忍污点标签精确匹配键值对
        ---
        kind: Pod
        apiVersion: v1
        metadata:
          name: myphp
        spec:
          tolerations:
          - operator: Equal      # 完全匹配键值对(Equal,Exists)
            key: k               # 键
            value: v1            # 值
            effect: NoSchedule   # 污点标签
          containers:
          - name: php
            image: myos:php-fpm
            resources:
              requests:
                cpu: 1200m

    2.容忍污点标签模糊匹配键值对
        ---
        kind: Pod
        apiVersion: v1
        metadata:
          name: myphp
        spec:
          tolerations:
          - operator: Exists     # 部分匹配,存在即可
            key: k               # 键
            effect: NoSchedule   # 污点标签
          containers:
          - name: php
            image: myos:php-fpm
            resources:
              requests:
                cpu: 1200m

    3.容忍所有污点标签
        ---
        kind: Pod
        apiVersion: v1
        metadata:
          name: myphp
        spec:
          tolerations:
          - operator: Exists     # 模糊匹配
            key: k               # 键
            effect: ""           # 设置空或删除,代表所有污点标签
          containers:
          - name: php
            image: myos:php-fpm
            resources:
              requests:
                cpu: 1200m
        

三.pod优先级(PriorityClass类):优先保证重要的pod被调度运行

    1.优先级策略,value值越大资源分配越优先
        抢占优先策略:PreemptLowerPriority(强行抢夺)(高的会马上把低的干掉,自己占用资源)
        非抢占优先策略(优先):Never(插队,银行的会员卡非抢占优先)(排队执行,高的等待上一个资源执行完)
        
    
    2.优先级类资源文件编写
        文件生成:kubectl create priorityclass --help
        查看优先级:kubectl get pc
        ---
        kind: PriorityClass
        apiVersion: scheduling.k8s.io/v1
        metadata:
          name: high-non
        preemptionPolicy: Never
        value: 1000
        
        ---
        kind: PriorityClass
        apiVersion: scheduling.k8s.io/v1
        metadata:
          name: low-non
        preemptionPolicy: Never
        value: 500
    
    3.pod容器使用优先级类(priorityClassName)
        将三个资源运行在一个节点上,模拟资源抢占
        # 无优先级的 Pod
        [root@master ~]# vim php1.yaml 
        ---
        kind: Pod
        apiVersion: v1
        metadata:
          name: php1
        spec:
          nodeSelector:
            kubernetes.io/hostname: node-0003
          containers:
          - name: php
            image: myos:php-fpm
            resources:
              requests:
                cpu: "1200m"
        
        # 低优先级 Pod
        [root@master ~]# vim php2.yaml 
        ---
        kind: Pod
        apiVersion: v1
        metadata:
          name: php2
        spec:
          nodeSelector:
            kubernetes.io/hostname: node-0003
          priorityClassName: low-non      # 优先级名称
          containers:
          - name: php
            image: myos:php-fpm
            resources:
              requests:
                cpu: "1200m"
        
        # 高优先级 Pod
        [root@master ~]# vim php3.yaml 
        ---
        kind: Pod
        apiVersion: v1
        metadata:
          name: php3
        spec:
          nodeSelector:
            kubernetes.io/hostname: node-0003
          priorityClassName: high-non     # 优先级名称
          containers:
          - name: php
            image: myos:php-fpm
            resources:
              requests:
                cpu: "1200m"
    
 


http://www.kler.cn/a/534906.html

相关文章:

  • 4. Go结构体使用
  • docker安装es及分词器ik
  • 免费PDF 转换成 Word、PPT、Excel 格式的工具
  • Redis --- 秒杀优化方案(阻塞队列+基于Stream流的消息队列)
  • MongoDB学习笔记-解析jsonCommand内容
  • 每日Attention学习18——Grouped Attention Gate
  • 深度学习 | 表示学习 | 卷积神经网络 | Batch Normalization 在 CNN 中的示例 | 20
  • RFID隧道机:提升生产流水线效率与精准度
  • 【Java报错解决】警告: 源发行版 11 需要目标发行版 11
  • 教育系统软件正版化:信创替换的加速引擎
  • Linux里的容器被OOM killed的两种情况
  • 100.8 AI量化面试题:如何使用自监督学习方法从原始市场数据中挖掘新的alpha因子?
  • 我用Ai学Android Jetpack Compose之CircularProgressIndicator
  • MongoDB学习笔记-解析jsonCommand内容
  • Unix/Linux编程:fcntl函数总结
  • vscode 如何通过Continue引入AI 助手deepseek
  • 国产编辑器EverEdit - 自定义标记使用详解
  • python爬虫--简单登录
  • 无界构建微前端?NO!NO!NO!多系统融合思路!
  • HTML 复习
  • [SAP ABAP] 面向对象程序设计-类的访问区域
  • 【React】合成事件语法
  • 防静电监控看板如何助力生产线提升品质管理效率
  • C语言基础系列【4】C语言基础语法
  • 深度剖析 C++17 中的 std::byte:解锁字节级编程新境界
  • PHP JSON操作指南