Files
Qiniu/technical/xinfra-preview/k8s-rke2-fundamentals/core-objects-quiz.md
T

7.1 KiB
Raw Blame History

tags, create time
tags create time
k8s
quiz
2026-07-05 13:00

K8s 核心对象关系 — 自测题库

Q1:K8s 中最小的部署单元是什么?

  • A. Container(容器)
  • B. Pod
  • C. Node(节点)
  • D. Deployment(部署)

[!example]- 答案与解析 答案:B

Pod 是 K8s 最小的部署单元。一个 Pod 可以包含一个或多个容器,这些容器共享网络和存储,通常被当作一个整体来调度和管理。

[!tip] 类比 Node ≈ 服务器,Pod ≈ 应用实例,Deployment ≈ 发布控制器。


Q2:Node、Pod、Container 之间的关系是什么?

  • A. 一个 Container 运行在一个 Node 上,Pod 只是一个概念标签
  • B. 一个 Node 上可以运行多个 Pod,一个 Pod 内可以包含多个 Container
  • C. 一个 Pod 可以跨多个 Node 运行
  • D. Node 和 Pod 是一一对应的关系,一台 Node 只能跑一个 Pod

[!example]- 答案与解析 答案:B

一台物理机或虚拟机(Node)上通过资源隔离运行多个 Pod;一个 Pod 内的多个 Container 共享网络命名空间和存储卷,适合"主业务 + Sidecar"模式(比如 app + 日志采集代理放在同一个 Pod)。

[!quote] 一句话记忆 Node 承载 Pod,Pod 封装 Container。


Q3:Deployment 的主要作用是什么?

  • A. 直接创建和运行动态容器
  • B. 为一组 Pod 提供稳定的外部访问地址
  • C. 管理 Pod 的副本数以及更新策略(如滚动更新)
  • D. 为集群中的节点分配 CPU 和内存资源

[!example]- 答案与解析 答案:C

Deployment 声明"想要几个副本、用什么镜像版本",负责管理 Pod 的生命周期。最实用的功能是滚动更新——逐步用新版本的 Pod 替换旧版本,期间服务不会中断。


Q4:Pod 重启后 IP 会变吗?为什么需要 Service?

  • A. Pod IP 不变,Service 的作用是做数据加密
  • B. Pod IP 会变,Service 为一组 Pod 提供稳定的访问入口和负载均衡
  • C. Pod IP 不变,但只能通过 Service 访问 Pod
  • D. Pod 没有 IP 地址,只能靠 Service 通信

[!example]- 答案与解析 答案:B

Pod 是不固定的——它可能因为调度、扩缩容、故障重启而换到另一台 Node 上,IP 也会跟着变。Service 就是用来屏蔽这种不稳定性,给你一个稳定的 IP(ClusterIP),由 K8s 自动把流量转发给当前健康的 Pod。

[!tip] 核心逻辑 Pod IP = 会变的临时地址 → Service = 不变的稳定门面。


Q5:以下哪种 Service Type 只允许集群内部访问,不对外暴露?

  • A. NodePort
  • B. LoadBalancer
  • C. ClusterIP
  • D. Ingress

[!example]- 答案与解析 答案:C

类型 可达范围 典型场景
ClusterIP 仅集群内部 服务间调用,默认值
NodePort 外部可以通过 节点IP:端口 访问 开发测试
LoadBalancer 云厂商自动分配公网 IP 云上生产

Service 选哪个类型取决于"谁能访问它",ClusterIP 是最安全的选择——仅限内网使用。


Q6:Namespace 的作用是什么?

  • A. 为 Pod 分配独立的物理资源
  • B. 将集群资源在逻辑上划分为多个独立区域
  • C. 限制每个 Namespace 只能运行一个 Pod
  • D. 自动为 Pod 绑定公网 IP

[!example]- 答案与解析 答案:B

Namespace 是一种逻辑隔离机制,让不同的团队或项目在同一套集群中互不干扰。同一 Namespace 内资源名不能重复,不同 Namespace 可以有同名资源。

[!tip] 类比 如果把集群比作一栋大楼,Namespace 就是不同的楼层/租户,各自有自己的文件夹。


Q7:PVC 和 PV 的关系,最准确的描述是?

  • A. PVC 是给 Pod 看的,PV 是给运维看的
  • B. PVC 是用户的"存储申请单",PV 是实际的存储空间,二者匹配后 Pod 就能使用
  • C. PV 先于 PVC 存在,且一个 PV 只能绑定一个 Pod
  • D. PVC 和 PV 之间没有任何关系,各自独立工作

[!example]- 答案与解析 答案:B

  • PV 是集群里一块真实的存储资源(类似硬盘)
  • PVC 是用户向系统提出的存储需求(类似购物小票),声明需要多大空间、什么速度等级
  • 当 PVC 和合适的 PV 匹配成功后,Pod 就可以像挂载磁盘一样使用它了

[!tip] 类比帮助理解 PV = 仓库里的货,PVC = 你的订单,订单和货物对上号后你才能提货使用。


Q8:ConfigMap 和 Secret 的共同作用是?

  • A. 管理 Pod 的网络配置
  • B. 管理 Pod 的副本数量
  • C. 将外部配置(非敏感/敏感数据)注入到 Pod 中
  • D. 监控 Pod 的运行状态

[!example]- 答案与解析 答案:C

ConfigMap 和 Secret 都用于把外部信息传入容器,区别在于:

  • ConfigMap —— 放普通配置(如环境变量、配置文件内容)
  • Secret —— 放敏感数据(如数据库密码、API Token)

它们支持三种注入方式:环境变量、Volume 挂载文件、命令行参数。这样修改配置就不需要重新构建 Docker 镜像了。

[!note] 设计意图 "配置与镜像分离"是云原生应用的核心原则之一。


Q9:Ingress 相比 Service 多了什么能力?

  • A. Ingress 可以直接创建和销毁 Pod
  • B. Ingress 支持基于域名和路径的七层路由(如 api.example.com → 后端-A)
  • C. Ingress 可以为 Pod 分配更强大的 CPU 和内存
  • D. Ingress 不需要 Service 就可以把流量发给 Pod

[!example]- 答案与解析 答案:B

Service 只能做四层转发(按端口),Ingress 在此基础上支持七层路由——可以根据域名(host)、URL 路径(path)将流量精确分发到不同的 Service:

api.myapp.com   → API Service  (后端处理接口请求)
web.myapp.com   → Web Service  (前端页面)
api.myapp.com/v2 → V2 Service  (新版本接口)

[!quote] 一句话总结 Service 管"怎么找到一组 Pod",Ingress 管"不同域名该去哪个 Service"。


Q10:如果把整个 K8s 核心对象串起来,正确的依赖链路是?

  • A. Node → Deployment → Service → Container
  • B. Node → Pod → Container,Deployment 管理 Pod 副本,Service 为 Pod 提供稳定入口
  • C. Namespace → Container → Node → Deployment
  • D. PVC → Node → Deployment → Service

[!example]- 答案与解析 答案:B

完整链路回顾:

  1. Node 是底层的物理/虚拟机器
  2. Pod 运行在 Node 上,内部封装 Container(真正的代码执行者)
  3. Deployment 管理一堆 Pod,确保数量和应对更新
  4. Service 给这些 Pod 提供一个不变的访问入口
  5. (可选)Ingress 根据域名把流量分给不同的 Service

[!abstract] 核心记忆图 Deployment 创建 Pod → Pod 跑在 Node 上 → Service 暴露 Pod → Ingress 引导流量到 Service

[!tip] 考试总结 记住这四个关系就够:

  • Deployment 管 Pod
  • Pod 装 Container
  • Service 指 Pod
  • Ingress 导 流量到 Service