k8s 进阶实战笔记 | Pod 创建过程详解

Pod 创建过程详解

在这里插入图片描述

初始状态0

controller-manager、scheduler、kubelet组件通过 list-watch 机制与 api-server 通信并检查资源变化

第一步

用户通过 CLI 或者 WEB 端等方式向 api-server 发送创建资源的请求(比如:我要创建一个replicaset资源),api-server 会对这个请求做出认证、鉴权响应

  • 成功则继续下一步
  • 失败则返回错误信息给源头

第二步

api-server 将这次部署信息存放在数据库 etcd 中

第三步

etcd 上报这次部署信息给 api-server

第四步和第五步

api-server 接受到上报的部署信息后,controller-manager 通过list-watch 机制检查到新的部署信息,将部署信息加入内部工作队列,然后检查发现资源没有关联的 pod 信息等资源,启动对应的控制器创建相关资源,然后将这些创建的部署资源信息上报给 api-server

第六步

api-server 接收到上报信息后,将部署信息存放在 etcd 中

第七步

etcd 接收到创建部署Pod的信息后,再次上报给 api-server

第八步和第九步

api-server 接受到上报的部署信息后,scheduler通过list-watch 机制检查到新的pod部署信息,并通过预选以及优选策略算法,计算这次pod部署最终可调度的node节点,并上报给 api-server

第十步

api-server 将部署调度信息存放在 etcd 中

第十一步

etcd 接收到新的pod调度信息,再次上报给api-server

第十二步

kubelet也是通过 list-watch 机制来获取自身node上所要运行的pod清单,通过与自己的内部缓存进行比较,如果有新的资源就会触发钩子调用 CNI 、CRI、CSI等接口去启动容器和卷的挂载,然后启动 pod 容器

后续

kube-proxy 组件会为新创建的pod注册动态DNS到CoreDNS,给pod的svc添加iptables规则,用于服务发现和负载均衡,controller 会通过控制循环将当前 pod 状态与用户所期望状态一直对比,如果状态不同,则会修改为用户期望状态,亦或者删除重新创建pod

若不对,请指正

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/650742.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

多表查询练习题

student表: score表: 向student表插入记录: 向score表插入记录: 1.查询student表的所有记录 SELECT * FROM student;2.查询student表的第2条到4条记录 SELECT * FROM student LIMIT 1,3;3.从student表查询所有学生的学号(id)、姓名(name&…

【复现】Laykefu客服系统后台漏洞合集_29

目录 一.概述 二 .漏洞影响 三.漏洞复现 1. 漏洞一: 2. 漏洞二: 3. 漏洞三: 4. 漏洞四: 四.修复建议: 五. 搜索语法: 六.免责声明 一.概述 Laykefu客服系统是thinkphp5Gatewayworker搭建的web客服…

【Linux】:线程安全的单例模式

线程安全的单例模式 一.STL和智能指针的安全二.单例模式1.基本概念2.懒汉和饿汉的实现方式 三.常见的其它锁四.读者写者模型 一.STL和智能指针的安全 1.STL中的容器是否是线程安全的? 不是. 原因是, STL 的设计初衷是将性能挖掘到极致, 而一旦涉及到加锁保证线程安全, 会对性…

router4j--SpringCloud动态路由利器

前言 本文介绍Java的动态路由中间件:router4j。router4j用于SpringCloud项目,它可以将某个url请求路由到指定的机器上,也可以将所有请求强制转到指定机器。 问题描述 Java后端在开发SpringCloud项目时如果同一个应用起了多个实例&#xff…

【K12】tk窗口+plt图像功能-学习物理中的串并联研究【附源码说明】

程序源码 import tkinter as tk import matplotlib.pyplot as plt# 初始化 matplotlib 的字体设置 plt.rcParams[font.family] SimHei# 计算串联电路的函数 def calculate_series():try:# 获取用户输入的电阻值并转换为浮点数r1 float(entry_r1.get())r2 float(entry_r2.ge…

第二篇:数据结构与算法-链表

概念 链表是线性表的链式存储方式,逻辑上相邻的数据在计算机内的存储位置不必须相邻, 可以给每个元素附加一个指针域,指向下一个元素的存储位 置。 每个结点包含两个域:数据域和指针域,指针域存储下一个结点的地址&…

C/C++ 跨文件共享全局变量

目录 效果 项目 代码 下载 为了实现跨文件共享全局变量,我们可以使用 extern 关键字。extern 关键字用于声明一个变量,该变量在其他地方已经定义。它告诉编译器这个变量在其他文件中已经定义了,不需要重新分配内存空间,只需要…

C语言-指针的基本知识(上)

一、关于内存 存储器:存储数据器件 外存 外存又叫外部存储器,长期存放数据,掉电不丢失数据 常见的外存设备:硬盘、flash、rom、u盘、光盘、磁带 内存 内存又叫内部存储器,暂时存放数据,掉电数据…

蓝桥杯-sort排序(上)

sort排序 🎈1.算法说明🎈2.例题🔭2.1例题一🔭2.2例题二🔭2.3例题三🔭2.4例题四🔭2.5例题五🔭2.6例题六 🎈1.算法说明 🔎对于一个数组,通过对数组中…

Spring Security 存储密码之 JDBC

Spring Security的JdbcDaoImpl实现了UserDetailsService接口,通过使用JDBC提供支持基于用户名和密码的身份验证。 JdbcUserDetailsManager扩展了JdbcDaoImpl,通过UserDetailsManager接口提供UserDetails的管理功能。 当Spring Security配置为接受用户名/密码进行身份验证时,…

南卡Neo2评测:实力诠释骨传导耳机全能旗舰,细节展现匠心之作

前段时间朋友让我帮他寻找一款佩戴舒适、音质体验好的蓝牙耳机,因为比较忙所以一直把这件事搁置了,刚好这两天比较闲,所以也是在综合个人的经验和目前较为热门的一些品牌款式,决定帮他寻找一款骨传导耳机,因为骨传导耳…

JVM-字节码应用

一、字节码的应用远超你的想象 二、ASM介绍与读取字节码实战 用CoreAPI解析和TreeAPI都能做字节码解析,区别,TreeAPI必须读取完整字节码信息,才能做解析。 下面代码,使用CoreAPI做解析: package asm;public class MyM…

[已解决]504 Gateway Time-out 网关超时

文章目录 问题:504 Gateway Time-out 504 Gateway Time-out 网关超时思路解决 问题:504 Gateway Time-out 504 Gateway Time-out 网关超时 思路 网上的常规思路是修改nginx配置文件,增加请求执行时间,试过没有用 keepalive_timeout 600; fastcgi_con…

JVM系列-7内存调优

👏作者简介:大家好,我是爱吃芝士的土豆倪,24届校招生Java选手,很高兴认识大家📕系列专栏:Spring原理、JUC原理、Kafka原理、分布式技术原理、数据库技术、JVM原理🔥如果感觉博主的文…

案例分享 | 助力数字化转型:嘉为科技项目管理平台上线

嘉为科技项目管理平台(一期)基于易趋(EasyTrack)进行实施,通过近一年的开发及试运行,现已成功交付上线、推广使用,取得了良好的应用效果。 1.关于广州嘉为科技有限公司(以下简称嘉为…

龙芯,启动!

本文为小白从购买龙芯3A6000主板、硬件安装、软件安装的简单教程。 1 购买 目前(2024年1月)最新的龙芯主板采用龙芯处理器3A6000和7A2000桥片设计的DTX主板,CPU主频可达2.5GHz,2个DDR4内存插槽。桥片内部集成GPU,支…

如何把openwrt的ipk软件包安装到ubuntu上

前提:都是arm64的架构的软件包。 下载openwrt的ipk软件包 1. 从https://pkgs.org/ 查找下载软件包: 本文以swconfig软件包为例,下载swconfig和相关的依赖软件包: swconfig_12_aarch64_cortex-a72.ipk libuci20130104_2021-10-2…

podman+centos和docker+alpine中作性能对比遇到的问题及解决

1.dockeralpine中遇到这个问题 这是由于缺少相关的配置和依赖造成的 通过以下命令在alpine中安装相关配置 apk add --no-cache build-base cairo-dev cairo cairo-tools jpeg-dev zlib-dev freetype-dev lcms2-dev openjpeg-dev tiff-dev tk-dev tcl-dev 2.alpine中python找…

C++——IO流

C语言中我们学习过文件IO的相关函数,那么在C中也一定有各种IO流的 函数或者功能,由我今天来简单介绍一下C中IO流的大致原理及使用。在C语言中我们经常会使用到scanf、printf、sscanf、sprintf等等来实现进程和文件之间数据的流动,在C中虽然由…

python黑马模块

1、使用内置模块 # import通过.使用模块内部的全部功能 """ import time print("ff") time. sleep(5) print("as")# 使用from 导入某个功能 from time import sleep print("ff") sleep(5) print("as")# 使用 * 导入全部…