K8s长什么样?一文道清它的整体架构

小白debug 2023-07-13 08:00

2020年开始我在公众号上分享 K8s 学习笔记的时候属于边学边写,每学会一块内容,记录总结发布在公众号上。如今回看,发现很多内容、知识点写的过于生硬,很多名词不知道是干什么的,就直接翻译了过来,这就导致文字没有温度,内容层次也不够。

所以尝试重新组织语言、文章段落,把 K8s 的这些知识写的更有层次些,让大家更容易读懂,更有温度,不再是觉得对文档的翻译和概念的堆砌。

我整理了以下大致脉络,预计用五篇文章推送给大家。

K8s基础入门和实践--大纲

前三篇理论,后两篇实践,理论篇也会有一些例子,不会让文章内容太枯燥。其实之前已经写过一篇 Docker 与 K8s 的关系,算是进入K8s学习之前的预热,先分清两者的关系。

本篇文章聚焦K8s的整体架构,给大家描绘出K8s的大致模样。

K8s 是什么

Kubernetes(单词太长,后面用 K8s 代替 )是一个基于容器技术的分布式架构方案,它源自Google内部大规模集群管理系统——Borg,自2015年开源后得到开源社群的全力支援,IBM、惠普、微软、RedHat等业界巨头纷纷加入,成为后来的 CNCF 组织(Cloud Native Computing Foundation,云原生计算基金会)首个毕业的项目。

K8s 具备完善的集群管理能力,包括多层次的安全防护和准入机制、多租户应用支撑能力、透明的服务注册和服务发现机制、内建负载均衡器、故障发现和自我修复能力、服务滚动升级和线上扩容、可扩展的资源自动调度机制、多粒度的资源配额管理能力。还提供完善的管理工具,涵盖开发、部署测试、运维监控等各个环节。

总结一句话:是一套结合了容器编排和集群调度管理的大规模分布式系统解决方案。

K8s 长什么样子

K8s 不是我们现实可以看到摸到的一个东西,所以初学者看完 K8s 是什么的描述后,可能也是觉得云里雾里。那么这里我就尝试描绘一下 K8s 它到底长什么样子。描述一个解决方案的样貌,其实直白点说就是它的整体架构是什么样的,由哪些核心部分组成,每个部分相互怎么交互这些。

我们先来看一下K8s的整体的结构。

K8s 的整体结构

K8s 采用Master / Work Node(最初称为Minion,后改名Node) 的结构,Master Node(主节点)控制整个集群,Work Node(从节点)为集群提供计算能力。使用者可以通过命令行或者 Web 控制台页面的方式来操作集群。

下图可以清楚地表示出 K8s 的整体架构

K8s 的整体架构图

了解到 K8s 由主节点、工作节点两大部分组成后,接下来我们逐一展开,看看主节点和工作节点分别由哪些组件构成。

主节点

Master 节点是 K8s 集群的大脑,负责向外开放集群的 API,调度和管理整个集群。集群至少要有一个Master节点,如果在生产环境中要达到高可用,还需要配置 Master 集群。

下面这张图,描绘出了主节点内部的结构。

K8s主节点内部结构

Master主要包含 API ServerSchedulerControllers 三个组成部分, 以及用作存储的 etcd,它用来储存整个集群的状态。

  • etcd:由CoreOS开发,是一个高可用、强一致性的键值存储,为Kubernetes集群提供储存服务,类似于zookeper。它会存储集群的整个配置和状态。主节点通过查询 etcd 以检查节点,容器的现状。
  • API Server:kubernetes最重要的核心元件之一,提供资源操作的唯一入口(其他模块通过API Server查询或修改资源对象,只有API Server才能直接操作etcd),并提供认证、授权、访问控制、API注册和发现等机制。
  • Scheduler:负责资源的调度,按照预定的调度策略将 Pod(k8s中调度的基本单位)调度到相应的Node上,这里说的 Node 就是Work Node,当然如果是只有一个节点的集群,Master 也会同时作为 Work Node。
  • Controllers:通过 API Server 查询要控制的资源对象的预期状态,它检查其管控的对象的当前状态,确保它们始终处于预期的工作状态,它们的工作包括比如故障检测、自动扩充、减少、滚动更新等。

我们能接触到的控制器有,下面这些:

    • Deployment
    • StatuefulSet
    • Service
    • DaemonSet
    • Ingress

具体干什么的,放到下篇文章—K8s面向对象再详细介绍,没错想用K8s,你也得面向对象,可怕不。到时候会结合着例子一块看。

我们继续看K8s 的工作节点的内部结构。

工作节点

K8s 集群的工作节点,可以是物理机也可以是虚拟机器。Node 上运行的主要 K8s 组件有kubelet、kube-proxy、Container Runtime 、Pod 等。

K8s 工作节点的内部结构

kubelet

K8s 集群的每个工作节点上都会运行一个 kubelet 程序 维护容器的生命周期,它接收并执行Master 节点发来的指令,管理节点上的 Pod 及 Pod 中的容器。同时也负责Volume(CVI)和网络(CNI)的管理。

每个 kubelet 程序会在 API Server 上注册节点自身的信息,定期向Master节点汇报自身节点的资源使用情况,并通过cAdvisor监控节点和容器的资源。

通过运行 kubelet,节点将自身的 CPU,RAM 和存储等计算机资源变成集群的一部分,相当于是放进了集群统一的资源管理池中,交由 Master 统一调配。

Container Runtime

容器运行时负责与容器实现进行通信,完成像容器镜像库中拉取镜像,然后启动和停止容器等操作, 引入容器运行时另外一个原因是让 K8s 的架构与具体的某一个容器实现解耦,不光是 Docker 能运行在 K8s 之上,同样也让K8s 的发展按自己的节奏进行。

想要运行在我的生态里的容器,请实现我的CRI (Container Runtime Interface),Container Runtime 只负责调用CRI 里定义的方法完成容器管理,不单独执行 docker run 之类的操作。这个也是K8s 发现Docker 制约了它的发展在 1.5 后引入的。

Pod

Pod 是 K8s 中的最小调度单元。我们的应用程序运行在容器里,而容器又被分装在 Pod 里。一个 Pod 里可以有多个容器,也可以有多个容器。没有统一的标准,是单个还是多个,看要运行的应用程序的性质。不过一个 Pod 里只有一个主容器,剩下的都是辅助主容器工作的。

比如做服务网格 Istio 的 Envoy 网关,就是放在Pod的辅助容器运行来实现流量控制的。 这就是 K8s 的容器设计模式里最常用的一种模式:sidecar。顾名思义,sidecar 指的就是我们可以在一个Pod中,启动一个辅助容器,来完成一些独立于主进程(主容器)之外的工作。

kube-proxy

为集群提供内部的服务发现和负载均衡,监听 API Server 中 Service 控制器和它后面挂的 endpoint 的变化情况,并通过 iptables 等方式来为 Service 的虚拟IP、访问规则、负载均衡。

总结

本篇文章聚焦K8s的整体架构,给大家描绘出K8s的大致模样。下一节我们来说说 K8s 的面向对象,以及我们能接触到的常用控制器对象。此刻看到这句话你的心情可能是:"纳尼,这厮也是面向对象?面向对象,怎么老是你?"

是的,K8s 也是面向对象的,而且面向的还很彻底,就跟某语言说的一切皆对象一样彻底。不过正因为它是面向对象的,那么以面向对象的方式来思考这些东西,反而会很好理解,毕竟我们每天都要面向"对象",不是么:)

- END -


扫码关注公众号「网管叨bi叨」

给网管个星标,第一时间吸我的知识 👆

网管整理了一本《Go 开发参考书》收集了70多条开发实践。去公众号回复【gocookbook】领取!还有一本《k8s 入门实践》讲解了常用软件在K8s上的部署过程,公众号回复【k8s】即可领取!


觉得有用就点个在看  👇👇👇

评论
  • 随着数字化的不断推进,LED显示屏行业对4K、8K等超高清画质的需求日益提升。与此同时,Mini及Micro LED技术的日益成熟,推动了间距小于1.2 Pitch的Mini、Micro LED显示屏的快速发展。这类显示屏不仅画质卓越,而且尺寸适中,通常在110至1000英寸之间,非常适合应用于电影院、监控中心、大型会议、以及电影拍摄等多种室内场景。鉴于室内LED显示屏与用户距离较近,因此对于噪音控制、体积小型化、冗余备份能力及电气安全性的要求尤为严格。为满足这一市场需求,开关电源技术推出了专为
    晶台光耦 2025-01-13 10:42 511浏览
  •   在信号处理过程中,由于信号的时域截断会导致频谱扩展泄露现象。那么导致频谱泄露发生的根本原因是什么?又该采取什么样的改善方法。本文以ADC性能指标的测试场景为例,探讨了对ADC的输出结果进行非周期截断所带来的影响及问题总结。 两个点   为了更好的分析或处理信号,实际应用时需要从频域而非时域的角度观察原信号。但物理意义上只能直接获取信号的时域信息,为了得到信号的频域信息需要利用傅里叶变换这个工具计算出原信号的频谱函数。但对于计算机来说实现这种计算需要面对两个问题: 1.
    TIAN301 2025-01-14 14:15 113浏览
  • 根据Global Info Research(环洋市场咨询)项目团队最新调研,预计2030年全球无人机电池和电源产值达到2834百万美元,2024-2030年期间年复合增长率CAGR为10.1%。 无人机电池是为无人机提供动力并使其飞行的关键。无人机使用的电池类型因无人机的大小和型号而异。一些常见的无人机电池类型包括锂聚合物(LiPo)电池、锂离子电池和镍氢(NiMH)电池。锂聚合物电池是最常用的无人机电池类型,因为其能量密度高、设计轻巧。这些电池以输出功率大、飞行时间长而著称。不过,它们需要
    GIRtina 2025-01-13 10:49 201浏览
  • ARMv8-A是ARM公司为满足新需求而重新设计的一个架构,是近20年来ARM架构变动最大的一次。以下是对ARMv8-A的详细介绍: 1. 背景介绍    ARM公司最初并未涉足PC市场,其产品主要针对功耗敏感的移动设备。     随着技术的发展和市场需求的变化,ARM开始扩展到企业设备、服务器等领域,这要求其架构能够支持更大的内存和更复杂的计算任务。 2. 架构特点    ARMv8-A引入了Execution State(执行状
    丙丁先生 2025-01-12 10:30 471浏览
  • 新年伊始,又到了对去年做总结,对今年做展望的时刻 不知道你在2024年初立的Flag都实现了吗? 2025年对自己又有什么新的期待呢? 2024年注定是不平凡的一年, 一年里我测评了50余块开发板, 写出了很多科普文章, 从一个小小的工作室成长为科工公司。 展望2025年, 中国香河英茂科工, 会继续深耕于,具身机器人、飞行器、物联网等方面的研发, 我觉得,要向未来学习未来, 未来是什么? 是掌握在孩子们生活中的发现,和精历, 把最好的技术带给孩子,
    丙丁先生 2025-01-11 11:35 465浏览
  • 食物浪费已成为全球亟待解决的严峻挑战,并对环境和经济造成了重大影响。最新统计数据显示,全球高达三分之一的粮食在生产过程中损失或被无谓浪费,这不仅导致了资源消耗,还加剧了温室气体排放,并带来了巨大经济损失。全球领先的光学解决方案供应商艾迈斯欧司朗(SIX:AMS)近日宣布,艾迈斯欧司朗基于AS7341多光谱传感器开发的创新应用来解决食物浪费这一全球性难题。其多光谱传感解决方案为农业与食品行业带来深远变革,该技术通过精确判定最佳收获时机,提升质量控制水平,并在整个供应链中有效减少浪费。 在2024
    艾迈斯欧司朗 2025-01-14 18:45 68浏览
  • PNT、GNSS、GPS均是卫星定位和导航相关领域中的常见缩写词,他们经常会被用到,且在很多情况下会被等同使用或替换使用。我们会把定位导航功能测试叫做PNT性能测试,也会叫做GNSS性能测试。我们会把定位导航终端叫做GNSS模块,也会叫做GPS模块。但是实际上他们之间是有一些重要的区别。伴随着技术发展与越发深入,我们有必要对这三个词汇做以清晰的区分。一、什么是GPS?GPS是Global Positioning System(全球定位系统)的缩写,它是美国建立的全球卫星定位导航系统,是GNSS概
    德思特测试测量 2025-01-13 15:42 498浏览
  • 01. 什么是过程能力分析?过程能力研究利用生产过程中初始一批产品的数据,预测制造过程是否能够稳定地生产符合规格的产品。可以把它想象成一种预测。通过历史数据的分析,推断未来是否可以依赖该工艺持续生产高质量产品。客户可能会要求将过程能力研究作为生产件批准程序 (PPAP) 的一部分。这是为了确保制造过程能够持续稳定地生产合格的产品。02. 基本概念在定义制造过程时,目标是确保生产的零件符合上下规格限 (USL 和 LSL)。过程能力衡量制造过程能多大程度上稳定地生产符合规格的产品。核心概念很简单:
    优思学院 2025-01-12 15:43 530浏览
  • 流量传感器是实现对燃气、废气、生活用水、污水、冷却液、石油等各种流体流量精准计量的关键手段。但随着工业自动化、数字化、智能化与低碳化进程的不断加速,采用传统机械式检测方式的流量传感器已不能满足当代流体计量行业对于测量精度、测量范围、使用寿命与维护成本等方面的精细需求。流量传感器的应用场景(部分)超声波流量传感器,是一种利用超声波技术测量流体流量的新型传感器,其主要通过发射超声波信号并接收反射回来的信号,根据超声波在流体中传播的时间、幅度或相位变化等参数,间接计算流体的流量,具有非侵入式测量、高精
    华普微HOPERF 2025-01-13 14:18 495浏览
  • 随着全球向绿色能源转型的加速,对高效、可靠和环保元件的需求从未如此强烈。在这种背景下,国产固态继电器(SSR)在实现太阳能逆变器、风力涡轮机和储能系统等关键技术方面发挥着关键作用。本文探讨了绿色能源系统背景下中国固态继电器行业的前景,并强调了2025年的前景。 1.对绿色能源解决方案日益增长的需求绿色能源系统依靠先进的电源管理技术来最大限度地提高效率并最大限度地减少损失。固态继电器以其耐用性、快速开关速度和抗机械磨损而闻名,正日益成为传统机电继电器的首选。可再生能源(尤其是太阳能和风能
    克里雅半导体科技 2025-01-10 16:18 331浏览
  • 随着通信技术的迅速发展,现代通信设备需要更高效、可靠且紧凑的解决方案来应对日益复杂的系统。中国自主研发和制造的国产接口芯片,正逐渐成为通信设备(从5G基站到工业通信模块)中的重要基石。这些芯片凭借卓越性能、成本效益及灵活性,满足了现代通信基础设施的多样化需求。 1. 接口芯片在通信设备中的关键作用接口芯片作为数据交互的桥梁,是通信设备中不可或缺的核心组件。它们在设备内的各种子系统之间实现无缝数据传输,支持高速数据交换、协议转换和信号调节等功能。无论是5G基站中的数据处理,还是物联网网关
    克里雅半导体科技 2025-01-10 16:20 449浏览
  • 数字隔离芯片是现代电气工程师在进行电路设计时所必须考虑的一种电子元件,主要用于保护低压控制电路中敏感电子设备的稳定运行与操作人员的人身安全。其不仅能隔离两个或多个高低压回路之间的电气联系,还能防止漏电流、共模噪声与浪涌等干扰信号的传播,有效增强电路间信号传输的抗干扰能力,同时提升电子系统的电磁兼容性与通信稳定性。容耦隔离芯片的典型应用原理图值得一提的是,在电子电路中引入隔离措施会带来传输延迟、功耗增加、成本增加与尺寸增加等问题,而数字隔离芯片的目标就是尽可能消除这些不利影响,同时满足安全法规的要
    华普微HOPERF 2025-01-15 09:48 83浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦