理解 Kubernetes 的架构与控制平面组件运行机制

文章目录

  • K8s架构
  • K8s核心组件
    • 控制平面组件(部署在 Master 节点)
      • 1. 查看组件运行情况
      • 2. 查看组件 help 命令
    • Node端组件(部署在每个工作节点)
  • K8s内部工作原理

Kubernetes(也称为 K8s)是一个开源的容器编排和管理系统,用于自动部署、扩展和管理容器化应用程序。

K8s架构

Kubernetes 采用主从架构(Master-Worker),主要分为两大部分:
1. 控制平面(Control Plane)—— 管理集群

用于全局决策(比如调度)、集群状态管理等。

2. 工作节点(Worker Node)—— 执行容器化应用

运行实际的容器应用,并向控制平面汇报状态。

3. 分布式特性

  1. 无中心节点(Master 节点可多副本 HA)
  2. 所有组件通过 API Server 交互
  3. 状态存储在 etcd 中(强一致性)

在这里插入图片描述
在这里插入图片描述

K8s核心组件

控制平面组件(部署在 Master 节点)

组件作用
kube-apiserver所有组件交互的入口,提供 REST API 接口,是集群的“中枢神经”
etcd分布式键值存储,保存整个集群的状态数据(如 Pod 信息、配置等)
kube-scheduler负责为新创建的 Pod 分配合适的 Node 节点
kube-controller-manager管理控制器(副本控制器、节点控制器等),维持系统期望状态
cloud-controller-manager用于和云厂商平台(如 AWS、GCP)集成,管理负载均衡、存储等资源

1. 查看组件运行情况

在 Kubernetes 中,控制平面组件本身并不是通过 kubectl 的 help 命令直接查看的对象,因为它们不是 API 对象,而是后台运行的服务程序。但你可以间接地通过以下方式获取它们的信息或确认它们是否在运行。

kubectl get pods -n kube-system

在这里插入图片描述

2. 查看组件 help 命令

Node端组件(部署在每个工作节点)

组件作用
kubelet负责与 API Server 通信,管理容器生命周期,监控容器运行状态
kube-proxy实现服务的负载均衡和网络代理,实现 Kubernetes 的 Service 网络
容器运行时(如 containerd、CRI-O、Docker)运行容器的底层工具,遵循 Kubernetes 的 CRI 接口

K8s内部工作原理

下面用一个创建 Pod 的过程来理解内部工作流程:

创建一个 Pod 的流程:
1. 用户操作:

用户通过 kubectl 或其他方式向 kube-apiserver 提交创建 Pod 的请求。

2. API Server 接收请求:

验证并将 Pod 对象写入到 etcd 中(持久存储)。

3. 调度器(kube-scheduler):

  1. 监听未调度的 Pod;
  2. 根据策略(资源使用率、亲和性等)选择合适的 Node;
  3. 将调度结果写入 etcd。

4. 控制器通知 Node:

kubelet 监听到自己的 Node 上有新 Pod 需要创建,拉取镜像并创建容器。

5. 容器运行:

使用容器运行时(如 containerd)启动容器。

6. kubelet 上报状态:

周期性向 API Server 汇报 Pod 运行状态。

7. Service 和 kube-proxy:

若 Pod 关联了 Service,kube-proxy 会更新 iptables 或 IPVS 规则,进行负载均衡。

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

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

相关文章

Express+MySQL后台开发实战:从模块化到错误处理的全链路解析

ExpressMySQL后台开发实战:从模块化到错误处理的全链路解析 摘要:本文将以Node.jsExpress框架为基础,结合MySQL数据库实战,深度剖析后台系统中数据库模块化设计、安全查询、错误处理等核心开发要点。 一、项目环境与技术栈 ├─…

Spring AI 智能体代理模式(Agent Agentic Patterns)

AgentAgenticPatterns 简介 在最近的一篇研究报告《构建高效代理》 中,Anthropic分享了关于构建高效大语言模型(LLM)代理的宝贵见解。这项研究特别有趣的地方在于,它强调简单性和可组合性,而非复杂的框架。让我们来探…

基于 Vue3 与 exceljs 实现自定义导出 Excel 模板

在开发中,我们需要常常为用户提供更多的数据录入方式,Excel 模板导出与导入是一个常见的功能点。本文将介绍如何使用 Vue3、exceljs 和 file-saver 实现一个自定义导出 Excel 模板,并在特定列添加下拉框选择的数据验证功能。 技术选型 excelj…

git 命令之-git cherry-pick

今天得到一个通知,这个业务版本里面部分已经开发但还没测试的内容要新开一个分支提交,但是我已经有几个提交上去了,难道只能一个一个文件复制到新的分支吗?我不,我找到了这个git命令,可以解决我的困惑&…

浙大版《Python 程序设计》题目集6-3,6-4,6-5,6-6列表或元组的数字元素求和及其变式(递归解法)

目录 6-3 输入格式: 输出格式: 输入样例: 输出样例: 6-4 输入格式: 输出格式: 输入样例: 输出样例: 6-5 输入格式: 输出格式: 输入样例: 输出样例: 6-6 输入格式: 输出格式: 输入样例: 输出样例: 6-3 第6章-3 列表或元组的数字元素求和 分数 20 全屏浏览 切换布局 作者 陈春晖 …

【b站计算机拓荒者】【2025】微信小程序开发教程 - chapter2 小程序核心

1 尺寸单位和样式 1.1 创建小程序项目-纯净环境 // 该删的删掉。 1.2 尺寸单位 # 小程序内 手机屏幕大小可能不一样,使用px像素就会出现样式问题 --> 小程序统一了整个宽度,即750rpx,屏幕一半则是375rpx -->因此不管什么手机都可以…

攻防世界逆向刷题笔记(新手模式9-1?)

bad_python 看样子是pyc文件损坏了。利用工具打开,发现是MAGIC坏了。搜下也没有头绪。 攻防世界-难度1- bad_python - _rainyday - 博客园 python Magic Number对照表以及pyc修复方法 - iPlayForSG - 博客园 看WP才知道36已经提示了pyc版本了。参考第二个文章&am…

mysql ACID 原理

序言:ACID 是一组数据库设计原则,他是业务数据和关键业务程序的可靠性保障。 1、atomicity(原子性) 依赖如下能力 autocommit commit rollback2、一致性 2.1 double write buffer 1、定义:double write buffer 是…

WebStorm 高效快捷方式全解析

作为前端开发的黄金搭档,WebStorm 凭借强大的功能和高度可定制的快捷键体系,成为众多开发者提升编码效率的利器。本文基于 IntelliJ IDEA 的快捷键体系(WebStorm 作为 JetBrains 家族成员,快捷键逻辑高度一致)&#xf…

基于 STM32 的农村污水处理控制系统设计与实现

摘要 针对农村污水处理自动化程度低、运维成本高的问题,本文设计了一种基于 STM32 单片机的污水处理控制系统。系统通过多传感器实时监测水质参数,结合 PID 控制算法实现污水处理全流程自动化,并集成远程监控功能,满足农村地区低成本、易维护的需求。 一、硬件系统设计 …

自动生成md文件以及config.mjs文件-vitepress

效果: config.mjs文件 import {defineConfig} from vitepress import hljs from highlight.js/lib/core import javascript from highlight.js/lib/languages/javascript import xml from highlight.js/lib/languages/xml import {ref} from "./cache/deps/vue…

Tailwind css实战,基于Kooboo构建AI对话框页面(二)

基于上篇内容,添加交互逻辑,实现一个伪聊天功能的对话框效果: Tailwind css实战,基于Kooboo构建AI对话框页面(一)-CSDN博客 在前期文章中,我们完成了 AI 对话框的静态页面搭建。本文将聚焦交互…

Conda:环境移植及更新1--使用conda-pack

更多内容:XiaoJ的知识星球 目录 一、使用conda-pack1.安装 conda-pack2.移植整个 Anaconda 环境3.移植单个虚拟环境4.验证是否生效 在相同Linux设备上移植Miniconda3(Anaconda3同理)常用方法有。 使用conda-pack:使用conda-pack工…

树莓派超全系列教程文档--(50)如何查找树莓派的IP地址

如何查找树莓派的IP地址 找到您的Raspberry Pi的IP地址桌面命令行引导输出网络管理器使用mDNS解析 raspberrypi.local检查路由器的设备列表使用 nmap 查找设备使用智能手机应用程序查找设备 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 找到您…

如何优化 MySQL 存储过程的性能?

文章目录 1. 优化 SQL 语句避免全表扫描减少子查询,改用 JOIN避免 SELECT 2. 合理使用索引3. 优化存储过程结构减少循环和临时变量避免重复计算 4. 使用临时表和缓存5. 优化事务处理6. 分析和监控性能7. 优化数据库配置8. 避免用户自定义函数(UDF&#…

尚硅谷redis7 47-48 redis事务之理论简介

47 redis事务之理论简介 什么是事务 可以一次执行多个命令,本质是一组命令的集合。一个事务中的所有命令都会序列化,按顺序地串行化执行而不会被其它命令插入 能干什么? 一个队列中,一次性、顺序性、排他性的执行一系列操作 redis事务vs数据库事务 …

Nginx 在四大核心场景中的应用实践与优化

一、Nginx 核心应用场景深度解析 1. HTTP 服务器:静态资源的高性能承载者 Nginx 作为 HTTP 服务器时,凭借轻量级架构和高效的事件驱动模型,成为静态资源服务的首选方案。 核心能力与场景 静态文件高效处理:直接响应 HTML、CSS…

亚当·斯密思想精髓的数学建模与形式化表征

亚当斯密思想精髓的数学建模与形式化表征 摘要:本文运用数学建模方法对亚当斯密的经济与伦理思想进行形式化表征。通过分工的规模经济模型和市场均衡条件展现《国富论》中"看不见的手"原理;采用扩展效用函数与合作博弈均衡解释《道德情操论》…

FastDFS集群部署与性能优化实战

目录 一、介绍 二、FastDFS原理 三、FastDFS部署 1.资源清单 2.修改主机名 3.安装libfastcommon(tracker01、tracker02、storage1、storage2) 4.安装编译FastDFS(tracker01、tracker02、storage1、storage2) 5.配置tracker…

学习心得(14--16)

模板: 前端的页面单独存在模板当中 jinja2 :模板语法 保持前端页面不变的情况下,返回内容给前端做法: 写一个data,并在return中的render_template中,写上datadata 使用时,要将templa…