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

k8s组件原理

文章目录

    • 1、kubernetes控制平面组件
      • 1、kube-apiserver
      • 2、etcd
      • 3、controller-manager
      • 4、schedule
    • 2、node组件
      • 1、kubelet
      • 2、container runtime
      • 3、kube-proxy
    • 3、附加组件
      • 1、kubedns
      • 2、dashboard
    • 4、创建pod的原理

1、kubernetes控制平面组件

img

1、kube-apiserver

  • 是公开kubernetes api 的集群的中心枢纽,具有高度的可扩展性,可以处理大量的并发请求

  • 是所有组件的通信枢纽,就是接收,验证和处理集群内的各类请求,创建,更新,删除,同时将所有的数据和状态持久化到etcd中

  • 多个kube-apiserver实例可以在集群中同时运行,分担请求压力,提高高可用

  • k8s对外的唯一接口,所有请求都要到这里来

img

2、etcd

  • 保存k8s集群中配置信息和各种资源的状态信息,当数据发生变化时。etcd会快速的通知k8s相关组件,etcd是一个独立的组件,不属于k8s集群

  • 不仅提供数据存储,还提供了监听机制,用于监听和推送变更,etcd的变化会通知api server,并通过watch api 向客户端输出

3、controller-manager

  • 负责管理k8s集群各种资源,保证资源处于预期状态,controller-manager由多种controller组成,包括replication controller、endpoints,controller、namespace controller、serviceaccounts controller等

  • 相当于是一个主要的控制器

4、schedule

  • 资源调度,负责决定pod运行在哪一个node上面,调度时,会对集群的结构进行分析,比如,负载等

2、node组件

1、kubelet

  • 是node的agent,scheduler确定在某个node上运行pod后,会将pod的具体配置信息image,volume发送到kubelet,然后kubelet根据这些信息创建和运行容器。并且向master报告运行状态

2、container runtime

  • 每一个node都需要容器运行时环境,负责下载镜像并运行容器

3、kube-proxy

  • service在逻辑上面代理了多个pod,外界通过service访问pod,service接收到请求就需要kube-proxy完成转发到pod,每一个node上面都会运行kube-proxy服务,负责将访问的service的tcp|udp数据流转发到后端的容器

3、附加组件

1、kubedns

  • 运行提供dns服务的pod,同一个集群内的其他pod可以使用dns服务来解决主机名

2、dashboard

  • 基于web 的ui,管理应用好集群自身

4、创建pod的原理

  • 客户端提交创建请求,可以通过api server的reseful api,也可以使用kubectl命令行工具

  • api server处理用户请求,进行身份验证和授权检查,确保请求的用户是合法的

  • 通过后,存储pod数据到etcd

  • scheduler通过api server查看没有调度的pod,尝试为pod分配主机,中间经过了一系列的算法

  • 过滤出不符合要求的主机,比如pod需要的资源量

  • kubelet创建并运行pod,kubelet通过资源的信息来创建

  • pod创建和运行的过程中,kubelet会不断的向api server报告pod的状态信息,api server将这些状态更写入到etcd中保存,这样用户和其他组件可以通过api server查询pod的当前状态

相关文章:

k8s组件原理

文章目录 1、kubernetes控制平面组件1、kube-apiserver2、etcd3、controller-manager4、schedule 2、node组件1、kubelet2、container runtime3、kube-proxy 3、附加组件1、kubedns2、dashboard 4、创建pod的原理 1、kubernetes控制平面组件 1、kube-apiserver 是公开kubernete…...

0基础跟德姆(dom)一起学AI 深度学习02-Pytorch基本使用

1 基本介绍 (1)什么是Pytorch? PyTorch是一个开源机器学习和深度学习框架。PyTorch 允许您使用 Python 代码操作和处理数据并编写深度学习算法,能够在强大的GPU加速基础上实现张量和动态神经网络。 PyTorch是一个基于 Python 的科学计算包…...

九州未来再度入选2024边缘计算TOP100

随着数智化转型的浪潮不断高涨,边缘计算作为推动各行业智能化升级的重要基石,正在成为支持万物智能化的关键点。近日,德本咨询(DBC)联合《互联网周刊》(CIW)与中国社会科学院信息化研究中心(CIS),共同发布《2024边缘计算TOP100》榜…...

《物理化学学报》

《物理化学学报》主要刊载化学学科物理化学领域具有原创性实验和基础理论研究类文章。《物理化学学报》的办刊宗旨是引领物理化学前沿、服务国家战略需求,坚持正确的办刊方针,以促进学术交流及本学科发展为已任,为发现和培养科技人才服务&…...

【数据集】【YOLO】【目标检测】树木倒塌识别数据集 9957 张,YOLO道路树木断裂识别算法实战训练教程!

一、数据集介绍 【数据集】树木倒塌识别数据集 9957 张,目标检测,包含YOLO/VOC格式标注。 数据集中包含2种分类:{0: fallen_tree},代表倒塌或者断裂的树木。 数据集来自国内外图片网站和视频截图; 可用于无人机树木…...

iOS 18.2 六大新功能外媒實測|ChatGPT進化版SIRI、自製Genmoji

iOS 18.2 測試版再次帶來備受矚目的功能,當中包括 Image Playground、Genmoji,以及很多果迷都期待已久的 Siri與ChatGPT 的整合。外媒實測這些新功能的實際效果和操作體驗,發現當中有不少令人滿意的地方。 1)Image Playground-圖像…...

简单介绍一下mvvm mvc mvp以及区别、历史

MVC(Model - View - Controller) 因MVC架构的灵活性,架构图形式很多,仅供参考 历史: MVC 是最早出现的软件架构模式之一,其历史可以追溯到 20 世纪 70 年代,最初被用于 Smalltalk - 80 环境。…...

达梦8-达梦数据实时同步软件(DMHS)配置-Oracle-DM8

1、安装环境 源端目的端IP地址192.168.6.111192.168.6.110系统版本Red Hat 6.4Kylin v10数据库版本Oracle11g达梦 v8系统用户Oracledmdba字符集MERICAN_AMERICA.AL32UTF8UTF-8端口15215236实例名PRODDMSERVER数据库软件目录/u01/app/oracle/opt/dmdbmsDMHS安装目录/u01/dmhs/o…...

mysql常见死锁的分析

概念: 死锁是指两个或多个事务在数据库操作过程中相互等待对方释放资源,而导致无法继续执行的现象。在 MySQL 中,死锁是较为常见的问题,特别是在高并发环境中。 一、识别死锁 当 MySQL 检测到死锁时,会自动中止其中一个事务&am…...

Go Energy 跨平台(GUI)应用编译和安装包制作

构建打包 energy cli 平台介绍描述windowNSIS安装包制作工具可通过 energy cli 安装linuxdpkg 命令系统自带macosenergy 仅生成 xxx.app系统自带 安装包制作 config/energy_[os].json是初始化应用时自动生成的应用配置文件,在编译和制作应用安装包时使用 Windows…...

众测遇到的一些案列漏洞

文章中涉及的敏感信息均已做打码处理,文章仅做经验分享用途,切勿当真,未授权的攻击属于非法行为!文章中敏感信息均已做多层打码处理。传播、利用本文章所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,作者不为此承担任何责任,一旦造成后果请自行…...

大华乐橙设备私有平台EasyCVR视频设备轨迹回放平台支持哪些摄像机?摄像机如何选型?

在现代安全监控系统中,视频监控设备扮演着至关重要的角色。视频设备轨迹回放平台EasyCVR以其卓越的兼容性和灵活性,支持接入多种品牌和类型的摄像机。这不仅为用户提供了广泛的选择空间,也使得视频监控系统的构建和管理变得更加高效和便捷。本…...

实战攻略 | ClickHouse优化之FINAL查询加速

【本文作者:擎创科技资深研发 禹鼎侯】 查询时为什么要加FINAL 我们在使用ClickHouse存储数据时,通常会有一些去重的需求,这时候我们可以使用ReplacingMergeTree引擎。这个引擎允许你存储重复数据,但是在merge的时候会根据order …...

5G NR gNB 逻辑架构及其功能拆分选项

5G NR gNB 逻辑架构及其功能拆分选项 中央单元 (CU) 和分布式单元功能拆分选项RAN 分体架构的优势在哪里使用哪个拆分函数?参考: 5G NR gNB Logical Architecture and It’s Functional Split OptionsCentral Unit (CU) and Distributed Unit Functional…...

PyQt入门指南四十六 性能优化策略

在PyQt应用程序中,性能优化是一个重要的考虑因素,尤其是在处理大型数据集或复杂图形界面时。以下是一些常见的性能优化策略: 1. 使用延迟加载(Lazy Loading) 延迟加载是一种优化技术,只在需要时加载资源。…...

【RMA】基于知识注入和模糊学习的多模态歧义分析

abstract 多模态情感分析(MSA)利用互补的多模态特征来预测情感极性,主要涉及语言、视觉和音频三种模态。现有的多模态融合方法主要考虑不同模态的互补性,而忽略了模态之间的冲突所导致的歧义(即文本模态预测积极情绪&…...

CulturalBench :一个旨在评估大型语言模型在全球不同文化背景下知识掌握情况的基准测试数据集

2024-10-04,为了提升大型语言模型在不同文化背景下的实用性,华盛顿大学、艾伦人工智能研究所等机构联合创建了CulturalBench。这个数据集包含1,227个由人类编写和验证的问题,覆盖了包括被边缘化地区在内的45个全球区域。CulturalBench的推出&…...

Git 入门篇(一)

前言 操作系统:win11 64位 与gitee搭配使用 Git 入门篇(一) Git 入门篇(二) Git 入门篇(三) 目录 git下载、安装与配置 下载 安装 配置 git下载、安装与配置 下载 官网:git-…...

一个灵活且功能强大的动画库 Popmotion

一个灵活且功能强大的动画库 Popmotion 什么是 Popmotion? Popmotion 是一个强大的 JavaScript 动画库,提供了一系列简洁的 API,方便开发者创建流畅的动画效果。它支持不同类型的动画,包括 CSS 动画、SVG 动画和 DOM 动画&#…...

如何解决传统能源企业后备人才不足、人才规划缺失问题

如何解决传统能源企业后备人才不足、人才规划缺失问题 很多传统能源企业都面临着老员工逐渐退休,新员工还没有培养起来的问题,缺乏提前对人力资源规划的意识,导致当企业要开展新业务时或者老员工离职的时候,缺乏合适的人选。特别…...

PDF模板制作与填充(Java)

1.PDF模板制作 准备原始模板 准备一个原始PDF模板,可以编辑好Word,预留出要填充的部分,再转换成PDF格式。 设置表单域 用任意PDF编辑器打开PDF模板文件,设置表单域,下面以WPS为例: 拖动文本域到需要填充的…...

LeetCode题练习与总结:迷你语法分析器--385

一、题目描述 给定一个字符串 s 表示一个整数嵌套列表,实现一个解析它的语法分析器并返回解析的结果 NestedInteger 。 列表中的每个元素只可能是整数或整数嵌套列表 示例 1: 输入:s "324", 输出:324 解释&#xff…...

Unity WebGL交互通信

Unity 调用 H5 本文使用的 unity 版本为:2021.3.3 1.在unity中通过c#的特性DllImport导出外部实现函数 [DllImport("__Internal")]private static extern void callJsString(string param);[DllImport("__Internal")]private static extern vo…...

王道考研之数据结构

数据结构系列 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 数据结构 数据结构系列1.线性表1.1 线性表的定义和相关概念1.2 线性表的创销 增删查改 判空表长打印 2.顺序表2.1 顺序表定义和相关概念2.2 顺序表的静态实现2.3 顺序表的…...

实习冲刺Day17

算法题 x的平方根 69. x 的平方根 - 力扣&#xff08;LeetCode&#xff09; class Solution { public:int mySqrt(int x) {long left 0,right x;//定义左右边界//数值取的大longlong类型while (left < right) {long mid (right-left1)/2left;//定义中间节点if ((mid *…...

我自己nodejs练手时常用的一些库基础用法

我自己在使用nodejs以及前端实战练习时常用的一些库的基本使用 1.bcrypt //注册账号时&#xff0c;给密码加密 password是前端传过来的密码&#xff0c;hashPassword是存到数据库中的密码 const bcrypt require(bcrypt) const hashPassword bcrypt.hash(password,10) //登…...

岛屿数量问题

给一个0 1矩阵&#xff0c;1代表是陆地&#xff0c;0代表海洋&#xff0c; 如果两个1相邻&#xff0c;那么这两个1属于同一个岛。我们只考虑上下左右为相邻。 岛屿问题: 相邻陆地可以组成一个岛屿&#xff08;相邻:上下左右&#xff09; 判断岛屿个数。 C 解决方案 #include &…...

智能制造基础- TPM(全面生产维护)

TPM 前言一、TPM二、TPM实施步骤三、 消除主要问题3.1 实施指南3.2 如何进行“主要问题”的消除&#xff1f; 四、自主维护4.1 实施指南4.2 主要工作内容4.3 如何进行“自主维护“ 五、计划维护5.1 实施指南5.2 如何实施计划维护 六、TPM 适当的 设备 设计5.1 实施指南5.2 如何…...

C++学习笔记----11、模块、头文件及各种主题(一)---- 模板概览与类模板(4)

2.2.2、显式实例化 有危险存在于有些类模板成员函数的编译错误&#xff0c;在隐式实例化时没有注意到。未被使用的类模板成员函数也可能包含语法错误&#xff0c;因为它们不会被编译到。这会使得检测代码的语法错误很困难。可以强制编译器生成所有成员函数的代码&#xff0c;vi…...

【力扣热题100】[Java版] 刷题笔记-160. 相交链表

题目&#xff1a;160. 相交链表 给你两个单链表的头节点 headA 和 headB &#xff0c;请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点&#xff0c;返回 null 。 图示两个链表在节点 c1 开始相交&#xff1a; 题目数据 保证 整个链式结构中不存在环。 注意…...