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

K8S调度

K8S调度

一、List-Watch 机制

在这里插入图片描述

controller-manager、scheduler、kubelet 通过 List-Watch 机制监听 apiserver 发出的事件,apiserver 通过 List-Watch 机制监听 etcd 发出的事件

1.scheduler 的调度策略

预选策略/预算策略:通过调度算法过滤掉不满足条件的Node节点,如果没有满足条件的Node节点,Pod会处于Pending状态,直到有符合条件的Node节点出现
PodFitsResources、PodFitsHost、PodFitsHostPorts、PodSelectorMatches、NoDiskConflict
优选策略:根据优先级选项为满足预选策略条件的Node节点进行优先级权重排序,最终选择优先级最高的Node节点来调度Pod
LeastRequestedPriority、BalancedResourceAllocation、ImageLocalityPriority

二、如何将Pod调度到指定节点

1)使用 nodeName 字段指定 Node节点名称
2)使用 nodeSelector 指定 Node节点的标签
3)使用 节点/Pod 亲和性
4)使用 污点+容忍 

1.标签的管理

kubectl label <资源类型> <资源名称>  标签key=标签value               ##设置标签
kubectl label <资源类型> <资源名称>  标签key=标签value --overwrite   ##修改标签
kubectl label <资源类型> <资源名称>  标签key-                       ##删除标签kubectl get <资源类型> <资源名称> --show-labels                     ##展示资源名称下的所有标签
kubectl get <资源类型> -l 标签key[=标签value]                       ##列出符合条件的标签下的资源

2.亲和性

2.1节点亲和性

节点亲和性(nodeAffinity):匹配指定的Node节点标签,将要部署的Pod调度到满足条件的Node节点上

2.2Pod亲和性

拓扑域:具有相同标签的node节点
Pod亲和性(podAffinity):匹配指定的Pod标签,将要部署的Pod调度到与指定Pod所在的Node节点处于 同一个拓扑域 的Node节点上
Pod反亲和性(podAntiAffinity):匹配指定的Pod标签,将要部署的Pod调度到与指定Pod所在的Node节点处于 不同的拓扑域 的Node节点上

2.3亲和性的策略

硬策略(required....):要强制性的满足指定条件,如果没有满足条件的Node节点,Pod会处于Pending状态,直到有符合条件的Node节点出现软策略(preferred....):非强制性的,会优先选择满足条件的Node节点调度,即使没有满足条件的Node节点,Pod依然会完成调度

3.污点(taint)

3.1配置

kubectl taint node <node名称>  key=value:effecteffect支持的选项NoSchedule(一定不会被调度)  
PreferNoSchedule(尽量不被调度)  
NoExecute(不会被调度,并驱逐节点上的Pod)

3.2污点删除

kubectl taint node <node名称>  key[=value:effect]-

3.3查看节点有哪些污点

kubectl describe nodes  <node名称>  | grep Taints

4.容忍 (tolerations)

4.1配置

spec:tolerations:- key: 污点键名operator: Equal|Existsvalue: 污点键值effect: NoSchedule|PreferNoSchedule|NoExecute

5.不可调度(cordon)

kubectl cordon 	<node名称>    ##设置为不可调度kubectl uncordon  <node名称>   ##解除不可调度

6.不可调度 + 驱逐(drain)

kubectl drain  <node名称>  --ignore-daemonsets --delete-emptydir-data --force

7.Pod的启动过程

1)通过 scheduler 根据调度算法选择一台在最适合的 Node节点运行 Pod
2)拉取镜像
3)挂载 存储卷 等
4)创建并运行容器
5)根据容器的探针探测结果设置 Pod 状态

8.Pod的生命周期

生命周期状态说明
PendingPod已经创建,但是处于包括Pod还未完成调度到Node节点的过程或者处于镜像拉取过程中、存储卷挂载失败等情况
RunningPod中至少有一个容器正在运行
SucceededPod中的所有容器都已经成功退出,且不再重启。(Completed)
FailedPod中的所有容器都已终止,且至少有一个容器异常退出。(Error)
UnknownMaster节点的 controller-manager 无法获取 Pod 的状态,通常是因为 Master节点与 Pod 所在的 Node 节点通信失联导致的
Pod遵循预定义的生命周期,起始于Pending阶段,如果至少其中有一个主要容器正常启动,则进入Running阶段,之后取决于Pod中是否有容器以失败状态结束而进入Succeeded或者Failed阶段。

三、K8S中排障方法

kubectl get pods                                                                查看Pod运行状态
kubectl describe <资源类型|pods> <资源名称>                                     查看资源的详细信息和事件
kubectl logs <pod名称> [-c <容器名>] [-p]                                       查看容器的进程日志
kubectl exec -it <pod名称> [-c <容器名>] sh|bash                                进入Pod容器,查看容器内部相关状态信息
kubectl debug -it <pod名称> --image=<临时容器的镜像名>  --target=<目标容器>     在Pod中创建临时容器进入目标容器进行调试在Pod容器的宿主机使用nsenter转换网络等命名空间,直接在宿主机进入目标容器的命名空间进行调试

查看k8s集群中相关信息

kubectl get nodes     查看Node节点的运行状态
kubectl get cs        查看Master组件的状态
kubectl cluster-info  查看集群信息journalctl -u kubelet -f   跟踪查看Kubelet进程日志

看k8s集群中相关信息

kubectl get nodes     查看Node节点的运行状态
kubectl get cs        查看Master组件的状态
kubectl cluster-info  查看集群信息journalctl -u kubelet -f   跟踪查看Kubelet进程日志

相关文章:

K8S调度

K8S调度 一、List-Watch 机制 controller-manager、scheduler、kubelet 通过 List-Watch 机制监听 apiserver 发出的事件&#xff0c;apiserver 通过 List-Watch 机制监听 etcd 发出的事件1.scheduler 的调度策略 预选策略/预算策略&#xff1a;通过调度算法过滤掉不满足条件…...

vue+element多层表单校验prop和rules

核心点&#xff1a;外层循环是item和index&#xff0c;内层循环是item2和index2 如果都是定义的同一个属性名 外层循环得写:prop"block.index.numerical" 同理内层循环就得写:prop"objectSpecs. index2 .numerical" 校验函数方法 :rules"getRules(it…...

Dubbo 核心概念和架构

以上是 Dubbo 的工作原理图&#xff0c;从抽象架构上分为两层&#xff1a;服务治理抽象控制面 和 Dubbo 数据面 。 服务治理控制面。服务治理控制面不是特指如注册中心类的单个具体组件&#xff0c;而是对 Dubbo 治理体系的抽象表达。控制面包含协调服务发现的注册中心、流量管…...

【数据结构OJ题】反转链表

原题链接&#xff1a;https://leetcode.cn/problems/reverse-linked-list/description/ 目录 1. 题目描述 2. 思路分析 3. 代码实现 1. 题目描述 2. 思路分析 方法一&#xff1a;三指针翻转法 使用三个结构体指针n1&#xff0c;n2&#xff0c;n3&#xff0c;原地修改结点…...

Java8 Stream 之groupingBy 分组讲解

本文主要讲解&#xff1a;Java 8 Stream之Collectors.groupingBy()分组示例 Collectors.groupingBy() 分组之常见用法 功能代码: /** * 使用java8 stream groupingBy操作,按城市分组list */ public void groupingByCity() { Map<String, List<Em…...

优哲SSD大文件写性能测试

SDD磁盘性能测试&#xff1a; 空盘&#xff1a; 大文件读&#xff0c;写&#xff0c;读写&#xff08;4/6&#xff09;性能测试&#xff0c;删除性能测试&#xff0c;N进程&#xff0c;N线程 小文件读&#xff0c;写&#xff0c;读写&#xff08;4/6&#xff09;性能测试&am…...

Python基础教程: json序列化详细用法介绍

前言 嗨喽&#xff0c;大家好呀~这里是爱看美女的茜茜呐 Python内置的json模块提供了非常完善的对象到JSON格式的转换。 废话不多说&#xff0c;我们先看看如何把Python对象变成一个JSON&#xff1a; d dict(nameKaven, age17, sexMale) print(json.dumps(d)) # {"na…...

一张图看懂 USDT三种类型地址 Omni、ERC20、TRC20的区别

USDT是当前实用最广泛&#xff0c;市值最高的稳定币&#xff0c;它是中心化的公司Tether发行的。在今年的4月17日之前&#xff0c;市场上存在着2种不同类型的USDT。4月17日又多了一种波场TRC20协议发行的USDT&#xff0c;它们各自有什么区别呢?哪个转账最快到账&#xff1f;哪…...

SegFormer之模型训练

单卡训练&#xff0c;所有配置文件里的【SyncBN】改为【BN】 启动训练 &#xff08;1&#xff09;终端直接运行 python tools/train.py local_configs/segformer/B1/segformer.b1.512x512.ade.160k.py &#xff08;2&#xff09;在编辑器中运行 在 [config] 前面加上’–‘将…...

Azure资源命名和标记决策指南

参考 azure创建虚拟机在虚拟机中选择编辑标签&#xff0c;并添加标记&#xff0c;点击应用 3.到主页中转到所有资源 4. 添加筛选器并应用 5.查看结果&#xff0c;筛选根据给服务器定义的标签筛选出结果。 参考链接: https://learn.microsoft.com/zh-cn/azure/cloud-adoption…...

【在一个升序数组中插入一个数仍升序输出】

在一个升序数组中插入一个数仍升序输出 题目举例&#xff1a; 有一个升序数组nums&#xff0c;给一个数字data&#xff0c;将data插入数组nums中仍旧保证nums升序&#xff0c;返回数组中有效元素个数。 比如&#xff1a;nums[100] {1, 2, 3, 5, 6, 7, 8, 9} size 8 data 4 …...

图像去雨、去雪、去雾论文学习记录

All_in_One_Bad_Weather_Removal_Using_Architectural_Search 这篇论文发表于CVPR2020&#xff0c;提出一种可以应对多种恶劣天气的去噪模型&#xff0c;可以同时进行去雨、去雪、去雾操作。但该部分代码似乎没有开源。 提出的问题&#xff1a; 当下的模型只能针对一种恶劣天气…...

YARN框架和其工作原理流程介绍

目录 一、YARN简介 二、YARN的由来 三、YARN的基本设计思想 四、YARN 的基本架构 4.1 基本架构图 4.2 基本组件介绍 4.2.1 ResourceManager 4.2.1.1 任务调度器(Resource Scheduler) 4.2.1.2 应用程序管理器&#xff08;Applications Manager&#xff09; 4.2.1.3 其他…...

多维时序 | MATLAB实现ZOA-CNN-BiGRU-Attention多变量时间序列预测

多维时序 | MATLAB实现ZOA-CNN-BiGRU-Attention多变量时间序列预测 目录 多维时序 | MATLAB实现ZOA-CNN-BiGRU-Attention多变量时间序列预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 1.Matlab基于ZOA-CNN-BiGRU-Attention斑马优化卷积双向门控循环单元网络…...

centos上下载redis

1.redis 特点 Redis特性&#xff08;8个&#xff09; 1 速度快&#xff1a;10w ops&#xff08;每秒10w读写&#xff09;&#xff0c;数据存在内存中&#xff0c;c语言实现&#xff0c;单线程模型 2 持久化&#xff1a;rdb和aof 3 多种数据结构&#xff1a; 5大数据结构 …...

黑马项目一阶段面试58题 Web14题(二)

八、内连接和外连接查询有什么区别 内连接 获取两表的交集部分 外连接 获取某表的所有数据&#xff0c;以及两表的交集数据 九、事务管理的作用&#xff0c;四大特性 作用 保证多个增删改的操作&#xff0c;要么同时成功&#xff0c;要么同时失败 四大特性 1.原子性 事…...

软考高项-思维导图34-36(计算机高级系统项目管理师)

陆续更新一些软考高项的思维导图&#xff0c;都是一些必背知识点&#xff0c;希望可以帮助大家早日考过高项&#xff0c;早日当上高工&#xff0c;早日成为杭州E类人才。全部完整导图快速获取链接&#xff1a;计算机高级系统项目管理师-思维导图汇总 三十四、需求按层次分 三十…...

C++的stack和queue+优先队列

文章目录 什么是容器适配器底层逻辑为什么选择deque作为stack和queue的底层默认容器优先队列优先队列的模拟实现stack和queue的模拟实现 什么是容器适配器 适配器是一种设计模式(设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总 结)&#xff0c;…...

Ubuntu 18.04.6 Android Studio Giraffe adb logcat 无法使用

在 Ubuntu 18.04.6 上 在链接上设备以后&#xff0c;发现可以用 Android Studio 安装应用 但无法用 Android Studio 看 logcat 手动从命令行停止&#xff0c;启动 adb 会报错如下: daemon not running. starting it now on port 5037 ADB server didnt ACK fail…...

Python采集天气数据,做可视化分析【附源码】

嗨害大家好鸭&#xff01;我是小熊猫~ 毕业设计大家着急吗&#xff1f; 没事&#xff0c;我来替大家着急 源码、素材python永久安装包:点击此处跳转文末名片获取 本文知识点: 动态数据抓包 requests发送请求 结构化非结构化数据解析 开发环境: python 3.8 运行代码 pycharm 2…...

Linux下载加速:Qwen2.5-32B-Instruct优化方案

Linux下载加速&#xff1a;Qwen2.5-32B-Instruct优化方案 如果你经常在Linux系统上下载软件包、模型权重或者大型数据集&#xff0c;肯定遇到过下载速度慢、连接不稳定、甚至中途断掉需要重来的情况。特别是下载几十GB的大模型文件时&#xff0c;那种看着进度条半天不动的感觉…...

Whisky终极指南:在macOS上免费运行Windows程序的完整教程

Whisky终极指南&#xff1a;在macOS上免费运行Windows程序的完整教程 【免费下载链接】Whisky A modern Wine wrapper for macOS built with SwiftUI 项目地址: https://gitcode.com/gh_mirrors/wh/Whisky 想在macOS上运行Windows软件和游戏&#xff1f;Whisky为你提供了…...

Photon光影包:颠覆级Minecraft视觉体验的沉浸式渲染方案

Photon光影包&#xff1a;颠覆级Minecraft视觉体验的沉浸式渲染方案 【免费下载链接】photon A gameplay-focused shader pack for Minecraft 项目地址: https://gitcode.com/gh_mirrors/photon3/photon 在像素化的方块世界中&#xff0c;如何突破视觉边界实现电影级画面…...

从Windows玩家到Linux新手:我的Ubuntu 22.04双系统入坑实录与软件生态迁移心得

从Windows玩家到Linux新手&#xff1a;我的Ubuntu 22.04双系统入坑实录与软件生态迁移心得 第一次看到Ubuntu的紫色登录界面时&#xff0c;我盯着那个不断旋转的加载动画发了五分钟呆——作为用了十五年Windows的老用户&#xff0c;这个瞬间仿佛打开了新世界的大门。但兴奋感很…...

从单核到16核:用程序员思维图解CPU参数(附性能测试代码)

从单核到16核&#xff1a;用程序员思维图解CPU参数&#xff08;附性能测试代码&#xff09; 在开发高性能应用时&#xff0c;CPU的选择往往直接决定了程序的执行效率。但面对琳琅满目的参数——主频、核心数、线程数、缓存大小、架构代际——开发者该如何做出明智决策&#xff…...

小白也能懂:雪女-斗罗大陆-造相Z-Turbo文生图模型使用详解

小白也能懂&#xff1a;雪女-斗罗大陆-造相Z-Turbo文生图模型使用详解 1. 模型介绍 1.1 什么是雪女-斗罗大陆-造相Z-Turbo 雪女-斗罗大陆-造相Z-Turbo是一款专门用于生成《斗罗大陆》风格图片的AI模型&#xff0c;特别擅长创作与"雪女"角色相关的精美图像。这个模…...

如何通过Diablo Edit2高效定制暗黑破坏神II角色?全攻略指南

如何通过Diablo Edit2高效定制暗黑破坏神II角色&#xff1f;全攻略指南 【免费下载链接】diablo_edit Diablo II Character editor. 项目地址: https://gitcode.com/gh_mirrors/di/diablo_edit 你是否曾因暗黑破坏神II中属性点分配错误而重开新角色&#xff1f;是否为刷…...

AI编程实战:工具选型、效率提升与代码优化技巧

2026年&#xff0c;AI编程已进入“自动驾驶时代”&#xff0c;据行业数据显示&#xff0c;AI编程工具可使开发者效率提升30%-70%&#xff0c;中小企业开发成本降低70%&#xff0c;个人开发者可快速实现产品落地。对于开发者而言&#xff0c;熟练运用AI编程工具&#xff0c;不是…...

CasRel在企业搜索中的应用:构建结构化语义索引提升召回质量

CasRel在企业搜索中的应用&#xff1a;构建结构化语义索引提升召回质量 1. 引言&#xff1a;当搜索遇到瓶颈 你有没有遇到过这种情况&#xff1a;在公司内部的知识库里搜索“2024年第三季度华东区的销售数据”&#xff0c;结果返回了一堆包含“销售”、“数据”、“华东”等关…...

新一代指控系统依然是:人机环

AI是强大的“赋能器”和“加速器”&#xff0c;但指挥的艺术、责任和最终决断必须由人掌握。基于俄乌、美以伊博弈的案例&#xff0c;构建新一代“人机环境融合”体系化指控系统的具体实践路径已经清晰。AI的定位&#xff1a;从“自动化”到“智能化辅助”美军Maven系统&#x…...