请使用支持现代 CSS 与 JavaScript 的浏览器播放课件
CCIOT · 5.1

体验容器云

把应用交给可编排的运行环境

VER. 2608 Built with impress.js

学习目标

沿着对象关系和多层证据解释容器应用如何部署、访问并回收

  1. 01解释容器与虚拟机的运行边界差异
  2. 02说明镜像、运行时和镜像仓库的角色
  3. 03读懂 Kubernetes 控制平面、节点、Pod 和工作负载的关系
  4. 04解释 Service 如何为短暂的 Pod 提供稳定入口
  5. 05沿着镜像、部署、暴露、验证和回收完成一条演示链
  6. 06根据多层证据定位容器应用没有访问成功的原因
2/23
LEARNING OBJECTIVES

容器云:从云主机到应用运行环境

应用不必每次都携带一套完整的客户操作系统

云主机

提供虚拟处理器 CPU、内存、磁盘和网卡

应用依赖一套完整的客户操作系统

容器云

提供可调度的应用运行环境

应用及依赖通常共享宿主操作系统内核

Takeaway

容器云不是把云主机换一个名字,而是改变了云服务的主要交付边界

3/23
CONTAINER CLOUD

容器与虚拟机:隔离层次不同

容器共享宿主内核,性能差异取决于工作负载和平台条件

虚拟机

以虚拟硬件承载完整客户操作系统,隔离边界更厚

容器

以进程和资源边界封装应用,通常共享宿主内核

共同点

都需要资源限制、网络、存储和权限配置才能稳定运行

判断条件

启动速度和资源占用取决于工作负载、镜像、节点和平台实现

虚拟机与容器在宿主资源上形成不同隔离层级的对比
Takeaway

“更快、更省资源”是条件性比较,不是容器的绝对承诺

4/23
RUNTIME BOUNDARY

练习:哪些证据指向容器运行环境?

Exercise
场景请先判断需要找到的证据
一台完整 Linux 操作系统虚拟机虚拟机/容器/证据不足虚拟硬件、客户操作系统、运行时或资源边界
共享宿主内核的 Web 服务进程组虚拟机/容器/证据不足应用封装、宿主内核和资源限制
远程桌面连接另一台主机虚拟机/容器/证据不足远程访问之外,是否有运行环境封装证据?
同一系统中普通应用虚拟机/容器/证据不足是否存在容器运行时和独立资源边界?
Takeaway

判断容器要寻找应用封装、运行时、共享内核和资源限制的证据

5/23
BOUNDARY JUDGMENT

镜像提供内容,运行时启动容器

镜像、容器和节点不是同一个对象

分发:镜像上传仓库 → 节点拉取

运行:运行时启动容器 → 应用响应

镜像

封装应用、依赖、文件系统层和启动信息,可被重复分发

容器

镜像在某个节点上启动后的运行实例

运行时

创建、启动、停止和删除容器,并与内核的隔离机制协作

镜像仓库

存储、标记、分发镜像,并控制谁可以读取或推送

Takeaway

上传镜像成功只证明仓库对象存在,不等于节点已经拉取或应用已经可访问

6/23
IMAGE AND RUNTIME

镜像让运行环境可复制

一致性来自封装,也受版本、架构和权限影响

应用内容

代码、静态文件和启动命令

运行依赖

库、配置和基础文件系统层

运行条件

架构、端口、权限和资源限制

构建或取得镜像 → 标记 → 推送 → 拉取 → 启动

Takeaway

可移植性意味着运行环境更容易复制,不意味着可以忽略目标节点的内核、架构和安全条件

7/23
REPEATABLE ENVIRONMENT

练习:哪一步失败,先检查哪个对象?

Exercise
现象请先判断检查对象请写出判断依据
镜像推送被拒绝仓库/身份/其他填写账号、组织、标签或访问证据
节点拉取镜像失败仓库/网络/架构/其他填写镜像地址、连通性或节点条件证据
容器立即退出启动命令/应用/其他填写进程状态、启动命令或日志证据
容器运行但端口无响应应用/端口/网络/其他填写监听、映射或访问路径证据
Takeaway

沿着仓库、节点运行时、容器进程和应用端口依次排查

8/23
IMAGE CHAIN

Kubernetes 如何组织集群服务

控制平面维护期望状态,工作节点承载实际运行

声明:提交工作负载 → 控制平面协调

运行:控制平面调度 → 工作节点承载 Pod → 容器运行

控制平面

接收声明、维护集群状态、协调调度与变化

工作节点

提供处理器 CPU、内存、网络和存储,实际承载 Pod

容器组 Pod

Kubernetes 最小的调度与运行单元,包含一个或多个协同容器

Takeaway

Kubernetes 的核心不只是启动容器,而是让容器运行可声明、可调度和可观察

9/23
KUBERNETES

工作负载声明状态,控制平面调度 Pod

Pod 是运行单元,不是长期稳定的用户入口

工作负载对象,例如 Deployment

声明镜像、副本数量和更新方式

平台按期望状态创建或替换 Pod

工作节点与 Pod

节点提供运行资源

Pod 在节点上共享网络等运行上下文并承载容器

Case

图例:控制平面组织;工作负载描述期望状态;工作节点提供资源;Pod 运行容器;服务对象 Service 提供稳定访问抽象

工作负载由控制平面组织、工作节点承载 Pod,并通过 Service 提供稳定访问的示意
Takeaway

工作负载描述期望状态,Pod 是该状态在节点上的一次运行结果

10/23
OBJECT ROLES

练习:这项工作属于哪个对象?

Exercise
工作选择对象(控制平面/节点/Pod/工作负载)职责证据
决定应用放在哪个节点填写调度与状态证据
提供 CPU 和内存运行容器填写实际资源证据
封装一个或多个协同容器填写运行单元与协同证据
声明运行三个副本填写期望状态/副本证据
11/23
CLUSTER ROLES

Service 为变化中的 Pod 提供稳定入口

用户访问的是服务抽象,不应绑定某个 Pod 地址

工作负载

声明应用副本和 Pod 的期望状态;平台据此维护 Pod

Pod

是当前运行单元,可能因为失败或更新而被替换

Service

本节示例中,Service 用标签选择器选择后端 Pod,提供稳定访问抽象和转发

访问边界

集群内访问、节点访问和外部负载均衡对应不同网络路径

Takeaway

Pod 可以变化,Service 让访问者不必跟着 Pod 地址变化

12/23
SERVICE PATH

应用可访问需要四类证据

一个平台绿灯不能替代整条访问链

1. 控制平面

工作负载创建成功,期望对象已经提交

2. 运行面

Pod 已调度、容器运行并处于就绪状态

3. 网络面

Service 有后端,端口和访问边界配置正确

4. 应用面

访问入口返回目标服务的实际响应

Takeaway

按控制、运行、网络和应用四类证据取证,才能判断访问结果

13/23
ACCESS EVIDENCE

练习:Service 为何仍不可访问?

Exercise
现象请先判断检查对象请写出判断依据
工作负载运行但 Service 无后端选择器/Pod 就绪/其他填写后端对象和状态证据
Service 有后端但连接被拒绝服务端口/容器端口/其他填写转发目标和应用监听证据
Pod 已就绪且 Service 有后端但外部访问失败外部网络路径/其他填写访问类型、路由或防火墙证据
浏览器有响应但页面错误应用内部状态/依赖服务/其他填写日志、配置或业务响应证据
Takeaway

按选择器、端口、网络和应用响应逐段定位访问故障

14/23
ACCESS DIAGNOSIS

课堂演示从已验证的镜像和集群开始

预构建环境让课堂聚焦对象关系和状态证据

  1. 01课前检查镜像标签、仓库权限、集群控制平面和工作节点
  2. 02准备最小网络,明确集群内访问与外部访问的边界
  3. 03保留可恢复环境和当前状态证据,不在课件中保存真实账号和固定地址
  4. 04课堂只改变本次演示创建的对象,结束时按清单回收
Takeaway

预构建环境隐藏安装噪声,但不隐藏容器云的资源依赖

15/23
DEMO PREPARATION

观察一条从镜像到应用响应的部署链

每一步都要核对对象、状态和访问边界

Case
TEXT
构建或取得镜像并推送到仓库
→ 创建工作负载
→ 观察 Pod 调度与就绪
→ 创建 Service
→ 访问应用并记录响应
→ 回收本次创建的资源
01

先看内容

镜像版本和仓库权限是否可用

02

再看运行

核对工作负载、Pod、节点和资源状态

03

最后看入口

核对 Service、端口、网络和应用响应

04

收尾看清单

删除临时对象并确认没有遗留资源

Takeaway

部署链的重点是对象依赖和状态证据,不是菜单路径

16/23
DEPLOYMENT SEQUENCE

练习:每项证据分别证明什么?

仓库存在 → 节点可拉取 → Pod 就绪 Ready → Service 有后端 → 入口响应

Exercise
观察结果请先判断它能证明什么还需要继续核对什么
镜像出现在仓库仓库中存在镜像对象/其他节点是否能拉取、工作负载是否运行
Pod 已就绪运行单元满足就绪条件/其他Service、端口和外部网络
Service 有后端选择器找到了运行单元/其他端口映射、应用监听和入口
浏览器得到应用响应这条入口链暂时可用/其他数据、权限和集群全局健康
17/23
DEPLOYMENT EVIDENCE

容器云的快速交付仍然需要完整生命周期

内容、运行、入口和数据各有自己的生命周期

交付链:镜像 → 仓库 → 工作负载 → Pod → Service → 应用响应

回收链:删除临时对象,核对卷、备份和其他资源

镜像生命周期

构建、标记、扫描、发布、废弃和删除

运行生命周期

调度、启动、就绪、替换、失败和恢复

服务生命周期

选择后端、映射端口、配置访问边界和撤销入口

数据生命周期

卷、备份、恢复和删除都要单独管理,不能用删除 Pod 代替

Takeaway

删除工作负载不等于删除镜像、卷、网络和备份

18/23
CONTAINER LIFECYCLE

容器更轻量,不代表治理责任更轻

容器效率取决于运行条件,可靠性取决于持续管理

镜像治理

检查来源、版本、漏洞、权限和架构

平台治理

管理身份与权限、配额、网络策略、日志和监控

数据治理

为有状态应用设计卷、备份、恢复和回收

Takeaway

容器云让应用交付更靠近业务,也要求明确镜像、平台和数据责任

19/23
GOVERNANCE

练习:哪个对象还需要单独处理?

Exercise
状态请先判断不能直接推出什么请列出仍需处理的对象
镜像可以拉取安全/合规/其他来源、漏洞、权限和版本
Pod 正在运行数据保留/业务可用/其他卷、备份和恢复策略
Service 可以访问应用功能/数据正确/其他依赖服务、日志和业务验证
工作负载已删除资源已全部回收/其他Service、卷、网络和临时集群资源
Takeaway

容器云的闭环是交付、观察、治理和回收,而不是只把 Pod 启动起来

20/23
RESPONSIBILITY JUDGMENT

本节回顾

按运行边界、对象关系、访问证据和生命周期判断

  1. 01运行边界:容器通常共享宿主内核,虚拟机承载完整客户操作系统
  2. 02内容交付:镜像封装应用与依赖,仓库负责分发,运行时负责启动
  3. 03集群对象:控制平面组织状态,工作节点承载 Pod,工作负载描述期望状态
  4. 04稳定入口:Service 通过选择器把用户请求转给就绪 Pod
  5. 05演示证据:按控制、运行、网络和应用证据取证
  6. 06责任闭环:镜像、平台、网络、数据和临时资源都要治理与回收
21/23
SECTION REVIEW

本节思维导图

22/23
MIND MAP

本节问题

  1. 01容器与虚拟机的运行边界分别是什么?
  2. 02镜像、容器、运行时和镜像仓库如何分工?
  3. 03Kubernetes 中控制平面、节点、Pod 和工作负载如何协同?
  4. 04为什么 Service 可以比 Pod 地址更适合作为应用入口?
  5. 05如何沿着镜像、部署、暴露、验证和回收完成一次容器云演示?
  6. 06为什么容器更轻量,却仍然需要镜像、网络、数据和安全治理?
23/23
QUESTIONS