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

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: PodapiVersion: v1metadata:name: myphpspec:tolerations:- operator: Equal      # 完全匹配键值对(Equal,Exists)key: k               # 键value: v1            # 值effect: NoSchedule   # 污点标签containers:- name: phpimage: myos:php-fpmresources:requests:cpu: 1200m2.容忍污点标签模糊匹配键值对---kind: PodapiVersion: v1metadata:name: myphpspec:tolerations:- operator: Exists     # 部分匹配,存在即可key: k               # 键effect: NoSchedule   # 污点标签containers:- name: phpimage: myos:php-fpmresources:requests:cpu: 1200m3.容忍所有污点标签---kind: PodapiVersion: v1metadata:name: myphpspec:tolerations:- operator: Exists     # 模糊匹配key: k               # 键effect: ""           # 设置空或删除,代表所有污点标签containers:- name: phpimage: myos:php-fpmresources:requests:cpu: 1200m三.pod优先级(PriorityClass类):优先保证重要的pod被调度运行1.优先级策略,value值越大资源分配越优先抢占优先策略:PreemptLowerPriority(强行抢夺)(高的会马上把低的干掉,自己占用资源)非抢占优先策略(优先):Never(插队,银行的会员卡非抢占优先)(排队执行,高的等待上一个资源执行完)2.优先级类资源文件编写文件生成:kubectl create priorityclass --help查看优先级:kubectl get pc---kind: PriorityClassapiVersion: scheduling.k8s.io/v1metadata:name: high-nonpreemptionPolicy: Nevervalue: 1000---kind: PriorityClassapiVersion: scheduling.k8s.io/v1metadata:name: low-nonpreemptionPolicy: Nevervalue: 5003.pod容器使用优先级类(priorityClassName)将三个资源运行在一个节点上,模拟资源抢占# 无优先级的 Pod[root@master ~]# vim php1.yaml ---kind: PodapiVersion: v1metadata:name: php1spec:nodeSelector:kubernetes.io/hostname: node-0003containers:- name: phpimage: myos:php-fpmresources:requests:cpu: "1200m"# 低优先级 Pod[root@master ~]# vim php2.yaml ---kind: PodapiVersion: v1metadata:name: php2spec:nodeSelector:kubernetes.io/hostname: node-0003priorityClassName: low-non      # 优先级名称containers:- name: phpimage: myos:php-fpmresources:requests:cpu: "1200m"# 高优先级 Pod[root@master ~]# vim php3.yaml ---kind: PodapiVersion: v1metadata:name: php3spec:nodeSelector:kubernetes.io/hostname: node-0003priorityClassName: high-non     # 优先级名称containers:- name: phpimage: myos:php-fpmresources: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.lryc.cn/news/532472.html

相关文章:

  • 【重生之学习C语言----水仙花篇】
  • 两步构建 AI 总结助手,实现智能文档摘要
  • 承压金字塔(蓝桥杯17C)
  • day33-数据同步rsync
  • Android 实现首页Tab切换并且支持懒加载功能详解
  • [Android] 360行车记录仪谷歌版
  • 基于Redis分布式锁
  • Spring Boot 条件注解:@ConditionalOnProperty 完全解析
  • canny边缘检测
  • 团建 蓝桥杯省a 15
  • 【逻辑学导论】1.6 有效性和真实性
  • IDEA 中集成 Maven,配置环境、创建以及导入项目
  • Qt跨屏窗口的一个Bug及解决方案
  • Vue WebSocket简单应用 ws
  • 快速单机部署ollama v0.5.7 +openwebui(免去网络环境干扰)
  • 【华为OD-E卷 - 114 找最小数 100分(python、java、c++、js、c)】
  • 快速搭建GPU环境 | docker、k8s中使用gpu
  • VSCode设置——通过ctrl+鼠标滚动改变字体大小(新版本的vs)
  • 【kafka实战】06 kafkaTemplate java代码使用示例
  • Java 23新特性
  • bat脚本实现自动化漏洞挖掘
  • [创业之路-285]:《产品开发管理-方法.流程.工具 》-1- IPD的功能列表以及导入步骤
  • Redis命令:列表模糊删除详解
  • Day36-【13003】短文,数组的行主序方式,矩阵的压缩存储,对称、三角、稀疏矩阵和三元组线性表,广义表求长度、深度、表头、表尾等
  • 大数据sql查询速度慢有哪些原因
  • 文件 I/O 和序列化
  • 机器学习中的关键概念:通过SKlearn的MNIST实验深入理解
  • HELLOCTF反序列化靶场全解
  • 十二、Docker Compose 部署 SpringCloudAlibaba 微服务
  • VUE之插槽