Kubernetes 完全指南:从集群架构到应用模型

Kubernetes 完全指南:从集群架构到应用模型

Kubernetes 完全指南:从集群架构到应用模型

文章目录

Kubernetes(常简称为 K8s)是一个开源的容器编排平台,用于自动化部署、扩缩和管理容器化应用。它的核心理念是 声明式配置自动化运维:用户通过描述期望的最终状态(例如“运行 3 个 nginx 副本”),系统则持续协调实际状态与之匹配。这种基于控制器和 API 的设计,使得 Kubernetes 成为云原生时代的通用应用底座。

本文将全面介绍 Kubernetes 的两大支柱:集群架构组件(支撑系统的物理与逻辑部件)与应用模型(用于定义和管理应用的 API 对象)。通过理解它们如何协同工作,你将掌握 Kubernetes 的核心原理与实践方法。


一、Kubernetes 集群架构

一个 Kubernetes 集群由**控制平面(Control Plane)工作节点(Worker Nodes)**构成。控制平面负责全局决策与状态管理,工作节点负责运行实际的容器化应用。

架构速览:你可以想象一个典型的集群包含至少一个控制平面节点(通常为3个以实现高可用)和多个工作节点。控制平面节点上运行着API Server、etcd、Scheduler、Controller Manager等组件;工作节点上运行着kubelet、kube-proxy和容器运行时。所有组件通过API Server进行通信,形成一个有机整体。

1.1 控制平面组件

控制平面组件对集群做出全局决策,并存储所有状态数据。它们通常部署在专用节点上以保证稳定性。

API Server(kube-apiserver)

API Server 是整个集群的“交通枢纽”,它暴露了 Kubernetes API,供用户、命令行工具(如 kubectl)以及内部组件通信。所有对集群的操作请求都经过 API Server,它会执行认证(Authentication)、**授权(Authorization)准入控制(Admission Control)**三层安全校验,然后将资源状态持久化到后端存储中。API Server 是唯一直接与 etcd 交互的组件。

etcd

etcd 是一个高可用、强一致性的分布式键值存储,作为 Kubernetes 的后端数据库。它保存了所有集群数据,包括 Pod、Service、Deployment 等资源的定义和当前状态。etcd 通常以奇数个节点集群部署,并基于 Raft 共识算法确保数据一致性(例如,3节点集群可容忍1节点故障)。etcd 被视为集群的“真相来源”,定期备份 etcd 数据是灾难恢复的关键。

Scheduler(kube-scheduler)

Scheduler 负责监视新创建的、尚未分配到节点的 Pod,并根据一系列策略(如资源需求、节点亲和性、污点容忍等)选择一个最合适的节点运行该 Pod。调度决策会考虑单个 Pod 和集群整体的资源状况、硬件/软件约束以及高可用要求。常见的调度策略包括:nodeSelector(节点标签选择)、节点亲和性/反亲和性、Pod 亲和性/反亲和性,以及自定义调度器扩展。

Controller Manager(kube-controller-manager)

Controller Manager 运行着多个控制器进程,每个控制器通过 API Server 监视集群状态,并努力将当前状态调整为期望状态。这些控制器并发运行,各自负责不同的资源类型。常见的内置控制器包括:

  • 节点控制器:监控节点健康,处理节点宕机时的 Pod 驱逐。
  • 副本控制器:确保指定数量的 Pod 副本正在运行(Deployment 等高级资源依赖此逻辑)。
  • 端点控制器:维护 Service 与 Pod 之间的端点(Endpoints)对象。
  • Service 账户与令牌控制器:管理命名空间中的默认账户和 API 访问令牌。
  • 其他控制器(如 Namespace、Job、CronJob 等)。
    所有控制器被编译成单个二进制文件并作为单个进程运行,以降低复杂性。
Cloud Controller Manager(cloud-controller-manager)

这是一个可选组件,用于将 Kubernetes 与特定云服务商(如 AWS、GCP、Azure)的 API 集成。它运行云平台相关的控制器,例如:

  • 节点控制器:检查云平台以确定节点是否已被删除。
  • 路由控制器:在云基础设施中设置网络路由。
  • 服务控制器:创建、更新和删除云负载均衡器(当 Service 类型为 LoadBalancer 时)。
    引入 Cloud Controller Manager 使得核心 Kubernetes 代码与云平台逻辑解耦,便于云原生扩展。在自建机房(on-premise)环境中,通常不需要此组件。

1.2 工作节点组件

工作节点是运行容器化应用的机器(物理机或虚拟机),每个节点上都运行着必要的代理服务。

kubelet

kubelet 是运行在每个节点上的主要代理,它负责确保节点上的容器按照 PodSpec(Pod 的描述)运行。kubelet 会监视 API Server 上分配给本节点的 Pod,并通过容器运行时接口(CRI)与底层的容器运行时交互,以启动、停止容器,并定期上报节点和 Pod 的状态给控制平面。它还负责执行存活探针(livenessProbe)和就绪探针(readinessProbe),以实现应用健康检查和流量切换。

container runtime(容器运行时)

容器运行时是实际运行容器的软件,例如 Docker、containerd、CRI-O 等。Kubernetes

Read more

医疗AI场景下算法编程的深度解析(2026新生培训讲稿)(总结)

医疗AI场景下算法编程的深度解析(2026新生培训讲稿)(总结)

项目总结与完整Python程序 通过本书的学习,我们从医疗AI的基础知识出发,系统掌握了经典机器学习算法的原理与医疗应用,深入探讨了数据处理、特征工程、模型评估、可解释性、不平衡问题处理、模型融合等进阶技术,并在第16章中以ICU败血症早期预警系统为例,完整演示了从问题定义到模型部署的全流程。现在,我们将所有这些知识整合为一个统一的Python程序,实现败血症预测的端到端流程,包括: * 模拟生成符合MIMIC-III分布的数据集 * 数据预处理与特征工程 * 多模型训练(逻辑回归、随机森林、XGBoost) * 模型融合(Stacking) * 超参数调优与不平衡处理 * 模型评估(AUC、PR AUC、分类报告、混淆矩阵) * 可解释性分析(SHAP) * 阈值选择与决策曲线 * 模型保存与简单API示例 该程序可直接运行(需要安装相关库),可作为医疗AI项目的模板。 完整Python程序 # -*- coding: utf-8 -*-

By Ne0inhk
OpenAI发布GPT-5.3 Instant:幻觉率最高降低26.8%,2026全球AI模型排行榜

OpenAI发布GPT-5.3 Instant:幻觉率最高降低26.8%,2026全球AI模型排行榜

🔥 个人主页:杨利杰YJlio❄️ 个人专栏:《Sysinternals实战教程》《Windows PowerShell 实战》《WINDOWS教程》《IOS教程》《微信助手》《锤子助手》《Python》《Kali Linux》《那些年未解决的Windows疑难杂症》🌟 让复杂的事情更简单,让重复的工作自动化 OpenAI发布GPT-5.3 Instant:幻觉率最高降低26.8%,2026全球AI模型排行榜 * 1 GPT-5.3 Instant 发布 * 2 本次升级三大核心能力 * 2.1 降低 AI 幻觉 * 2.2 减少不必要拒答 * 2.3 网络搜索能力升级 * 3 GPT-5.3 Instant 技术架构 * 4 GPT-5.3 vs

By Ne0inhk
OpenClaw 搭建全流程实战:从 0 部署到可控 AI Agent(附避坑与安全建议)

OpenClaw 搭建全流程实战:从 0 部署到可控 AI Agent(附避坑与安全建议)

近几个月,「AI Agent」成为技术圈的高频词,但大多数人停留在 Demo、插件和概念层。 真正能跑在本地 / 服务器、拥有真实权限、能持续执行任务的 Agent 并不多。 OpenClaw,正是目前少数几个工程完整、可部署、可二次开发的开源 AI Agent 框架之一。 这篇文章不讲愿景、不画饼,只讲怎么搭、怎么跑、怎么不翻车。 一、OpenClaw 到底是什么?先说清楚定位 一句话说明白: OpenClaw 是一个可部署在本地或服务器上的开源 AI Agent 框架,具备 Gateway(通信)、Dashboard(控制台)和 Skills(能力插件)三大核心模块。 和 ChatGPT / 插件的本质区别在于: 对比项普通 AI 工具OpenClaw运行位置云端本地

By Ne0inhk

安装 Node.js 22+,配置 OpenAI Node.js 库、Vercel AI SDK 基础环境

文章目录 * 一、安装 Node.js 22+ * 二、初始化项目与安装依赖 * 1. 新建项目文件夹,终端进入目录,执行初始化命令: * 2. 安装核心依赖: * 三、基础配置(关键步骤) * 1. 配置 OpenAI 库 * 2. 配置 Vercel AI SDK * 四、运行测试 一、安装 Node.js 22+ 1. 官网下载:访问 Node.js 官网,选择 v22.x 稳定版(LTS 或 Current 均可),按系统(Windows/Mac/

By Ne0inhk