云主机
提供虚拟 CPU、内存、磁盘和网卡
应用依赖一套完整的客户操作系统
提供镜像,让平台运行容器
镜像到节点、Pod 启动、Service 转发
应用不必每次都携带一套完整的客户操作系统
提供虚拟 CPU、内存、磁盘和网卡
应用依赖一套完整的客户操作系统
提供可调度的应用运行环境
应用及依赖共享宿主操作系统内核
容器共享宿主内核,性能差异取决于工作负载和平台条件
以虚拟硬件承载完整客户操作系统,每台虚拟机有自己的客户操作系统内核
通常与宿主共享内核,并用进程隔离和 CPU、内存等资源限制封装应用
都需要资源限制、网络、存储和权限配置才能稳定运行
启动速度和资源占用取决于工作负载、镜像、节点和平台实现

“更快、更省资源”是条件性比较
| 场景 | 请先判断 | 需要找到的证据 |
|---|---|---|
| 一台完整 Linux 操作系统虚拟机 | 虚拟机/容器/证据不足 | 虚拟硬件、客户操作系统、运行时或资源边界 |
| 共享宿主内核的 Web 服务进程组 | 虚拟机/容器/证据不足 | 应用封装、宿主内核和资源限制 |
| 远程桌面连接另一台主机 | 虚拟机/容器/证据不足 | 远程访问之外,是否有运行环境封装证据? |
| 同一系统中普通应用 | 虚拟机/容器/证据不足 | 是否存在容器运行时和独立资源边界? |
镜像、容器和节点不是同一个对象
分发:镜像上传仓库 → 节点拉取
运行:运行时启动容器 → 应用响应
封装应用、依赖、文件系统层和启动信息,可被重复分发
镜像在某个节点上启动后的运行实例
创建、启动、停止和删除容器,并与内核的隔离机制协作
存储、标记、分发镜像,并控制谁可以读取或推送
上传镜像成功只证明仓库对象存在
同一镜像可把代码和依赖带到其他节点,但仍要匹配版本、架构、权限
代码、静态文件和启动命令
库、配置和基础文件系统层
架构、端口、权限和资源限制
构建或取得镜像 → 标记 → 推送 → 拉取 → 启动
可移植性意味着运行环境更容易复制
| 现象 | 检查对象 | 判断依据 |
|---|---|---|
| 镜像推送被拒绝 | 仓库/身份/其他 | 账号、组织、标签 |
| 节点拉取镜像失败 | 仓库/网络/架构/其他 | 镜像地址、连通性 |
| 容器立即退出 | 启动命令/应用/其他 | 进程状态、启动命令 |
| 容器运行但端口无响应 | 应用/端口/网络/其他 | 监听、映射 |
沿着仓库、节点运行时、容器进程和应用端口依次排查
控制平面维护期望状态,工作节点承载实际运行
声明:提交工作负载 → 控制平面协调
运行:控制平面调度 → 工作节点承载 Pod → 容器运行
接收声明、维护集群状态、协调调度与变化
提供处理器 CPU、内存、网络和存储,实际承载 Pod
Kubernetes 最小的调度与运行单元,包含一个或多个协同容器
提交镜像后,控制平面选择节点、创建 Pod,并在 Pod 失败时补回副本
Pod 是运行单元,不是长期稳定的用户入口
声明镜像、副本数量和更新方式
平台按期望状态创建或替换 Pod
节点提供运行资源
Pod 在节点上共享网络等运行上下文并承载容器
工作负载描述期望状态,Pod 是该状态在节点上的一次运行结果
| 工作 | 控制平面/节点/Pod/工作负载) | 职责证据 |
|---|---|---|
| 决定应用放在哪个节点 | 填写 | 调度与状态证据 |
| 提供 CPU 和内存运行容器 | 填写 | 实际资源证据 |
| 封装一个或多个协同容器 | 填写 | 运行单元与协同证据 |
| 声明运行三个副本 | 填写 | 期望状态/副本证据 |
用户访问 Service 的固定名称或地址
声明应用副本和 Pod 的期望状态;平台据此维护 Pod
是当前运行单元,可能因为失败或更新而被替换
本节示例中,Service 用标签选择器找到后端 Pod,保留一个访问入口并把请求转发过去
入口可以只供集群内使用,也可以通过节点端口或外部负载均衡让集群外访问
Pod 可以变化,Service 让访问者不必跟着 Pod 地址变化
理解整条访问链
工作负载创建成功,对象已经提交
Pod 已调度、容器运行,就绪
Service 后端,端口和访问配置正确
访问入口返回目标服务的实际响应
访问链可用需要四类证据齐全
| 现象 | 检查对象 | 判断依据 |
|---|---|---|
| 工作负载运行但 Service 无后端 | 选择器/Pod 就绪/其他 | 后端对象和状态证据 |
| Service 有后端但连接被拒绝 | 服务端口/容器端口/其他 | 转发目标和应用监听证据 |
| Pod 已就绪且 Service 有后端但外部访问失败 | 外部网络路径/其他 | 访问类型、路由或防火墙证据 |
| 浏览器有响应但页面错误 | 应用内部状态/依赖服务/其他 | 日志、配置或业务响应证据 |
预构建环境免安装,课堂观察镜像拉取、Pod 就绪、Service 后端、应用响应
安装步骤可以课前完成,镜像、节点、网络和权限仍要逐项核对
逐步确认镜像能拉取、Pod 已就绪、Service 有后端以及入口返回目标页面
01
02
03
04
05
06构建或取得镜像并推送到仓库
→ 创建工作负载
→ 观察 Pod 调度与就绪
→ 创建 Service
→ 访问应用并记录响应
→ 回收本次创建的资源确认镜像版本和仓库权限
核对工作负载、Pod、节点和资源状态
核对 Service、端口、网络和应用响应
删除临时对象,确认没有遗留资源
仓库存在 → 节点可拉取 → Pod 就绪 Ready → Service 有后端 → 入口响应
| 观察结果 | 请先判断它能证明什么 | 还需要继续核对什么 |
|---|---|---|
| 镜像出现在仓库 | 仓库中存在镜像对象/其他 | 节点是否能拉取、工作负载是否运行 |
| Pod 已就绪 | 运行单元满足就绪条件/其他 | Service、端口和外部网络 |
| Service 有后端 | 选择器找到了运行单元/其他 | 端口映射、应用监听和入口 |
| 浏览器得到响应 | 这条入口链暂时可用/其他 | 数据、权限和集群全局健康 |
镜像、Pod、Service 和数据卷不会随着一个删除动作一起消失
交付链:镜像 → 仓库 → 工作负载 → Pod → Service → 应用响应
回收链:删除临时对象,核对卷、备份和其他资源
构建、标记、扫描、发布、废弃和删除
调度、启动、就绪、替换、失败和恢复
选择后端、映射端口、配置访问边界和撤销入口
卷、备份、恢复和删除都要单独管理,不能用删除 Pod 代替
删除工作负载不等于删除镜像、卷、网络和备份
镜像要修补漏洞,平台要维护权限和网络,有状态应用还要备份和恢复数据
检查来源、版本、漏洞、权限和架构
管理身份与权限、配额、网络策略、日志和监控
为有状态应用设计备份、恢复和回收
团队要写清谁更新镜像、谁维护集群权限和网络、谁备份并恢复数据
| 状态 | 不能直接推出什么 | 仍需处理的对象 |
|---|---|---|
| 镜像可以拉取 | 安全/合规/其他 | 来源、漏洞、权限和版本 |
| Pod 正在运行 | 数据保留/业务可用/其他 | 卷、备份和恢复策略 |
| Service 可以访问 | 应用功能/数据正确/其他 | 依赖服务、日志和业务验证 |
| 工作负载已删除 | 资源已全部回收/其他 | Service、卷、网络和临时集群资源 |
验收要记录应用响应,处理镜像、权限、卷和临时资源
从一份镜像开始写出可访问、可诊断、可回收的交付记录