news 2026/5/11 22:13:50

云原生 Kubernetes 核心概念与组件详解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
云原生 Kubernetes 核心概念与组件详解

目录

一、Kubernetes 是什么?

核心功能概览

二、部署演进:从物理机到容器

1. 传统部署时代

2. 虚拟化部署时代

3. 容器部署时代

三、Kubernetes 集群架构

1. 控制平面组件(集群大脑)

(1)kube-apiserver

(2)etcd

(3)kube-scheduler

(4)kube-controller-manager

(5)cloud-controller-manager

2. 节点组件(工作负载载体)

(1)kubelet

(2)kube-proxy

(3)容器运行时(CRI)

3. 集群插件(扩展功能组件)

(1)网络与网络策略

(2)服务发现

(3)可视化与控制

(4)基础设施

四、标签与选择算符

标签的用途

标签规范

常用标签示例

五、总结



一、Kubernetes 是什么?

Kubernetes(简称 K8s)源自希腊语 “舵手”,因 K 与 s 之间有 8 个字符得名,由 Google 在 2014 年开源,基于其十几年大规模容器运行经验打造,是用于自动化部署、扩展和管理容器化应用的开源平台。

它并非传统 PaaS 系统,而是提供弹性运行分布式系统的框架,核心价值是解决容器在生产环境中的自动化管理问题:当容器故障时自动替换、根据负载自动扩缩容、实现跨节点通信与资源调度,让应用无需人工干预即可稳定运行。

核心功能概览

表格

功能说明
服务发现与负载均衡通过 DNS 或 IP 暴露容器,自动分配流量,保障服务稳定
存储编排支持挂载本地存储、云存储等多种存储系统
自动部署与回滚以受控速率更新容器状态,不中断业务实现版本切换
资源调度按 CPU / 内存需求将容器调度到最优节点,高效利用资源
自我修复重启故障容器、节点失效时重新调度,健康检查不响应的容器
密钥与配置管理安全存储密码、令牌等敏感信息,无需重建镜像即可更新配置
水平扩缩容基于 CPU 使用率或命令自动调整应用实例数量
批处理执行管理批处理和 CI/CD 工作负载,支持失败容器替换
IPv4/IPv6 双栈为 Pod 和 Service 分配双栈地址
可扩展设计支持自定义扩展集群功能,无需修改上游代码

二、部署演进:从物理机到容器

1. 传统部署时代

直接在物理服务器运行应用,存在资源分配不均(单个应用占用过多资源导致其他应用性能下降)、资源利用率低(空闲资源无法复用)、硬件成本高的问题。

2. 虚拟化部署时代

通过虚拟机(VM)隔离应用,实现资源更高效利用和弹性扩展,但每个 VM 包含完整操作系统,存在资源开销大、启动慢的缺点。

3. 容器部署时代

容器共享主机操作系统内核,比 VM 更轻量,具备独立文件系统、进程空间,实现应用与底层架构分离,支持跨云 / 跨系统移植,优势包括:

  • 敏捷创建与部署,镜像构建高效
  • 持续集成 / 部署,镜像不可变性支持可靠回滚
  • 开发与运维分离,应用与基础架构解耦
  • 跨环境一致性,本地与云端运行效果一致
  • 微服务架构支持,应用解耦为独立组件
  • 资源隔离保障应用性能稳定

三、Kubernetes 集群架构

一个 Kubernetes 集群由 ** 控制平面(Control Plane)节点(Node)** 组成,控制平面负责全局决策与集群管理,节点运行容器化应用 Pod。

1. 控制平面组件(集群大脑)

控制平面组件对集群做出全局决策,检测并响应集群事件,可运行在集群任意节点,生产环境中通常部署在专用节点以保证稳定性。

(1)kube-apiserver
  • 核心作用:Kubernetes API 服务器,是控制平面的前端,所有集群操作的入口,支持水平扩展,通过多实例部署实现负载均衡。
  • 核心功能:验证并处理所有 API 请求,是集群各组件通信的枢纽。
(2)etcd
  • 核心作用:集群数据的后端存储,是一致、高可用的键值存储系统,保存所有集群数据(配置、状态、元数据)。
  • 核心功能:保证数据一致性和可靠性,是集群的 “数据库”。
(3)kube-scheduler
  • 核心作用:调度器,监视新创建且未分配节点的 Pod,为其选择合适的运行节点。
  • 调度考量因素:资源需求、硬件 / 软件约束、亲和性 / 反亲和性、数据局部性、负载干扰等。
(4)kube-controller-manager

保证实际状态 和 理想状状态一致

  • 核心作用:运行各类控制器进程的组件,逻辑上每个控制器独立运行,实际编译为单一进程。
  • 常见控制器:
    • 节点控制器:节点故障时的检测与响应
    • Job 控制器:管理一次性任务的 Pod 创建与完成
    • EndpointSlice 控制器:建立 Service 与 Pod 的连接
    • ServiceAccount 控制器:为新命名空间创建默认服务账户
(5)cloud-controller-manager
  • 核心作用:云控制器管理器,嵌入特定云平台的控制逻辑,连接集群与云提供商 API。
  • 说明:仅在云环境运行,本地学习环境通常无此组件。

2. 节点组件(工作负载载体)

节点组件运行在每个节点上,负责维护 Pod 运行状态,提供 Kubernetes 运行时环境。

(1)kubelet
  • 核心作用:节点代理程序,运行在每个节点上,确保 Pod 内容器正常运行。
  • 核心功能:接收控制平面指令,管理 Pod 生命周期,监控容器健康状态,不管理非 Kubernetes 创建的容器。
(2)kube-proxy
  • 核心作用:网络代理,实现 Kubernetes Service 功能,维护节点网络规则,允许集群内外与 Pod 通信。
  • 说明:若使用实现等效功能的网络插件(如部分第三方插件),可无需运行 kube-proxy。
(3)容器运行时(CRI)
  • 核心作用:管理容器的执行与生命周期,支持 containerd、CRI-O 等符合 CRI 规范的实现。
  • 说明:Kubernetes 1.24 + 不再直接支持 Docker,需通过 cri-dockerd 适配 Docker 作为运行时。

3. 集群插件(扩展功能组件)

插件通过 Kubernetes 资源(DaemonSet、Deployment 等)实现集群级功能,资源默认位于 kube-system 命名空间。

(1)网络与网络策略
  • Calico:支持灵活网络选项,提供网络策略功能,实现 Pod 间通信与访问控制
  • Flannel:覆盖式网络方案,实现容器跨节点通信
  • Gateway API:标准化服务网络模型,提供可扩展的应用程序接口
(2)服务发现
  • CoreDNS:集群内 DNS 服务器,为服务提供域名解析,实现服务发现
(3)可视化与控制
  • Dashboard:网页控制台,支持集群管理、应用部署与故障排查
(4)基础设施
  • KubeVirt:在 Kubernetes 上运行虚拟机的插件,提供高性能虚拟机部署能力

四、标签与选择算符

标签(Labels)是附加到 Kubernetes 对象(Pod、Node、Service 等)的键值对,不影响资源功能,主要用于资源标记、管理与筛选。

标签的用途

  1. 选择器:Service 通过标签选择器定位并路由流量到特定 Pod
  2. 组织分类:通过标签区分开发 / 生产环境、不同版本应用
  3. 批量管理:基于标签实现批量删除、更新等操作

标签规范

  • 键:可选前缀(DNS 子域格式,不超过 253 字符)+ 名称(≤63 字符,字母数字开头 / 结尾,支持 -、_、.),如app.kubernetes.io/component: database
  • 值:≤63 字符(可为空),字母数字开头 / 结尾,支持 -、_、.

常用标签示例

  • 版本标签:version: v1.1.0
  • 环境标签:env: dev
  • 应用标签:app: nginx

五、总结

Kubernetes 通过控制平面实现集群全局管理,节点组件保障工作负载运行,插件扩展集群功能,标签实现资源灵活管理,形成了一套自动化、可扩展、高可用的容器编排体系。理解各组件分工与交互逻辑,是掌握 Kubernetes 的核心基础。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/11 22:09:54

告别安装失败:Oracle 19c在Win10/Win11上的完整配置与疑难杂症排查实录

Oracle 19c在Windows系统下的深度配置与故障排查指南 Oracle数据库作为企业级关系型数据库的标杆,其19c版本在性能优化和云原生支持方面都有显著提升。然而在实际部署过程中,即便是经验丰富的DBA也常会在Windows平台遇到各种"拦路虎"。本文将从…

作者头像 李华
网站建设 2026/5/11 22:09:38

为什么你的降重工具降不了 AI 率?正确降 AI 原理 + 实操步骤

一、4 款专门降 AI 率靠谱工具(主打过学校 AI 检测、不毁专业逻辑)1. 大以论文(最推荐,主打降 AI 率)核心定位:专门针对高校论文 AI 查重,只降 AI、不瞎改专业术语、保留论文原有格式&#xff0…

作者头像 李华
网站建设 2026/5/11 22:08:40

C# 之 ToString() 格式化实战:从基础占位符到高级自定义模式

1. ToString() 格式化入门:为什么我们需要它? 刚接触C#的时候,我经常被各种数字显示问题困扰。比如在开发一个电商系统时,商品价格直接显示"19.9"显得很业余,而"¥19.90"就专业多了&…

作者头像 李华
网站建设 2026/5/11 22:07:14

终极HS2汉化补丁:3步解锁完整中文游戏体验

终极HS2汉化补丁:3步解锁完整中文游戏体验 【免费下载链接】HS2-HF_Patch Automatically translate, uncensor and update HoneySelect2! 项目地址: https://gitcode.com/gh_mirrors/hs/HS2-HF_Patch 还在为HoneySelect2的日文界面感到困扰吗?HS2…

作者头像 李华