K8S最全详解 - 智慧园区

news/2025/11/3 21:50:39/文章来源:https://www.cnblogs.com/IT-Evan/p/19184177

K8S

K8S,全程是“Kubernetes”,是一个开源的容器编排平台,用于自动化应用的 部署、扩展和管理。

K8S,最早由 Google 开发,后捐赠给 CNCF,如今已经成为 云原生领域的事实标准。

 

K8S 解决了在生产环境中管理大量容器的复杂性。

K8S 不仅是容器管理工具,更是一套用于构建云原生平台的基础设施。

K8S,把运维复杂度转化为可声明、可自动化管理的体系。

 

K8S架构

K8S 采用 主从架构(Master-Node 架构),如下图所示:

 

Master 节点(控制平面 Control Plane):负责集群的管理与调度,相当于“大脑”。

Node 节点(工作节点 Worker Node):运行实际的容器化应用,相当于“手脚”。

 

K8S原理

所有组件通过一个统一的 API Server 进行通信,集群的当前状态和期望状态则存储在一个叫做 Etcd 的分布式数据库中。

1.API Server

API Server:这是 K8S 的核心前端。

所有内部和外部组件(如 kubectl 命令、Kubelet)都必须通过它来与集群交互。

如下图所示:

 

特点:无状态、可水平扩展(通过负载均衡器对外暴露多个实例)。

集群的唯一入口,提供 RESTful API。

负责认证、鉴权、准入控制、资源...等等变更通知。

 

2. Scheduler

负责 Pod 调度,决定 Pod 运行在哪个 Node 节点。

调度过程包括过滤(筛选可用节点)、打分(选择最优节点)、绑定(分配 Pod)。

 

3. Controller Manager

负责多种控制循环(Control Loop),如节点控制器、复制控制器、端点控制器等。

 

例如,Deployment Controller :负责确保 Pod 的副本数量,始终符合你设置的数量。

 

4. etcd

分布式一致性键值存储,保存集群的持久化状态(所有 API 对象)。

提供强一致性(Raft 协议),对高可用控制面至关重要。

 

5.kubelet

Kubelet:这是每个节点上的核心代理。

它与主节点上的 API Server 通信,接收 Pod 的配置清单,并确保这些 Pod 中描述的容器在节点上运行和健康。

 

它还负责向 API Server 报告节点和 Pod 的状态。

 

6.kube-proxy

Kube-proxy:这是一个网络代理,负责管理节点上的网络规则。

它确保 Service 的请求能够正确地路由到后端的 Pod 上,实现 Pod 之间的网络通信和负载均衡。

 

7.容器运行时(Container Runtime)

 

Container Runtime(容器运行时):这是真正运行容器的引擎。Kubelet 依赖它来创建、启动和停止容器。

最常见的容器运行时是 Docker,但现在也支持 containerd 和 CRI-O 等。

 

K8S工作流程

整体工作流程,如下:

 

用户通过 kubectl 或 API Server 提交应用配置。

Master 组件(Scheduler、Controller Manager)做决策并存储状态(etcd)。

Node 节点上的 Kubelet 执行任务,启动 Pod 并汇报状态。

Kube-Proxy 负责服务发现与负载均衡,保证 Pod 可访问。

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

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

相关文章

11/3

今天下午Java考试,惊险度过

ICPC2025 武汉站 游记

rk11-北京大学-请输入文本 Pre 贵校的竞争还是太激烈了,在前两次选拔赛打炸的情况下最后一场极限翻盘,苟到了一个 ICPC 区域赛名额。 参加的网络赛 2 因为某个队友睡过头了所以只有两个人,打的也一坨,喜提 #161。 …

25.11.03

AGC003E 哎我好菜怎么这个题卡半天。 首先想到可以把 \(a_i\) 单调栈干掉,然后倒着扫求出前面要重复多少次。 但是会剩下一段,需要单独做。 先不要想太复杂,考虑如何暴力,因为额外部分只关心长度和次数,因此设计一…

win10安装neo4j-community-3.5.7-windows

win10安装neo4j-community-3.5.7-windows 1、下载neo4j-community-3.5.7-windows下载地址:https://we-yun.com/doc/neo4j/选择对应版本的文件,下载, 2、配置环境变量NEO4J_HOME D:\neo4j-community-3.5.7 Path:%NE…

工作感受月记(202511月)

2025年11月03号 月初工作第一天,也是第一周,遇事较多,全是请假半天做。 周一见同学,请假一下午,周二去上海,欢送老板会。周三回成都,约见唐老师。周六需考试,软件设计师。 今日工作事项: 1/ 与yuki进行app se…

基于Blocking queue的生产消费模型

file: BlockQueue.hpp: #pragma once #include<pthread.h> #include<cassert> #include<queue> const int maxsize=5; template<class T> class BlockQueue{ public:BlockQueue(){int n;n=pth…

React中useContext的基本使用和原理解析

React 中 useContext 的使用方法 在 React 中,useContext 是一个内置的 Hook,用于在函数组件中轻松访问 Context(全局公共状态),避免了手动逐层传递 props 的复杂性。它依赖于 Context API,通过 Provider 提供数…

JDK的安装过程

第一步:右击“此电脑”,在显示的菜单中单击“属性”,在“系统信息”中点击“高级系统设置” 第二步:在弹出的“系统属性”对话框中,选择“高级”选项卡中的“环境变量” 第三步:在弹出的对话框中,单击“系统变量…

阅读笔记0

第3章:基本工具 强调善用工具能大幅提升效率,工具是程序员的“第二双手”。文本编辑器:不止是打字,要熟练使用快捷键、自定义配置,甚至通过插件扩展功能(如代码补全、语法检查)。 ​ 版本控制:用Git等工具管理…

File文件操作

路径用//或者\ file可以代表文件也可以代表文件夹文件对象路径可以写相对路径也可以写绝对路径,相对路径默认是是从当前文件的项目名称下寻找 从javatest下找createnewfile创建完文件会返回true exist同理 调用方法都是…

越南航空数据泄露事件深度解析

2025年越南航空遭遇重大数据泄露事件,730万客户信息遭黑客组织窃取,包括邮箱、姓名、电话号码等敏感数据。本文详细分析事件经过、受影响数据类型及防护建议。越南航空数据泄露事件 事件概述 2025年10月,自称"…

P11261 [COTS 2018] 直方图 Histogram

P11261 [COTS 2018] 直方图 Histogram 题解看了这篇题解懂了的,大家也可以去看看。 以及,后来自己想出来了单调栈解法,看题解里似乎没有这个解法,所以交一发题解。题目传送门 欢迎光临我的博客 1.笛卡尔树做法 如果…

2025csp-j游记(废物版)

"生活就是在迷茫中前进" 11月1日周六考的试,周一已经有点忘了。。 DAY 初赛 j组初赛自我感觉良好,就是考完前几分钟ccf突然改代码,但只是加了个int n难绷。s组感觉自己没开智。更绝望的是隔壁班有个gesp保…

leetcode55. 跳跃游戏 45. 跳跃游戏 II

leetcode55. 跳跃游戏 45. 跳跃游戏 II55. 跳跃游戏 45. 跳跃游戏 II 我写的第一份通过的代码,问题在于重复更新浪费不少时间,内层循环可能会重复更新许多已经确定不是最优解的位置。class Solution {public int j…

个体户办理食品经营须知

非常好的问题,这两个问题都属于实际审批中高频且容易出错的关键点。下面我根据你提供的两份文件—— 📘《食品经营许可审查通则》(国家标准) 📗《山东省食品经营许可审查细则》(山东省地方标准) 为你做专业、…

redux-thunk和createAsyncThunk

你提到了一个非常有趣且常见的观点! 许多开发者确实认为,从“编写和阅读”异步逻辑的角度来看,手写 redux-thunk 的 async (dispatch) => {...} 形式,比 createAsyncThunk 更加直接和直观。⚖️ 两种异步写法的…

2025.11.3——1绿1蓝

普及+/提高 P1353 [USACO08JAN] Running S 简单DP 提高+/省选 P6880 [JOI 2020 Final] 奥运公交 / Olympic Bus T3,场切。

Next.js路由段配置选项笔记

前言 大家好,我是曦远。 本来是想发昨晚写好的 starblog 管理后台重构文章的 结果打开 blog 才发现忘记提交了😂 所以写一篇新的吧 正好最近正在大量使用 Next.js 我发现部署后的首次渲染很慢,才意识到「预热」这个…

2025.11.3 - A

今天java和数据结构,感觉挺好的。

【每日一面】实现一个深拷贝函数

基础问答 问:知道浅拷贝和深拷贝吗?为什么要用深拷贝? 答:拷贝,可以认为是赋值,对于 JavaScript 中的基础类型,如 string, number, null, boolean, undefined, symbol 等,在赋值给一个变量的时候,是直接拷贝值…