我的编程空间,编程开发者的网络收藏夹
学习永远不晚

K8S工作原理详解(图文全面总结)

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

K8S工作原理详解(图文全面总结)

K8S 能够帮助开发者、和运维人员,自动化应用的部署、扩展、和管理,适用于构建云原生应用。

图片图片

K8S ,能自动将容器化应用,分配到合适的节点(服务器)上,通过自动调度来确保资源合理分配,最大化资源利用率。

K8S 适合,管理由多个小服务组成的微服务架构,提供自动扩展、自愈、和负载均衡,保证服务的高可用性、和弹性伸缩..等场景。

K8S工作原理

K8S 是一个分布式系统,主要由 Master 节点(主节点)、和Node节点(工作节点)**组成:

如下图所示:

图片图片

Master 节点负责:整个集群的管理、和调度,而 Node 节点则负责运行应用容器,这是K8S的大致分工。

Master 节点

Master,负责管理整个集群的控制、和调度,决定哪些应用实例部署在 Node 上。

Master,主要包含以下组件:

API Server

APIServer,负责:接收用户的请求,并将请求转化为操作指令交由后端的其他组件执行。

图片图片

API Server 是集群的入口,所有对 K8S 的操作,如:资源创建、修改、删除...等,都是通过 HTTP 请求与 API Server 交互的。

所有组件都通过 API Server 通信,确保系统的统一性、和安全性,有点类似“微服务网关”的角色。

etcd

etcd,是分布式键值存储数据库,用于保存集群状态信息。

API Server 是 K8S 集群的“控制中心”,与 etcd 进行交互以保存、和检索集群的配置信息、和状态数据。

etcd,会存储:配置信息、Pod 状态、Service 配置...等,所有的配置信息都存储在 etcd 中。

etcd 使用 Raft 协议保证数据一致性,确保即使在集群部分节点失效时,etcd 中的数据依然是可靠的。

Scheduler

调度器,负责:将新创建的 Pod 分配到合适的 Node 节点上。

Scheduler 根据资源使用情况,比如:(CPU、内存等)、拓扑信息(网络、节点可用性...等等),以及调度策略进行选择。

Controller Manager

Controller Manager ,是 K8S 中的控制器执行者,负责:管理各种控制器。

例如:副本控制器、节点控制器、服务控制器...等,如下图所示:

图片图片

Controller Manager,负责:管理集群的控制循环,包括:节点状态监控、Pod 副本数量维护、处理故障节点。。。等。

Controller Manager ,通过循环检查集群的当前状态,并与期望状态进行比较。

如果存在不一致的地方,控制器会启动相应的操作以纠正实际状态。

比如:ReplicaSet 控制器会确保在任何时刻,Pod 的副本数都、与用户定义的副本数一致。

Node 节点

Node节点,也称为工作节点,负责运行具体的容器化应用,接受 Master 的任务调度。

图片图片

K8S的工作流程,大致如下:

  1. 创建和提交资源定义:用户通过 YAML 文件或 kubectl 命令,提交 Deployment 、或 Pod 等资源定义到 API Server;
  2. API Server 处理请求:API Server 验证请求,并将资源定义保存到 etcd,确保资源定义的持久性;
  3. 调度和部署:检测到新创建的 Pod,并通过资源调度策略选择合适的 Node 节点;
  4. 监控与维护:Controller Manager 持续监控集群状态,出现异常时自动重启、或重新调度。

这些组件共同合作,确保 K8S 集群的资源管理、调度、监控和自愈功能顺利运行。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

K8S工作原理详解(图文全面总结)

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

K8S工作原理详解(图文全面总结)

K8S ,能自动将容器化应用,分配到合适的节点(服务器)上,通过自动调度来确保资源合理分配,最大化资源利用率。K8S 适合,管理由多个小服务组成的微服务架构,提供自动扩展、自愈、和负载均衡,保证服务的高可用性、和弹性伸缩..等场景。

SpringBoot启动原理详解(图文全面总结)

现在我们已经加载了所有的自动化配置类了,但是这些配置类并不是都会生效,具体是否生效,还要看你的项目是否使用了具体的依赖。

分布式锁原理详解(图文全面总结)

在分布式系统后,由于分布式系统是分布在不同机器上,布式系统中竞争共享资源的最小粒度从线程升级成了进程,这将使原单机并发控制锁策略失效。

Nacos最全详解(图文全面总结)

在Kubernetes环境中,Nacos可以与Kubernetes的服务发现机制集成,支持自动注册和发现Kubernetes中的服务。

DDD最全详解(图文全面总结)

实体是具有唯一标识的对象,其生命周期贯穿系统中的多个状态转变。实体的标识符通常是不可变的,而它的状态可以变化。在校园教务系统中,“学生(Student)”就是一个实体。

HashMap数据结构最全详解(图文全面总结)

HashMap内部维护了一个Entry数组,用于存储键值对,Entry是HashMap内部定义的一个私有类,包含了key和value两个属性。

Nginx反向代理配置详解(图文全面总结)

客户端的请求,首先到达反向代理服务器,然后由反向代理服务器,将请求转发给相应的后端服务器,并将后端服务器的响应返回给客户端。

读写分离最全详解(图文全面总结)

读写分离是提升数据库性能和扩展性的有效手段,通过将读操作分散到多个从数据库上,可以显著提高系统的并发处理能力、和响应速度。

单点登录最全详解(图文全面总结)

单点登录(SSO)的核心在于:集中式的认证服务器(如 :CAS Server)管理用户身份,并通过票据机制在不同应用之间共享认证信息。

微服务注册最全详解(图文全面总结)

不论使用那种工具,服务注册一定是要确保高可用的,否则重则的是所有的服务都没法调用,轻则新的服务不能上线,所以一般都会考虑本地有缓存服务地址等方案。

Redis高性能架构详解(图文全面总结)

Redis 使用自己优化的 RESP(REdis Serialization Protocol),网络通信协议。该协议简单且高效,能够减少网络通信的开销,提升数据传输效率。

负载均衡原理详解(万字图文总结)

负载均衡(Load Balancing),是指将流量、或计算,负载均匀分配到多个服务器、或资源上。比如:在处理大量的用户请求时,负载均衡器可以分配流量到多个 Web 服务器上,以保证应用的高可用性和响应速度。

全面解析Http报文工作原理

超文本传输协议(HypertextTransferProtocol,简称HTTP)是应用层协议。HTTP是一种请求/响应式的协议,即一个客户端与服务器建立连接后,向服务器发送一个请求服务器接到请求后,给予相应的响应信息。今天我们就来全方面的了解Http报文工作原理,有需要的小伙伴,参考一下。编程学习网教育
全面解析Http报文工作原理
2024-04-23

Docker与虚拟机区别详解(图文全面总结)

虚拟机,是基于物理机(宿主机)上运行的独立计算环境,拥有独立的操作系统、应用程序、和资源。比如:一台服务器,可以模拟出多台“虚拟机”。

ThreadLocal最全详解(万字图文总结)

ThreadLocal提供了线程的本地变量,是 Java 中用于实现线程局部变量的类,它提供了线程内部的独立变量。即即每个线程都有一个独立的\"变量副本\",不会与其他线程的\"变量副本\"产生冲突。

K8S组件最全详解(九大组件原理图解)

K8S的控制平面、和工作节点是集群正常运行的核心,通过这两部分的协同工作,K8S才能够实现高效的容器编排、管理、和自动化运维。
K8S容器运维2024-11-29

Nginx配置最全详解(万字图文总结)

Nginx 是一个多功能、高性能的 Web 服务器和反向代理,适用于各种网络应用场景。它的模块化设计、简单的配置和高效的性能使其成为构建现代网络基础设施的理想选择。

四大缓存预热解决方案(图文全面总结)

缓存预热可以在系统运行时将热门数据加载到缓存中,减少缓存未命中,提高系统整体性能。缓存预热减少了对底层数据源(如数据库)的频繁访问,降低了数据源的负载。缓存预热有助于系统更好地应对突发的用户访问量,避免系统崩溃或性能下降。总体而言,缓存预热

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录