k8s系统架构图

kubernetes 设计架构 kubernetes 设计架构 Kubernetes集群包含有节点代理kubelet和Master组件(API,Scheduler,etc),一切都基于分布式的存储系统。下面是kubernetes的架构图 kubernetes节点 在这张系统架构图中,我们把服务氛围运行在工作节点上的服务和组成集群级别控制板的服务 kubernetnes节点有运行应用容器必备的服务,而这些都是受Master的控制... 阅读详情

1、Master和Node

在这里插入图片描述

1)、Master

K8S中的Master是集群控制节点,负责整个集群的管理和控制

在Master上运行着以下关键进程:

  • kube-apiserver:提供了HTTP Rest接口的关键服务进程,是K8S里所有资源的增删改查等操作的唯一入口,也是集群控制的入口进程
  • kube-controller-manager:K8S里所有资源对象的自动化控制中心,集群内各种资源Controller的核心管理者,针对每一种资源都有相应的Controller,保证其下管理的每个Controller所对应的资源始终处于期望状态
  • kube-scheduler:负责资源调度(Pod调度)的进程,通过API Server的Watch接口监听新建Pod副本信息,并通过调度算法为该Pod选择一个最合适的Node
  • etcd:K8S里的所有资源对象以及状态的数据都被保存在etcd中

2)、Node

Node是K8S集群中的工作负载节点,每个Node都会被Master分配一些工作负载,当某个Node宕机时,其上的工作负载会被Master自动转移到其他节点上

在每个Node上都运行着以下关键进程:

  • kubelet:负责Pod对应的容器的创建、启停等任务,同时与Master密切协作,实现集群管理的基本功能
  • kube-proxy:实现Kubernetes Service的通信与负载均衡机制的重要组件
  • Docker Engine:Docker引擎,负责本机的容器创建和管理工作

在默认情况下Kubelet会向Master注册自己,一旦Node被纳入集群管理范围,kubelet进程就会定时向Master汇报自身的信息(例如机器的CPU和内存情况以及有哪些Pod在运行等),这样Master就可以获知每个Node的资源使用情况,并实现高效均衡的资源调度策略。而某个Node在超过指定时间不上报信息时,会被Master判定为失败,Node的状态被标记为不可用,随后Master会触发工作负载转移的自动流程

2、Pod

每个Pod都有一个根容器的Pause容器,还包含一个或多个紧密相关的用户业务容器

在这里插入图片描述

Pod里的多个业务容器共享Pause容器的IP,共享Pause容器挂接的Volume。在K8S里,一个Pod里的容器与另外主机上的Pod容器能够直接通信

Pod有两种类型:普通的Pod及静态Pod(Static Pod)。后者并没被存放在K8S的etcd存储里,而是被存放在某个具体的Node上的一个具体文件中,并且只在此Node上启动、运行。而普通的Pod一旦被创建,就会被放入etcd中存储,随后会被K8S的Master调度到某个具体的Node上并进行绑定(Binding),随后该Pod被对应的Node上的kubelet进程实例化成一组相关的Docker容器并启动。在默认情况下,当Pod里的某个容器停止时,K8S会自动检测到这个问题并且重新启动这个Pod(重启Pod里的所有容器),如果Pod所在的Node宕机,就会将这个Node上的所有Pod重新调度到其他节点上

在这里插入图片描述

3、K8S创建一个Pod的流程

在这里插入图片描述

1)、用户提交创建Pod的请求,可以通过API Server的REST API,也可用Kubectl命令行工具

2)、API Server处理用户请求,存储Pod数据到etcd

3)、Schedule通过和API Server的watch机制,查看到新的Pod,尝试为Pod绑定Node

4)、过滤主机:调度器用一组规则过滤掉不符合要求的主机,比如Pod指定了所需要的资源,那么就要过滤掉资源不够的主机

5)、主机打分:对第一步筛选出的符合要求的主机进行打分,在主机打分阶段,调度器会考虑一些整体优化策略,比如把一个Replication Controller的副本分布到不同的主机上,使用最低负载的主机等

6)、选择主机:选择打分最高的主机,进行binding操作,结果存储到etcd中

7)、Kubelet根据调度结果执行Pod创建操作: 绑定成功后,会启动container,Scheduler会调用API在数据库etcd中创建一个bound pod对象,描述在一个工作节点上绑定运行的所有Pod信息。运行在每个工作节点上的Kubelet也会定期与etcd同步bound pod信息,一旦发现应该在该工作节点上运行的bound pod对象没有更新,则调用Docker API创建并启动Pod内的容器

在这期间,Control Manager同时会根据K8S的mainfiles文件执行RC Pod的数量来保证指定的Pod副本数。而其他的组件,比如Scheduler负责Pod绑定的调度,从而完成整个Pod的创建

如何基于 K8s 构建下一代 DevOps 平台? 简介:当前云原生 DevOps 体系现状如何?面临哪些挑战?如何通过 OAM 解决云原生 DevOps 场景下的诸多问题?云原生开发应用模型 OAM(Open Application Model) 社区核心成员孙健波将为大家一一解答,并分享如何基于 OAM 和 Kubernetes 打造无限能力的下一代 DevOps 平台。 作者| 孙健波(天元) 导读:当前云原生 DevOps 体系现状如何?面临哪些挑战?如何通过 OAM 解决云原生 DevOps 场景下的诸多问题?云原生开发应用模型 OA.. 阅读详情

相关推荐

DevOps实战笔记--3(Jenkins流水线任务+K8S介绍)

当我们采用自由风格构建项目时,项目中的每个步骤都需要进行单独配置,而且构建时每一步之间没有明确的区分,若出现问题,需要单独查找控制台,定位起来较为困难。于是我们在此引入Jenkins流水线任务,此任务类型可以使项目的执行过程可视化,使问题的定位过程变得更加方便。在使用流水线任务时,我们通过Jenkinsfile对任务进行统一的配置与管理。通常,我们为方便后期维护,会选择将Jenkinsfile放在项目中。所以,通过流水线构建项目的方式往往较其他方式的操作更为灵活与简便。

m0_50599085的博客 2553

Kubernetes (K8S) 架构详细介绍

Kubernetes 的架构设计体现了分布式系统的最佳实践: 声明式 API:用户声明期望状态,系统负责达成 控制器模式:通过循环对比实际状态和期望状态 松耦合:组件间通过 API 和 Watch 机制通信 可扩展性:支持 CRD、Webhook、Operator 等扩展方式 高可用性:控制平面多副本部署,etcd 集群存储 这种架构使 Kubernetes 能够管理大规模容器化应用,提供自动化部署、扩展和管理能力。

d3y1`5 81_09 3223

o型圈沟槽设计_O型密封圈——详细选型过程及步骤

一、密封圈常用材料二、密封圈常用密封形式密封圈分为活塞密封,活塞杆密封,端面密封,旋转密封。三、O型密封圈的选型规则O型密封圈的尺寸图径向安装O型圈选型(静态和动态运动)活塞杆密封选择适当规格的O形圈时,应该保证其外径(d1+2*d2)至少等于或者大于沟槽外径d6;当选择的O形圈直径d1大于250 mm时, O形圈外径将不能超过沟槽外径的3%;当选择的O形圈直径d1小于250mm时, O形圈外径将...

weixin_39856630的博客 2万+

k8s系统架构图(二)

一个K8S集群由两部分构成 master节点和node节点。 master节点主要负责集群的控制,对pod进行调度,已经令牌管理等等功能。 node节点主要是负责干活,启动容器、管理容器。 master节点和node节点一般不要部署在一台机器上。 上面这个架构图,举例是一个master节点和2个node节点。但实际生产上,从高可用考虑,是需要部署多个master节点的。 将这张图抽象一下,大约是这个样子 master节点中又有很多组件 主要的是: Api Server:对外...

己亥谷雨 1051

8.2-12.4GHz喇叭天线设计

使用后处理模板的优化算法,对a1、h_horn、b1进行优化,各参数的优化区间即为之前计算得到的参数范围。由于矩形喇叭的辐射特型基本上是E面和H面扇形喇叭的结合,当波导中只是单模传播(只有TE波)时,矩形喇叭的口径可以通过远场公式推理出来。表示矩形喇叭的口径效率,进行最佳增益设计时,一般取值为0.5。从表中可以看出,该结构在8.58GHz的增益误差为2.68%>2.5%,需要对结构进行优化。建模完成,之后就是在矩形波导尾部添加波导端口激励,以及对应频率的远场监视器。,在这里,将频率定为区间的中心频率。

qq_48897427的博客 6663

华为昇腾310P3+deepseek蒸馏版性能调优:FP16精度优化全记录

本文详细介绍了在华为昇腾310P3硬件环境下优化DeepSeek蒸馏版模型FP16精度的关键技术路径。通过分层量化策略、内存分配优化和并行计算配置,显著提升模型推理性能,实现83%的并发处理能力提升,同时保持98.7%的原始模型准确率。

weixin_29074409的博客 351

k8s网络架构图_Python 五分钟绘制漂亮的系统架构图

Diagrams 是一个基于Python绘制云系统架构的模块,它能够通过非常简单的描述就能可视化架构,并支持以下6个云产品的图标:AWS、Azure、GCP、K8s、阿里云 和Oracle 云基于Diagrams提供的节点,你只需要指定一个云产品(实际上选哪个都一样,我们只需要那个产品相应的图标,你可以选一个自己觉得好看的产品),使用其内部自带的云产品的图标,就能简单绘制基于某云产品...

weixin_31515619的博客 809

基于DFT的mbist sdc模板(DFT)

摘要:本文详细介绍了DFT测试模式下的SDC约束方法。

murphyrong的博客 926

Go-Diagrams终极指南:如何用Go快速创建专业的系统架构图

Go-Diagrams是一个功能强大的Go语言库,它能帮助开发者轻松创建美观、专业的系统架构图。通过简单的代码,你可以快速构建包含各种云服务、数据库、网络组件的系统 diagrams,让复杂的架构关系一目了然。无论是技术文档、项目演示还是架构设计讨论,Go-Diagrams都能成为你的得力助手。 ## 为什么选择Go-Diagrams? 在软件开发和系统设计中,清晰直观的架构图是沟通和协作的重

gitblog_00234的博客 865

XPe开发初体验(一)XPe概述

XP Embedded是微软Windows Embedded产品线中非常重要的一环,不过比起大名鼎鼎的Windows Embedded CE,XPe显得过于低调了。在接下来的一段时间里,我希望能够用六篇的篇幅来描述一下XPe的整个开发过程。这个系列文章主要是针对有Windows编程经验,但是没有嵌入式开发经验的开发者,提供一些概念和开发过程的初步介绍。XP Embedded是一个基于Windo

aawolf = new Mobile.MVP 1万+

K-means算法代码实现(python)

K-means算法代码实现以及解决质心选择问题 计算距离 距离通常使用欧几里得距离来衡量 def euclDistance(vector1, vector2): return np.sqrt(sum((vector2 - vector1) ** 2)) 初始化质心 def initCentroids(data, k): numSamples, dim = data.shape ...

江南小帅瓜的博客 1万+

10个企业级系统架构图案例:Go-Diagrams实战解析与最佳实践

在当今云原生时代,清晰直观的系统架构图已成为技术文档不可或缺的一部分。Go-Diagrams作为一款强大的Go语言图表生成工具,让开发者能够用代码创建专业的企业级系统架构图,实现文档与代码的完美同步。 ## 🚀 Go-Diagrams核心优势与安装指南 Go-Diagrams采用声明式编程模型,通过简单的Go代码即可生成复杂的架构图。其主要优势包括: - **代码即文档**:架构图与代码库

gitblog_00384的博客 473

【专栏导引贴】100+智能优化算法:从背景原理到代码实战(持续更新)

本专栏系统整理100+种现代优化算法,涵盖粒子群优化(PSO)、遗传算法(GA)、鲸鱼优化(WOA)等经典方法,以及白鲸优化(BWO)、非洲秃鹫优化(AVOA)等新兴算法。每篇详解包含生物启发原理、数学模型、代码实现及工程应用,采用统一编程风格,提供可直接运行的实例代码。专栏持续更新,旨在为研究者提供系统化的智能优化算法参考资料,实现从理论到实践的完整知识链。目前已收录23种算法,包括蚁群系统(ACS)、蝙蝠算法(BA)、天牛须搜索(BAS)等自然启发式优化方法。

qq_42212808的博客 3675

如何用Go-Diagrams快速绘制专业系统架构图:零基础入门指南

Go-Diagrams是一个强大的Go语言库,能够帮助开发者轻松创建美观的系统架构图。通过简单的代码配置,你可以快速生成包含各种云服务、数据库和网络组件的专业 diagrams,让你的架构设计一目了然。 ## 为什么选择Go-Diagrams? 传统的架构图绘制工具往往需要手动拖拽组件,不仅耗时而且难以版本控制。Go-Diagrams通过代码定义架构,带来三大优势: - **代码即图**:使

gitblog_00647的博客 462

7.1华为OD机试真题 新系统 - 仓库盘点 (Java/Py/C/C++/Js/Go)

7.1华为OD机试真题 新系统 - 仓库盘点 (Java/Py/C/C++/Js/Go)

算法大师! 511

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Prometheus Operator 监控 Kubernetes 集群

目录[-] 系统参数: Prometheus Operator版本: 0.29 Kubernetes 版本: 1.14.0 项目 Github 地址: https://github.com/...

测试 1052

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

用AI绘制自托管模拟环境:自动化开发新思路

同样的架构描述,选择"AWS风格"会生成带有EC2图标的设计,切换为"Kubernetes风格"则自动变成Pod和Service的表示方式。比如告诉AI"需要3台应用服务器连接Redis集群",它就能自动生成对应的拓扑图。最近在搭建一个自托管服务时,发现画系统架构图特别费时间。上,从描述到可部署的架构图只需几分钟,还能一键分享给团队成员协作修改。对于需要频繁调整设计方案的开发者来说,这个工具确实能省下大量重复劳动时间。不到10秒就生成了带连接箭头和端口标注的架构图,还支持实时拖动调整。

AmberLeopard26的博客 567

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

10分钟上手Visdom+Graphviz:从0到1绘制企业级系统架构图

系统架构师常面临两难:用PowerPoint画的图难以动态更新,用专业工具又太重。Visdom(可视化工具)与Graphviz(图形绘制工具)的组合,完美解决了「动态数据可视化」与「复杂关系绘制」的痛点。通过Python代码生成可交互的架构图,支持实时更新和多人协作,让架构设计从静态图片升级为动态系统。 ## 环境准备与基础配置 ### 安装必要依赖 首先确保已安装Visdom和Graphvi...

gitblog_00945的博客 845

Nginx三十六计之无中生有

Nginx使用场景之偷梁换柱

搬山境KL攻城狮的修炼手册 205

离线部署K8S 1.18.9 (三Master+Haproxy+Keepalived)

一、系统架构图 使用Keepalived + HAProxy搭建高可用Load balancer,完整的拓扑图如下: 二、服务器资源清单 三、安装包及工具清单 k8s-install-tool/├── calico│ ├── calico-cni.tar│ ├── calicoctl│ ├── calico-kube-controllers.tar│ ├── calico-no...

不忘初心,方得始终 1413

Isoflow场景实战:如何设计复杂系统架构图与网络拓扑图

你是否曾经为绘制复杂的系统架构图而头疼?🤔 作为开发者、架构师或运维工程师,清晰的可视化图表对于理解系统架构、网络拓扑和组件关系至关重要。Isoflow是一个功能强大的React组件库,专门用于绘制网络图和系统架构图,让复杂系统的可视化设计变得简单而高效。 ## Isoflow是什么?快速了解这个强大的网络图工具 Isoflow是一个开源的React组件库,专为创建复杂的系统架构图和网络拓扑

gitblog_00494的博客 388

7个成功案例:Go-Diagrams如何简化企业级系统架构管理

Go-Diagrams是一个功能强大的Go语言库,能够帮助开发者轻松创建美观的系统架构图。通过简单的代码定义,你可以快速生成专业的架构可视化图表,极大提升团队沟通效率和文档质量。 ## 为什么选择Go-Diagrams? 在企业级应用开发中,系统架构图是沟通和协作的重要工具。传统的绘图工具往往需要手动调整元素位置,难以维护且容易出现版本不一致问题。Go-Diagrams通过代码驱动的方式解决了

gitblog_00620的博客 445

30分钟上手:用Diagrams绘制高性能系统架构图

你还在为绘制系统架构图烦恼吗?用Visio拖拽图标太耗时,手绘又不够专业?Diagrams让你用Python代码快速生成美观的架构图,30分钟就能从入门到实战,告别繁琐的图形界面操作。 读完本文你将学会: - 安装Diagrams及依赖环境 - 用3行代码绘制基础架构图 - 设计包含多集群的复杂系统 - 自定义节点样式与布局 - 导出高清架构图并集成到文档 ## 安装Diagrams(5分钟)...

gitblog_00599的博客 824

运维必备的三大图表-网络拓扑图、架构图、流程图

运维工作涉及大量复杂的信息,这些信息如果仅靠文字描述,既冗长又容易产生歧义。图表的价值在于将复杂信息结构化、可视化、标准化,让运维人员、开发团队和管理层在同一套视觉语言下高效沟通,今天主要介绍运维工作中必备的三种图表:网络拓扑图、架构图、流程图。

weixin_43466650的博客 414

终极Go-Diagrams安全最佳实践:保护敏感系统信息的完整指南

Go-Diagrams是一个强大的工具,允许开发者使用Go语言创建精美的系统 diagrams。在设计和分享系统架构图时,保护敏感信息至关重要。本指南将介绍使用Go-Diagrams时的安全最佳实践,帮助你在展示系统架构的同时,确保敏感数据不被泄露。 ## 为什么系统 diagram 安全很重要? 系统 diagrams 通常包含网络拓扑、服务关系、数据流向等关键信息。如果这些信息落入未授权者

gitblog_00182的博客 451
上一篇: mysql实现分组查询每个班级的前三名
下一篇: MySQL锁详解
csdcit
博客等级 码龄16年 3粉丝 13原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值