kubernetes 入门篇之架构介绍

news2025/4/15 13:28:44

经过前段时间的学习和实践,对k8s的架构有了一个大致的理解

1. k8s 分层架构

在这里插入图片描述

架构层级核心组件
控制平面层etcd、API Server、Scheduler、Controller Manager
工作节点层Kubelet、Kube-proxy、CRI(容器运行时接口)、CNI(网络插件)、CSI(存储插件)
资源对象层Pod、Deployment、StatefulSet、HPA、VPA
扩展插件层CoreDNS、Ingress Controller、KEDA(事件驱动自动扩缩)、Argo Rollouts

2. 组件

2.1. kube-apiserver

作用:Kubernetes 集群的核心入口,提供 RESTful API 服务。

功能:
接收所有来自客户端(如 kubectl)或集群内部组件的请求。

验证和校验请求的合法性(如权限、资源配额等)。

作为唯一直接与 etcd 交互的组件,负责集群状态的读写。

充当其他组件之间通信的枢纽(如 kube-scheduler、kube-controller-manager 等)。

2.2. kube-controller-manager

作用:运行一系列控制器(Controller),确保集群的实际状态与期望状态一致。

核心控制器:

Node Controller:监控节点状态(如节点宕机时触发处理)。

Replication Controller:确保 Pod 副本数符合预期(如 Deployment 的副本数)。

Endpoint Controller:维护 ServicePod 的映射关系(Endpoints)。

Service Account & Token Controller:管理服务账户和访问令牌。

2.3. kube-scheduler

作用:负责将新创建的 Pod 调度到合适的节点上运行。

调度流程:

过滤:排除不满足 Pod 需求的节点(如资源不足、标签不匹配)。

打分:对剩余节点按优先级排序(如资源利用率、亲和性等)。

绑定:将 Pod 绑定到最优节点,由对应节点的 kubelet 执行创建。

可扩展性:支持自定义调度策略。

2.4. kubelet

作用:运行在每个节点上的“节点代理”,负责管理本节点上的 Pod 生命周期。

功能:

监听 API Server 或本地 Pod 清单(如静态 Pod),确保 Pod 按预期运行。

执行 Pod 的创建、启动、停止、监控等操作。

定期向 API Server 汇报节点状态(如资源使用情况、Pod 状态)。

与容器运行时(如 Docker、containerd、CRI-O)交互,管理容器。

2.5. kube-proxy

作用:实现 Kubernetes Service 的网络代理和负载均衡。

功能:

维护节点上的网络规则(如 iptables/IPVS),将访问 Service 的请求转发到后端 Pod

实现 ServiceClusterIP、NodePort、LoadBalancer 等类型的网络暴露。

确保 Pod 之间的网络通信和负载均衡。

2.6. etcd

作用:Kubernetes 集群的分布式键值存储数据库,保存所有集群状态和数据。

功能:

存储集群的配置信息、节点信息、Pod 状态、Secrets、ConfigMaps 等。

提供高可用和强一致性的数据存储(基于 Raft 共识算法)。

仅通过 kube-apiserver 进行读写,其他组件不直接操作。

3. CRI

kubernetesv1.5 版本开始引入了CRI规范,通过插件接口模式,kubernetes无须重新编译就可以使用多种不同类型的容器运行时。kubernetesv1.23 及之前的版本可以将 docker 作为容器运行时,从v1.24 版本开始不再支持 docker 作为容器运行时,采用containerd 、CRI-O作为容器运行时。

kubelet 基于gRPC框架通过UNIX Socket 与容器运行时通信。在该过程中,kubelet 作为客户端,CRI 是服务端。
在这里插入图片描述
CRI 主要包括两个gRPC服务:ImageServiceRuntimeService,实现对容器镜像和容器实例的管理功能。

  • ImageService:负责容器镜像的拉取,查看和移除镜像等。
  • RuntimeService: 负责pod 和容器的生命周期管理,以及与容器的交互(如 exec、attac、 port-forward等)。

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

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

相关文章

如何使用通义灵码完成PHP单元测试 - AI辅助开发教程

一、引言 在软件开发过程中,测试是至关重要的一环。然而,在传统开发中,测试常常被忽略或草草处理,很多时候并非开发人员故意为之,而是缺乏相应的测试思路和方法,不知道如何设计测试用例。随着 AI 技术的飞…

pig 权限管理开源项目学习

pig 源码 https://github.com/pig-mesh/pig 文档在其中,前端在文档中,官方视频教学也在文档中有。 第一次搭建,建议直接去看单体视频,照着做即可,需 mysql,redis 基础。 文章目录 项目结构Maven 多模块项…

探秘Transformer系列之(26)--- KV Cache优化 之 PD分离or合并

探秘Transformer系列之(26)— KV Cache优化 之 PD分离or合并 文章目录 探秘Transformer系列之(26)--- KV Cache优化 之 PD分离or合并0x00 概述0x01 背景知识1.1 自回归&迭代1.2 KV Cache 0x02 静态批处理2.1 调度策略2.2 问题…

C++语言程序设计——02 变量与数据类型

目录 一、变量与数据类型(一)变量的数据类型(二)变量命名规则(三)定义变量(四)变量赋值(五)查看数据类型 二、ASCII码三、进制表示与转换(一&…

Model Context Protocol (MCP) - 尝试创建和测试一下MCP Server

1.简单介绍 MCP是Model Context Protocol的缩写,是Anthropic开源的一个标准协议。MCP使得大语言模型可以和外部的数据源,工具进行集成。当前MCP在社区逐渐地流行起来了。同时official C# SDK(仓库是csharp-sdk) 也在不断更新中,目前最新版本…

python文件打包无法导入ultralytics模块

💥打包的 .exe 闪退了?别慌!教你逐步排查 PyInstaller 打包的所有错误! 🛠 运行 .exe 查看报错信息✅ 正确姿势: ⚠ importlib 动态导入导致打包失败❓什么是动态导入?✅ 解决方式: …

AMBA-CHI协议详解(二十六)

AMBA-CHI协议详解(一)- Introduction AMBA-CHI协议详解(二)- Channel fields / Read transactions AMBA-CHI协议详解(三)- Write transactions AMBA-CHI协议详解(四)- Other transactions AMBA-CHI协议详解(五)- Transaction identifier fields AMBA-CHI协议详解(六…

Go小技巧易错点100例(二十六)

本期分享: 1. string转[]byte是否会发生内存拷贝 2. Go程序获取文件的哈希值 正文: string转[]byte是否会发生内存拷贝 在Go语言中,字符串转换为字节数组([]byte)确实会发生内存拷贝。这是因为在Go中,字…

FPGA_BD Block Design学习(一)

PS端开发流程详细步骤 1.第一步:打开Vivado软件,创建或打开一个工程。 2.第二步:在Block Design中添加arm核心,并将其配置为IP核。 3.第三步:配置arm核心的外设信息,如DDR接口、时钟频率、UART接口等。 …

ubuntu20.04+qt5.12.8安装serialbus

先从官网https://download.qt.io/archive/qt/5.12/5.12.8/submodules/ 下载 qtserialbus-everywhere-src-5.12.8.tar.xz 有需要其他版本的点击返回上一级自行寻找对应版本。 也可从 https://download.csdn.net/download/zhouhui1982/90595810 下载 在终端中依次输入以下命令…

如何查看自己抖音的IP属地?详细教程+常见问题解答

在当今互联网时代,IP属地信息已成为各大社交平台(如抖音、微博、快手等)展示用户真实网络位置的重要功能。无论是出于隐私保护、账号安全,还是单纯好奇自己的IP归属地,了解如何查看抖音IP属地都很有必要。 本文将详细介…

⑪数据中心网络M-LAG实战

一、DeviceA-M-LAG-Mater配置 1、M-LAG 系统配置。 # m-lag mad exclude interface GigabitEthernet1/0/7 m-lag mad exclude interface Vlan-interface100 m-lag mad exclude interface Vlan-interface101 m-lag system-mac 0002-0002-0002 m-lag system-number 1 m-la…

化工企业数字化转型:从数据贯通到生态重构的实践路径

一、战略定位:破解行业核心痛点 化工行业面临生产安全风险高(全国危化品企业事故率年增5%)、能耗与排放压力大(占工业总能耗12%)、供应链协同低效(库存周转率低于制造业均值30%)三大挑战。《石…

JAVA——初识JAVA

文章目录 如何在cmd上编译、运行代码解析String[] args中放的是什么Java结构编译运行可能遇到的错误Java中的注释Java的三种注释编码不一致的问题 IDEA常用基础开发快捷键补齐快捷键注释快捷键 IDEA的基础调式方法标识符 如何在cmd上编译、运行 在没有集成开发环境下&#xff…

Shell脚本的学习

编写脚本文件 定义以开头:#!/bin/bash #!用来声明脚本由什么shell解释,否则使用默认shel 第一步:编写脚本文件 #!/bin/bash #注释 echo "这是输出" 第二步:加上执行权限:chmod x 脚本文件名.sh 第三步&…

专题十四:动态路由——OSPF

一、OSPF简介 开放式最短路径优先OSPF(Open Shortest Path First)是IETF组织开发的一个基于链路状态的内部网关协议(Interior Gateway Protocol),采用DIjkstra算法,协议号是89。用于自治系统(A…

Cocos Creator Shader入门实战(八):Shader实现圆形、椭圆、菱形等头像

引擎:3.8.5 您好,我是鹤九日! 回顾 Shader的学习是一条漫长的道路。 理论知识的枯燥无味,让很多人选择了放弃。然而不得不说:任何新知识、新领域的学习,本身面临的都是问题! 互联网和AI给了我…

【AI论文】VCR-Bench:视频链式思考推理的综合评估框架

摘要:思想链(CoT)推理的进步显著增强了大型语言模型(LLMs)和大型视觉语言模型(LVLMs)的能力。 然而,目前仍然缺乏一个严格的视频CoT推理评估框架。 目前的视频基准测试无法充分评估推…

数据中台、BI业务访谈(二):组织架构梳理的坑

这是数据中台、BI业务访谈系列的第二篇文章,在上一篇文章中,我重点介绍了在给企业的业务部门、高层管理做业务访谈之前我们要做好行业、业务知识的功课。做好这些功课之后,就到了实际的访谈环节了。 业务访谈关键点 那么在具体业务访谈的时…

【零基础实战】Ubuntu搭建DVWA漏洞靶场全流程详解(附渗透测试示例)

【零基础实战】Ubuntu搭建DVWA漏洞靶场全流程详解(附渗透测试示例) (声明:实际操作请遵守网络安全法,仅在授权环境进行测试,仅供个人研究) 一、DVWA靶场简介 DVWA(Damn Vulnerable Web Application)是专为网络安全学习者设计的漏洞演练平台,包含SQL注入、XSS、文件…