Kubernetes(K8s)笔记Day01:K8s介绍与工作原理
一、Kubernetes 简介1.1 什么是 KubernetesKubernetes 是一个可移植的、可扩展的开源容器编排平台用于自动化部署、伸缩和管理容器化应用。Kubernetes 拥有一个庞大且快速增长的生态系统其服务、支持和工具广泛可用。名称来源“Kubernetes” 源于希腊语意为舵手或飞行员。发展历程Google在2014 年开源了 Kubernetes 项目Kubernetes 建立在 Google 在大规模运行生产工作负载方面十几年的经验基础上结合了社区中最好的想法和实践1.2 容器优势优势说明敏捷性敏捷应用程序的创建和部署与使用 VM 镜像相比提高了容器镜像创建的简便性和效率及时性持续开发、集成和部署通过快速简单的回滚由于镜像不可变性支持可靠且频繁的容器镜像构建和部署解耦性关注开发与运维的分离在构建/发布时创建应用程序容器镜像而不是在部署时从而将应用程序与基础架构分离可观测性可观察性不仅可以显示操作系统级别的信息和指标还可以显示应用程序的运行状况和其他指标信号跨平台跨开发、测试和生产的环境一致性在便携式计算机上与在云中相同地运行可移植跨云和操作系统发行版本的可移植性可在 Ubuntu、RHEL、CoreOS、本地、Google Kubernetes Engine 和其他任何地方运行简易性以应用程序为中心的管理提高抽象级别从在虚拟硬件上运行 OS 到使用逻辑资源在 OS 上运行应用程序大分布式松散耦合、分布式、弹性、解放的微服务应用程序被分解成较小的独立部分并且可以动态部署和管理而不是在一台大型单机上整体运行隔离性资源隔离可预测的应用程序性能高效性资源利用高效率和高密度1.3 容器化面临的问题单纯使用容器如 Docker在生产环境中会遇到以下挑战弹性的容器化应用管理强大的故障转移能力高性能的负载均衡访问机制便捷的扩展自动化的资源监测…1.4 为什么使用 Kubernetes容器是打包和运行应用程序的好方式。在生产环境中你需要管理运行应用程序的容器并确保不会停机。例如如果一个容器发生故障则需要启动另一个容器。Kubernetes 提供了一个可弹性运行分布式系统的框架是Linux 之上的服务编排框架。Kubernetes 提供的能力能力说明服务发现和负载均衡可以使用 DNS 名称或自己的 IP 地址公开容器如果进入容器的流量很大Kubernetes 可以负载均衡并分配网络流量从而使部署稳定存储编排允许自动挂载你选择的存储系统例如本地存储、公共云提供商等自动部署和回滚可以描述已部署容器的所需状态以受控的速率将实际状态更改为期望状态可以自动化创建新容器、删除现有容器并将所有资源用于新容器自动完成装箱计算允许指定每个容器所需 CPU 和内存RAM当容器指定了资源请求时Kubernetes 可以做出更好的决策来管理容器的资源自我修复重新启动失败的容器、替换容器、杀死不响应用户定义的运行状况检查的容器并且在准备好服务之前不将其通告给客户端密钥与配置管理允许存储和管理敏感信息例如密码、OAuth 令牌和 ssh 密钥可以在不重建容器镜像的情况下部署和更新密钥和应用程序配置也无需在堆栈配置中暴露密钥…为了生产环境的容器化大规模应用编排必须有一个自动化的框架系统KubernetesK8s等编排软件应运而生。1.5市场份额目前容器化市场份额由Docker牢牢占据市场第一而在容器编排方面的市场KubernetesK8s独占鳌头二、Kubernetes 集群原理2.1 Master-Node 架构Kubernetes 采用Master-Node主从架构Master 和 Worker 的交互方式Master 决定 Worker node 里面都有什么做什么Worker 只和 Master 的 API Server 通信所有对 Kubernetes 集群的“管理操控”增删改查资源都必须通过 API Server但用户的“业务流量”不经过 API Server每一个节点各司其职运维人员使用 UI网页控制台 或者 CLI 命令行操作 K8s 集群的 Master就可以知道整个集群的状况。2.2 核心组件详解Master 主节点组件组件说明API Server访问管理 K8s 集群的唯一入口同时其他组件通过 API Server 实现通信。相当于 MVC 模式中的 Controller 层etcd分布式键值数据库nosql存储了整个 K8s 集群的状态信息。是 K8s 的记账本和记事本Scheduler调度器负责选出最佳的一个节点来部署容器。从所有 Node 节点中剔除不符合条件的节点接着给剩下的 Node 打分得分最高者被选中Controller Manager控制管理器控制容器的数量确保集群状态与期望状态一致。例如期望 5 个容器即便某个节点 Down 了依然要保证容器的数量为 5 个Node Worker工作节点组件组件说明kubelet每一个 Node 节点上必须安装的组件。负责每一个节点上容器的启停以及收集节的信息汇报给 API Server。可以理解为监工kube-proxy网络代理。负责代理网络实现负载均衡和服务发现2.3 工作原理Pod部署流程详解什么是Pod在英文中Pod是豆荚的意思。在这里你可以把容器当成豆子Pod就是装豆子的豆荚。所以Pod是容器的载体是一个容器组。Pod 是 Kubernetes 中最小的可部署单元也是调度的基本单位部署流程详解Kubernetes 部署的是 Pod调度的是 Pod管理的是 Pod。容器只是 Pod 内部的实际运行载体。在 K8s 集群中部署一个容器组Pod的完整过程简略版本a kubectl 向 API Server 发送部署 Pod 的请求b API Server 将请求信息保存到 etcd记录期望状态信息保存完毕etcd会回复apiserverc Controller Manager控制管理器 通过apiserver感知到 etcd 的变化生成 Pod 的部署信息并通过apiserver写回 etcd 信息保存完毕etcd会回复apiserverd Scheduler调度器 通过apiserver感知到 etcd 中的 Pod 信息剔除不合格节点打分选出最佳节点将调度结果通过apiserver写回 etcde 被选中的 Node 上的 kubelet 通过apiserver感知到 etcd 的变化在本地启动容器f kubelet 将容器状态汇报给 API ServerAPI Server 保存到 etcd需注意apiserver是一个切实的中转站除了工作节点的业务请求之外的一切管理请求都要经过它。各组件之间不直接通信全部通过 API Server 进行交互。master节点控制整个集群Controller Manager控制管理器etcd键值数据库redis【记账本记事本】存储集群的状态scheduler调度器api serverapi网关并非真正的网关而是因为所有的控制都需要通过api-server功能类似网关集群的统一入口和中枢神经kubelet负责启动控制平面组件静态 Podkube-proxy负责主节点网络规则node节点worker工作节点kubelet监工每一个node节点上必须安装的组件。管理业务 Pod并通过容器运行时如 Docker实际启停容器kube-proxy代理。实现 Service 网络转发业务流量注意本图为了方便理解把这两个组件只划分到了node工作节点意思是工作node节点只有kubelet和kube-proxy不代表主节点不存在kubelet和kube-proxy组件部署一个应用的详细步骤用户通过 kubectl 提交 应用 创建请求。API Server 接收请求将 应用 对象写入 etcd。Controller Manager 感应到变化生成 Pod 资源对象并通过 API Server 写入 etcd。Scheduler 监听到未被调度的 Pod通过计算选出最合适的节点Node2。Scheduler 将调度结果写入 API ServerAPI Server 更新 etcd。Node2 上的 kubelet 监听到了指派给自己的 Pod 事件调用底层容器运行时启动 Pod。kubelet 将 Pod 的最新运行状态汇报给 API Server最终存入 etcd。核心理解所有组件都通过 API Server 通信etcd 作为状态存储中心Controller Manager 负责维护期望状态Scheduler 负责智能调度。2.4 K8s特性无论访问哪个机器都可以访问到真正应用Service 背后的 Pod有人可能会好奇这是为什么为什么我在没有部署服务的集群主机上也能访问到我在其他服务器部署的服务这主要归功于**kube-proxy网络代理**错误认知你的 Tomcat Pod 跑在了 hd2 上。如果你访问 hd1Master的 IP 加 8080 端口绝对访问不到因为 hd1 机器上根本没这个容器进程真实情况你创建一个 Service类型选 NodePort。Kubernetes 会在集群内所有节点包括 hd1、hd2、hd3 的物理网卡上同时打开一个随机端口比如 30001。此时无论你访问 hd1:30001、hd2:30001 还是 hd3:30001流量都会被 **kube-proxy网络代理**劫持并负载均衡转发到真正运行 Pod 的 hd2 机器上去至于nodeport是什么需要在后续慢慢去学习了解三、组件交互原理串行详解完整的组件交互流程0. 开机默认状态 所有节点的 kubelet、Master 节点的 scheduler调度器、controller-manager控制器管理器 一直监听 Master 的 API Server 发来的事件变化for :: 无限循环监听 1. 运维工程师使用 kubectl命令行工具 kubectl create deploy tomcat --imagetomcat8 → 告诉 Master 让集群使用 tomcat8 镜像部署一个 tomcat 应用 2. kubectl 将请求内容发给 API Server → API Server 保存此次创建信息到 etcd 3. etcd 给 API Server 上报事件 → 刚才有人往我里面保存了一个部署 Tomcat 的信息 4. Controller Manager 监听到 API Server 的事件 → 识别出是部署 Tomcat事件 5. Controller Manager 处理该事件 → Controller Manager 生成 Pod 的部署信息 6. Controller Manager 把 Pod 信息交给 API Server → API Server 再次保存到 etcd 7. etcd 上报事件【Pod 信息】给 API Server 8. Scheduler调度器 专门监听【Pod 信息】从 API Server 监听到 的 → 拿到 Pod 信息计算哪个节点合适 → 生成Pod 调度过后的信息node: node-02 9. Scheduler调度器 把调度结果交给 API Server → API Server 保存到 etcd 10. etcd 上报事件【Pod 调度过后的信息node: node-02】给 API Server 11. 所有节点的 kubelet 专门监听 【pod调度过后的信息node: node-02】 事件 从 API Server 拿到该事件 12. 每个节点的 kubelet 判断是否属于自己的事情 → node-02 的 kubelet 发现是他的事情 13. node-02 的 kubelet 启动这个 Pod → 汇报给 Master 当前启动好的所有信息核心组件对应关系组件角色比喻职责API Server网关/前台所有请求的唯一入口MVC 中的 Controlleretcd记账本/记事本存储集群的所有状态信息键值数据库Scheduler调度员为 Pod 选择最合适的 Node 节点Controller Manager监工/管理者控制容器数量维护期望状态kubelet节点代理/监工启停容器汇报节点状态kube-proxy网络代理负载均衡和服务发现四、Kubernetes 集群安装方法方法说明kubeadm官方推荐安装工具每个组件都是容器化的。默认证书有效期为 1 年二进制安装复杂方式适合深入学习五、核心知识点总结5.1 Kubernetes 核心价值容器编排自动化管理容器化应用服务发现与负载均衡自动分配流量自我修复自动重启失败的容器自动扩缩容根据负载自动调整副本数滚动更新与回滚零停机部署存储编排自动挂载存储系统5.2 组件职责Master 节点控制平面 ├── API Server → 唯一入口所有组件通过它通信 ├── etcd → 存储集群状态键值数据库 ├── Scheduler → 智能调度为 Pod 选择节点 └── Controller Manager → 维持期望状态如始终运行 5 个副本 Worker 节点 ├── kubelet → 节点代理启停容器汇报状态 └── kube-proxy → 网络代理负载均衡5.3 部署流程总结kubectl → API Server → etcd → Controller Manager → Scheduler → kubelet → 容器运行时整个流程通过 API Server 作为中枢etcd 作为状态存储所有组件松耦合协同工作实现了 Kubernetes 的自动化容器编排能力。

相关新闻

企业AI私有化落地:痛点解析与CSGHub全周期解决方案

企业AI私有化落地:痛点解析与CSGHub全周期解决方案

1. 项目概述:企业AI私有化落地的痛点与破局在数字化转型浪潮中,AI技术正从实验室走向千行百业。但当我们真正把AI模型部署到生产环境时,往往会遇到这样的困境:某制造企业花费半年训练的缺陷检测模型,在测试集上准确率高…

2026/7/27 7:16:20 阅读更多 →
同样是用AI,为什么有人产出翻100倍,有人只快了一点点?

同样是用AI,为什么有人产出翻100倍,有人只快了一点点?

先把答案放桌上:因为产出从来不是工具单独决定的,它是一道乘法:产出 认知 工具。工具那一项,顶级的每月也就几十美金,人人买得起——花钱能买到的东西,注定拉不开差距;拉开差距的是认知那一项…

2026/7/27 7:15:20 阅读更多 →
TMS320C5x DSP指令集深度解析:从寻址模式到性能优化实战

TMS320C5x DSP指令集深度解析:从寻址模式到性能优化实战

1. 项目概述与指令集核心价值在嵌入式数字信号处理(DSP)开发领域,尤其是面对TMS320C5x这类经典的定点DSP处理器,深入理解其指令集绝非纸上谈兵,而是直接关系到算法能否在严苛的实时性、功耗和内存限制下跑起来的关键。…

2026/7/27 7:15:20 阅读更多 →

最新新闻

公众号文章一直发,搜索排名却没变化

公众号文章一直发,搜索排名却没变化

你是这种情况吗?每天发文、每周更新,公众号后台显示“已发内容”越来越多,但搜索排名却一动不动,连自己搜都翻不到。pearbing很多人以为多发几篇就能把排名“压上去”。但认真告诉你,微信搜一搜的逻辑根本不是你想象的…

2026/7/27 7:25:24 阅读更多 →
OpenMAIC:基于LangGraph与Next.js的智能教育系统架构解析

OpenMAIC:基于LangGraph与Next.js的智能教育系统架构解析

1. OpenMAIC项目概述OpenMAIC是一个基于多智能体系统的沉浸式AI课堂解决方案,它巧妙地将LangGraph的多智能体编排能力与Next.js的现代Web框架特性相结合。这个项目最初由清华大学的MAIC实验室发起,旨在解决传统在线教育平台缺乏个性化互动和智能辅助的问…

2026/7/27 7:25:24 阅读更多 →
TimeGPT:时间序列预测的Transformer新范式

TimeGPT:时间序列预测的Transformer新范式

1. TimeGPT:时间序列预测的新范式在金融、零售、能源等行业中,时间序列预测一直是个既关键又具有挑战性的任务。传统方法如ARIMA、Prophet等虽然成熟,但在处理复杂模式和大规模数据时往往力不从心。TimeGPT的出现,为这个领域带来了…

2026/7/27 7:25:24 阅读更多 →
为什么你的小程序没人搜到?微信小程序排名优化要先做好

为什么你的小程序没人搜到?微信小程序排名优化要先做好

微信小程序搜索排名,这段时间还是相对比较难做的,由于工作原因,私下接触很多开发者和运营者,大家基本上都是共同的心声。流量红利见顶微信生态调整使得创业团队在某些时候,乃至一些头部玩家,大部分都是增长…

2026/7/27 7:25:24 阅读更多 →
数据结构和变量常量

数据结构和变量常量

前言c语言中的数据类型是什么?为什么需要数据类型?我们用c语言编写程序是为了解决日常生活中的问题,而为了描述这些问题就需要相应的“量”,比如我在网购时,某个商品的价格、销售量、产品名称等数据都需要一个“量”来…

2026/7/27 7:25:24 阅读更多 →
Unity 2D动态光影系统:从原理到实战的完整指南

Unity 2D动态光影系统:从原理到实战的完整指南

1. 项目概述:为什么2D游戏也需要一套专业的灯光系统?在Unity引擎的生态里,提到“灯光”,绝大多数开发者脑海里首先浮现的肯定是那些令人惊叹的3D场景:动态光影、全局光照、体积雾……这些技术栈已经非常成熟。然而&…

2026/7/27 7:24:23 阅读更多 →

日新闻

【JAVA毕设源码分享】基于SpringBoot的社区智能垃圾管理系统的设计与实现(程序+文档+代码讲解+一条龙定制)

【JAVA毕设源码分享】基于SpringBoot的社区智能垃圾管理系统的设计与实现(程序+文档+代码讲解+一条龙定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/7/27 0:00:54 阅读更多 →
SPI实战指南:从时钟模式到寄存器配置,解决嵌入式通信难题

SPI实战指南:从时钟模式到寄存器配置,解决嵌入式通信难题

1. 项目概述:从寄存器手册到实战指南 如果你手头有一份类似德州仪器(TI)TMS320x240xA系列DSP的SPI模块技术手册,看着里面密密麻麻的寄存器位定义、时序图和公式,是不是感觉头大?这份资料虽然权威&#xff0…

2026/7/27 0:00:54 阅读更多 →
【JAVA毕设源码分享】基于springboot的水果购物管理系统的设计与实现(程序+文档+代码讲解+一条龙定制)

【JAVA毕设源码分享】基于springboot的水果购物管理系统的设计与实现(程序+文档+代码讲解+一条龙定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/7/27 0:00:54 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/27 4:33:59 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/27 6:31:56 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/27 4:01:12 阅读更多 →

月新闻