学习笔记十九:K8S生成pod过程
K8S生成pod过程
- 流程图
- 具体生成过程
- 用户提交 Pod 定义
- API Server 处理请求
- 调度器分配节点(Scheduling)
- 目标节点上的 Pod 创建
- 网络配置
- 状态上报与监控
- 控制器管理(Controller Manager)
- 就绪与服务发现
- 关键错误场景
- 高级特性
流程图
具体生成过程
用户提交 Pod 定义
用户通过提交 Pod 的 YAML/JSON 配置文件发送到 kube-apiserver。
kubectl apply -f pod.yaml
API Server 处理请求
- 认证与授权:API Server 验证用户身份(如 TLS 证书、Token)并检查权限(RBAC)。
- 准入控制(Admission Control):
- Mutating Admission Controllers:可能修改 Pod 配置(例如注入 Sidecar 容器)。
- Validating Admission Controllers:验证配置的合法性(如资源限制是否合规)。
- 持久化存储:验证通过后,Pod 的元数据写入 etcd 数据库,此时 Pod 状态为 Pending。
调度器分配节点(Scheduling)
- kube-scheduler 监听 API Server,发现未绑定的 Pod。
- 根据调度策略选择合适节点:
- 资源需求(CPU/内存)。
- 节点选择器(nodeSelector)、亲和性(affinity)、污点与容忍(tolerations)。
- 更新 Pod 的 nodeName 字段并写入 etcd,触发事件(如 Scheduled)。
目标节点上的 Pod 创建
- kubelet 监听 API Server,发现分配到本节点的 Pod。
- Pod 配置同步:kubelet 从 API Server 获取 Pod 定义。
- 存储卷挂载:按配置挂载持久卷(PV)、ConfigMap、Secret 等。
- 容器运行时交互:
- 拉取镜像:通过容器运行时(如 containerd)拉取镜像,失败时状态为 ImagePullBackOff。
- 创建容器:
- 先创建 pause 容器(共享网络命名空间)。
- 按顺序启动 Init 容器(若有),全部成功后继续。
- 启动主容器,执行生命周期钩子(如 postStart)。
网络配置
- CNI 插件调用:kubelet 调用 CNI 插件为 Pod 分配 IP、设置网络(如 Calico、Flannel)。
- 网络策略(NetworkPolicy)可能由 CNI 插件或其他组件(如 Cilium)实施。
状态上报与监控
- kubelet 持续监控容器状态,定期向 API Server 上报:
- 容器启动成功 → Pod 状态变为 Running。
- 容器崩溃或探针失败 → 状态为 CrashLoopBackOff 或 Unhealthy。
- 事件流记录:各组件(调度器、kubelet)通过 API Server 记录事件(如 Pulled, Started),可通过 kubectl describe pod 查看。
控制器管理(Controller Manager)
- 若 Pod 属于高层资源(如 Deployment、ReplicaSet):
- 控制器确保实际状态与期望状态一致(例如重启失败的 Pod 或维持副本数)。
- 自愈机制:自动替换不健康的 Pod(如节点故障时重新调度)。
就绪与服务发现
- 就绪探针(Readiness Probe) 通过后,Pod IP 被加入 Service 的 Endpoints。
- kube-proxy 更新节点上的 iptables/ipvs 规则,允许流量路由到新 Pod。
关键错误场景
- 调度失败:无合适节点 → Pod 保持 Pending,需检查资源请求、节点标签或污点。
- 镜像拉取失败:私有镜像权限问题 → 状态为 ImagePullBackOff。
- 容器崩溃:应用启动错误 → CrashLoopBackOff,需检查日志(kubectl logs)。
高级特性
- Init 容器:按顺序运行,全部成功后才启动主容器。
- Sidecar 注入:通过 Admission Controller(如 Istio 的自动注入)动态修改 Pod 配置。
相关文章:
学习笔记十九:K8S生成pod过程
K8S生成pod过程 流程图具体生成过程用户提交 Pod 定义API Server 处理请求调度器分配节点(Scheduling)目标节点上的 Pod 创建网络配置状态上报与监控控制器管理(Controller Manager)就绪与服务发现 关键错误场景高级特性 流程图 具…...
分享如何通过Mq、Redis、XxlJob实现算法任务的异步解耦调度
一、背景 1.1 产品简介 基于大模型塔斯,整合传统的多项能力(NLP、OCR、CV等),构建以场景为中心的新型智能文档平台。通过文档审阅,实现结构化、半结构化和非结构化文档的信息获取、处理及审核,同时基于大…...
C/C++算法竞赛学习书籍
文章目录 C Primer Plus:中文版(第六版)C Primer 中文版(第 5 版)算法竞赛进阶指南 (李煜东)挑战程序设计竞赛 (秋叶拓哉 岩田阳一 北川宜稔)算法竞赛入门经典(第2版) (刘汝佳)啊哈算法 (啊哈磊…...
JVM(Java 虚拟机)
Java语言的解释性和编译性(通过JVM 的执行引擎) Java 代码(.java 文件)要先使用 javac 编译器编译为 .class 文件(字节码),紧接着再通过JVM 的执行引擎(Execution Engine)…...
组件库选择:ElementUI 还是 Ant Design
🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…...
【论文翻译】DeepSeek-V3论文翻译——DeepSeek-V3 Technical Report——第一部分:引言与模型架构
论文原文链接:DeepSeek-V3/DeepSeek_V3.pdf at main deepseek-ai/DeepSeek-V3 GitHub 特别声明,本文不做任何商业用途,仅作为个人学习相关论文的翻译记录。本文对原文内容直译,一切以论文原文内容为准,对原文作者表示…...
渗透利器:Burp Suite 联动 XRAY 图形化工具.(主动扫描+被动扫描)
Burp Suite 联动 XRAY 图形化工具.(主动扫描被动扫描) Burp Suite 和 Xray 联合使用,能够将 Burp 的强大流量拦截与修改功能,与 Xray 的高效漏洞检测能力相结合,实现更全面、高效的网络安全测试,同时提升漏…...
【Redis】redis 存储的列表如何分页和检索
博主介绍:✌全网粉丝22W,CSDN博客专家、Java领域优质创作者,掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌ 技术范围:SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物…...
医疗影响分割 | 使用 Swin UNETR 训练自己的数据集(3D医疗影像分割教程)
<Swin UNETR: Swin Transformers for Semantic Segmentation of Brain Tumors in MRI Images> 代码地址:unetr 论文地址:https://arxiv.org/pdf/2201.01266 一、下载代码 在Github上下载代码,然后进入SWINUNETR,前两个是针对两个数据集(BRATS21、BTCV)的操作,这里…...
前端学习路径
🚀 前言 本文不仅包含学习路径,还整合了 300小时精选资源 和 开发者必备工具链,助你构建完整知识体系! 🔧 开发工具全家桶 工具类型推荐工具使用场景代码编辑器VS Code 插件市场主力开发工具,必装插件&am…...
Day84:数据可视化
数据可视化是数据分析的重要组成部分,它能直观地展现数据规律,使复杂数据变得易懂。Python 提供了多个数据可视化库,其中最常用的是 Matplotlib 和 Seaborn。今天,我们将学习如何使用这些工具绘制折线图、柱状图、散点图等。 1. 安装和导入库 如果你的 Python 没有安装 Ma…...
iOS主要知识点梳理回顾-3-运行时消息机制
运行时(runtime) 运行时是OC的重要特性,也是OC动态性的根本支撑。动态,如果利用好了,扩展性就很强。当然了,OC的动态性只能算是一个一般水平。与swift、java这种强类型校验的语言相比,OC动态性很…...
JSON是什么
JSON 简介 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。它基于 JavaScript 的一个子集,但独立于编程语言,广泛用于 Web 应用中的数据交换。…...
three-tile-vue 开发测试
three-tile 在 github 上开源半年多,已有140余颗星,目前性能和功能已能满足生产环境使用,是替代cesium的一种轻量级解决方案。让我没想到的是第一个商用的竟然是老外。 最近,测试了three-tile在vue中的使用,效果还可以…...
Acwing-基础算法课笔记之基础算法(差分)
Acwing-基础算法课笔记之基础算法(差分) 一、一维差分1、差分的概念2、差分思想 二、二维差分操作流程 一、一维差分 1、差分的概念 对于一个给定的序列a,它的差分序列b定义为: b [ 1 ] a [ 1 ] b[1]a[1] b[1]a[1],…...
c语言判断一个文件的文件格式
在 Linux 下使用 C 语言判断一个文件的文件格式,通常需要检查文件的头信息(也称为“幻数”或“魔数”)。不同的文件格式在文件头有特定的字节序列,这些字节序列可以用来确定文件的类型。以下是一个基本的示例,展示了如…...
e2studio开发RA2E1(12)----打印函数(printf、 sprintf)的实现
e2studio开发RA2E1.12--打印函数printf、 sprintf的实现 概述视频教学样品申请硬件准备参考程序源码下载新建工程工程模板保存工程路径芯片配置工程模板选择时钟设置UART配置UART属性配置设置e2studio堆栈e2studio的重定向printf设置R_SCI_UART_Open()函数原型回调函数user_uar…...
C++编译期优化 ---分支预计__builtin_expect
在编写程序逻辑的时候,使用了大量的if-else 分支,为了程序尽可能的高效运行,会考虑把可能性更高的条件写在前面,这样程序的平均运行时间会更短。 gcc提供了一种方式,可以让编译器自行优化 __builtin_expect(expr,bool)…...
ASP.NET Core SignalR的协议协商
SignalR支持多种服务器推送方式:Websocket、Server-Sent Events、长轮询。默认按顺序尝试。F12查看协商过程。websocket和HTTP是不同的协议,为什么能用同一个端口。在【开发人员工具】的【网络】页签中看WebSocket通信过程。 协议协商问题 集群中协议协…...
问卷数据分析|SPSS实操之独立样本T检验
适用条件: 检验分类变量和定量变量之间的差异 分类变量只能为二分类变量,如性别 1.选择分析--比较平均值--独立样本检验 2. 在下方选择性别(分类变量) 3. 点击定义组,组1输入1,组2输入2 4.在上方填入定量…...
Vue事件处理 - 按键修饰符
Vue 渐进式JavaScript 框架 基于Vue2的学习笔记 - Vue事件处理 - 按键修饰符 目录 按键修饰符 常见修饰符 绑定按键事件 绑定事件 优化回车修饰符 多个按键 直接绑定数字 总结 按键修饰符 常见修饰符 .esc .up .down .left .right . space .ctrl .shift .delete 绑定…...
PostgreSQL错误: 编码“UTF8“的字符0x0xe9 0x94 0x99在编码“WIN1252“没有相对应值
错误介绍 今天遇到一个错误,记录一下 2025-02-10 17:04:35.264 HKT [28816] 错误: 编码"WIN1252"的字符0x0x81在编码"UTF8"没有相对应值 2025-02-10 17:04:35.264 HKT [28816] 错误: 编码"UTF8"的字符0x0xe9 0x94 0x99在编码&quo…...
使用OBS推流,大华摄像头 srs服务器播放
说明: ffmpeg可以推流,但是是命令行方式不太友好,还可以使用主流的OBS开源推流软件,可从官网Open Broadcaster Software | OBS 下载最新版本,目前很多网络主播都是用它做直播。该软件支持本地视频文件以及摄像头推流。…...
Ollama部署DeepSeek(windows or ubuntu)
Ollama(官网是https://ollama.com/)是一个专为在本地机器上便捷部署和运行大型语言模型(LLM)而设计的开源框架。它简化了大型语言模型的部署过程,提供了轻量级与可扩展的架构,使得研究人员、开发人员和爱好者能够更加方便地在本地…...
2、k8s 二进制安装(详细)
k8s 二进制安装 IP规划初始化部署 etcd 集群在 etcd01 节点上操作准备cfssl证书生成工具,加权生成etcd证书上传etcd软件包启动 etcd 服务 部署 Master 组件部署 Worker Node 组件node 节点安装 docker部署组件 部署 CNI 网络组件部署 flannel简介部署 部署 Calico简…...
02、QLExpress从入门到放弃,相关API和文档
QLExpress从入门到放弃,相关API和文档 一、属性开关 public class ExpressRunner {private boolean isTrace;private boolean isShortCircuit;private boolean isPrecise; }/*** 是否需要高精度计算*/ private boolean isPrecise false;高精度计算在会计财务中非常重要&…...
在 Visual Studio Code 与微信开发者工具中调试使用 emscripten 基于 C 生成的 WASM 代码
最近在尝试将一些 C/C、Lua 项目挪到 Web 上跑, 接触到了 emscripten. 这里会介绍下在 Visual Studio Code 与微信开发者工具中调试使用 emscripten 基于 C 生成的 WASM 代码 (WebAssembly) 的一些方法. Emscripten 与 WebAssebmly WebAssembly 是一种新的编码方式, 可以在现代…...
计算机毕业设计——Springboot的社区维修平台旅游管理
📘 博主小档案: 花花,一名来自世界500强的资深程序猿,毕业于国内知名985高校。 🔧 技术专长: 花花在深度学习任务中展现出卓越的能力,包括但不限于java、python等技术。近年来,花花更…...
Oracle常见语法
一、求交集 SELECT column1, column2 FROM table1 INTERSECT SELECT column1, column2 FROM table2;INTERSECT 操作符是 Oracle 和一些其他数据库(如 PostgreSQL 和 SQL Server)特有的集合操作符,在 MySQL 中并不直接支持。MYSQL同效果代码&a…...
[2025年最新]2024.3版本idea无法安装插件问题解决
背景 随着大模型的持续发展,特别年前年后deepseek的优异表现,编程过程中,需要解决ai来辅助编程,因此需要安装一些大模型插件 问题描述 在线安装插件的时候会遇到以下问题: 1.数据一直在加载,加载的很满 2.点…...
说一下 jvm 有哪些垃圾回收器?
JVM 垃圾回收器对比表 垃圾回收器类型工作方式回收方式停顿时间适用场景优点缺点常见问题常见配置Serial GC串行单线程,STW年轻代:复制算法 老年代:标记-整理长小内存、单核CPU,如桌面应用或嵌入式设备简单高效,适用于…...
【Linux】--- 进程间的通信
【Linux】--- 进程间的通信 一、进程间通信的介绍1、进程间通信的概念2、进程间通信的目的3、 进程间通信的本质/前提4、进程间通信的分类 二、管道1、什么是管道2、匿名管道(1)匿名管道的原理(2)pipe函数(3࿰…...
GlusterFS 深度洞察:从架构原理到案例实践的全面解读(上)
文章目录 一.GlusterFS简介二.GlusterFS原理架构三.适用场景四.Glusterfs与其他存储产品对比五.部署GlusterFS集群六. 使用heketi将glusterfs接入k8s作为后端存储 一.GlusterFS简介 GlusterFS是一个免费的开源分布式文件系统,具有无中心节点、堆栈式设计、全局统一…...
实现限制同一个账号最多只能在3个客户端(有电脑、手机等)登录(附关键源码)
如上图,我的百度网盘已登录设备列表,有一个手机,2个windows客户端。手机设备有型号、最后登录时间、IP等。windows客户端信息有最后登录时间、操作系统类型、IP地址等。这些具体是如何实现的?下面分别给出android APP中采集手机信…...
C#综合知识点面试集锦
在.NET Core 框架的面试中,可能会涉及基础概念、核心组件、依赖注入、性能优化等多方面的知识点,以下为你详细介绍: 基础概念 .NET Core 概述 定义与特点:解释 .NET Core 是一个跨平台、开源、模块化且高性能的通用开发框架,能在 Windows、Linux、macOS 等操作系统上运行…...
宝珀(Blancpain):机械制表的三项重大创新(中英双语)
宝珀(Blancpain):机械制表的创新先驱 本文灵感来源: 瑞士钟表业决定逆流而上,杀出一条生路,宝珀更是坚定地宣称“我们永远只做机械表”,它拒绝了石英技术。制表师们在提高腕表的技艺和品质、实…...
稠密架构和稀疏架构
稠密架构和稀疏架构 flyfish 稠密架构 参数使用方面:稠密架构中的大部分参数在每次计算时都会被使用。也就是说,对于输入的每一个样本,模型的所有或大部分参数都会参与到计算过程中。计算特点:计算密集,需要对大量的…...
SpringCloud - Gateway 网关
前言 该博客为Sentinel学习笔记,主要目的是为了帮助后期快速复习使用 学习视频:7小快速通关SpringCloud 辅助文档:SpringCloud快速通关 源码地址:cloud-demo 一、简介 官网:https://spring.io/projects/spring-clou…...
【如何掌握CSP-J 信奥赛中的排序算法】
要掌握CSP-J信奥赛中的排序算法,需要系统学习基础排序算法的原理、实现和应用场景。以下是分阶段的学习路径和建议: 一、必掌握的排序算法清单 CSP-J阶段需重点掌握以下算法(按考察频率排序): 冒泡排序(B…...
3. CSS中@scope
说说你对 CSS 中scope 的了解 <style>/* scope规则 */scope (#app) {.box {width: 100px;height: 100px;background-color: red;}} </style> <div id"app"><div class"box"></div> </div>CSS 中的scope 是一个相对较新…...
基于雷达和摄像头的无人机轨迹识别与激光照射控制研究
标题:基于雷达和摄像头的无人机轨迹识别与激光照射控制研究 内容:1.摘要 摘要:本文研究了基于雷达和摄像头的无人机轨迹识别与激光照射控制。通过对雷达和摄像头数据的融合处理,实现了对无人机轨迹的精确识别。同时,利用激光照射技术对无人机…...
Response 和 Request 介绍
怀旧网个人博客网站地址:怀旧网,博客详情:Response 和 Request 介绍 1、HttpServletResponse 1、简单分类 2、文件下载 通过Response下载文件数据 放一个文件到resources目录 编写下载文件Servlet文件 public class FileDownServlet exten…...
读 DeepSeek-R1 论文笔记
DeepSeek-R1:通过强化学习激发大语言模型的推理能力 DeepSeek-AI 摘要 我们推出第一代推理模型DeepSeek-R1-Zero和DeepSeek-R1。DeepSeek-R1-Zero作为无需监督微调(SFT)预训练阶段、直接通过大规模强化学习(RL)训练的基础模型,展现出卓越的推理能力。…...
【算法-动态规划】、魔法卷轴: 两次清零机会整个数组最大累加和
【算法-动态规划】、魔法卷轴: 两次清零机会整个数组最大累加和 文章目录 一、dp1.1 题意理解1.2 整体思路1.3 具体思路1.4 代码 二、多语言解法 一、dp 1.1 题意理解 nums 数组, 有正负0, 使用最多两次魔法卷轴, 希望使数组整体的累加和尽可能大. 求尽可能大的累加和 其实就…...
蓝桥杯C语言组:分治问题研究
蓝桥杯C语言组分治问题研究 摘要 本文针对蓝桥杯C语言组中的分治问题展开深入研究,详细介绍了分治算法的原理、实现方法及其在解决复杂问题中的应用。通过对经典例题的分析与代码实现,展示了分治算法在提高编程效率和解决实际问题中的重要作用ÿ…...
npm介绍(Node Package Manager)(JavaScript生态中最流行的包管理工具,主要用于Node.js项目的依赖管理)
文章目录 **核心功能****常用命令****关键文件****npm vs 其他工具****最佳实践**官方资源 npm(Node Package Manager)是 JavaScript 生态中最流行的包管理工具,主要用于 Node.js 项目的依赖管理。以下是核心要点: 核心功能 依赖管…...
小白零基础如何搭建CNN
1.卷积层 在PyTorch中针对卷积操作的对象和使用的场景不同,如有1维卷积、2维卷积、 3维卷积与转置卷积(可以简单理解为卷积操作的逆操作),但它们的使用方法比较相似,都可以从torch.nn模块中调用,需要调用的…...
【分布式架构理论3】分布式调用(1):负载均衡
文章目录 零、三种不同的负载均衡一、常见行业负载均衡方案1. 电商与互联网服务2. 金融与支付系统3. 云计算与分布式存储 二、负载均衡策略概述1. 无状态负载均衡(强调公平性)2. 有状态的负载均衡(强调正确性) 三、 总结 零、三种…...
QT 5.15.2 开发地图ArcGIS 100.15.6(ArcGIS Runtime SDK for Qt)
QT 5.15.2ArcGIS下载 Downloads | ArcGIS Runtime API for Qt | Esri Developer ArcGIS安装(略)参考 Display a map | ArcGIS Maps SDK for Qt | Esri Developer QT新建工程 步骤1 步骤2 步骤3 步骤4(选择Topographic不需要KEY) 步骤5&a…...
细读 React | React Router 路由切换原理
2022 北京冬奥会开幕式 此前一直在疑惑,明明 pushState()、replaceState() 不触发 popstate 事件,可为什么 React Router 还能挂载对应路由的组件呢? 翻了一下 history.js 源码,终于知道原因了。 源码 假设项目路由设计如下&#…...