Podman、containerd 与 CRI 生态

共 21 题
#

1. containerd 的 CRI plugin 如何实现 Kubernetes 的容器运行时接口?

A containerd 的 CRI plugin 实现 CRI 的 RuntimeService/ImageService,kubelet 经 gRPC 调用 ✓ 正确答案
B CRI 与 kubelet 无关
C containerd 不使用 CRI
D CRI 是 Docker 私有接口
#

2. BuildKit 如何导入/导出构建缓存(inline/registry/local)以加速 CI 构建?

A 构建缓存无法跨构建复用
B BuildKit 用 cache-to/cache-from 以 inline/registry/local 类型导出导入缓存,复用层加速 CI ✓ 正确答案
C inline 缓存不会增大镜像
D --cache-from 无法加载缓存
#

3. BuildKit 的 buildkitd 守护进程如何组织构建会话与执行前端(frontend)?

A frontend 与构建无关
B buildkitd 只负责网络
C buildkitd 管理构建会话,frontend 解析 Dockerfile 生成计划,executor 执行、snapshot 管状态 ✓ 正确答案
D 构建无需快照
#

4. CRI 在 K8s 容器运行时的接口

A CRI 是 Docker 专属
B CRI 只服务镜像
C CRI 用 gRPC 定义 RuntimeService 与 ImageService,kubelet 作为客户端调用 ✓ 正确答案
D kubelet 不实现 CRI 客户端
#

5. Kata Containers 如何通过轻量级虚拟机(VMM)实现强隔离容器运行时?

A Kata 无 VM 开销
B Kata 与普通容器隔离性相同
C Kata 把容器放进轻量级 VM 提供独立内核强隔离,但增加 VM 开销 ✓ 正确答案
D Kata 不兼容 OCI
#

6. Podman rootless 模式如何通过 slirp4netns 实现端口映射与网络隔离?

A Podman rootless 用 slirp4netns 用户态 NAT 实现网络与端口映射,无需 root 但性能略低 ✓ 正确答案
B rootless 网络性能与 rootful 相同
C rootless 无需网络
D slirp4netns 需要 root
#

7. Podman 如何通过 play kube / generate kube 与 Kubernetes Pod 清单兼容?

A Podman 无法读取 K8s 清单
B play kube 从 K8s 清单创建 Pod,generate kube 生成清单,实现开发与生产一致 ✓ 正确答案
C generate kube 只能生成 Dockerfile
D play kube 需要 K8s 集群
#

8. containerd 如何通过 CNI 插件为容器配置网络(沙箱创建与接口拆除)?

A CNI 只做镜像
B containerd 内置网络功能
C containerd 通过 CNI 插件在沙箱创建时 ADD 配置网络、移除时 DEL 拆除接口 ✓ 正确答案
D 沙箱创建不涉及网络
#

9. containerd 的垃圾回收如何清理不再使用的镜像与快照?

A containerd GC 按引用清理未使用的镜像与快照,自动后台运行释放磁盘 ✓ 正确答案
B containerd 无 GC
C GC 会删正在使用的镜像
D GC 与快照无关
#

10. ctr 与 nerdctl 作为 containerd 客户端工具的定位差异与调试场景?

A nerdctl 无法管理容器
B ctr 与 nerdctl 完全等价
C ctr 是 containerd 底层 CLI 用于调试,nerdctl 是 Docker 兼容 CLI 用于日常管理 ✓ 正确答案
D ctr 支持 Docker 兼容命令
#

11. ctr 的 namespace、image、container、task 子命令分别执行哪些管理操作?

A ctr 的 namespace/images/containers/tasks 分别管理隔离、镜像、容器配置与运行实例 ✓ 正确答案
B ctr tasks 管理镜像
C ctr 无 namespace 概念
D ctr containers 管理运行实例
#

12. daemon.json 关键配置(log-driver/max-size、registry-mirrors、insecure-registries)

A registry-mirrors 会降低拉取速度
B log-opts 与日志无关
C insecure-registries 可用于 HTTPS 仓库
D daemon.json 配置日志驱动与大小、镜像加速器、insecure 私有仓库,需兼顾安全 ✓ 正确答案
#

13. kubelet 作为 CRI gRPC 客户端如何与容器运行时(RuntimeService/ImageService)交互?

A kubelet 是运行时服务端
B kubelet 直接操作容器
C kubelet 不调用 CRI
D kubelet 作为 CRI gRPC 客户端调用 RuntimeService/ImageService 管理容器与镜像 ✓ 正确答案
#

14. kubelet 如何通过 streaming API 支撑 kubectl exec/attach/port-forward?

A kubelet 通过 streaming API 中转 kubectl exec/attach/port-forward 的交互式流 ✓ 正确答案
B kubectl exec 不经 kubelet
C streaming API 只做镜像
D port-forward 与 streaming 无关
#

15. kubelet 如何采集容器日志并处理日志轮转与磁盘占用?

A kubelet 不采集日志
B 容器日志无需轮转
C kubelet 采集容器日志,并通过日志轮转配置(maxSize/maxFiles)控制磁盘占用 ✓ 正确答案
D 日志占满磁盘无影响
#

16. kubelet 如何采集节点与容器指标并对外暴露?

A kubelet 集成 cAdvisor 采集节点/容器指标,经 metrics 端点与 metrics-server 暴露 ✓ 正确答案
B kubelet 不采集指标
C 指标仅供 pod 使用
D metrics-server 与 kubelet 无关
#

17. BuildKit 如何生成镜像 provenance/SBOM 以支持供应链审计?

A BuildKit 无法生成 SBOM
B BuildKit 通过 attestation 生成 provenance/SBOM,记录来源与软件清单,支持供应链审计 ✓ 正确答案
C provenance 与审计无关
D SBOM 只含镜像大小
#

18. BuildKit 如何通过 --cache-from=type=local 复用本地构建缓存?

A type=local 只用于远程
B type=local 缓存需要 registry
C 本地缓存无法复用
D --cache-from=type=local 从本地目录加载构建缓存,配合 --cache-to 导出复用 ✓ 正确答案
#

19. BuildKit 的 executor 如何执行构建步骤(沙箱、快照与并行)?

A 构建步骤无法并行
B executor 不隔离步骤
C 快照与构建无关
D BuildKit executor 在沙箱执行步骤、用快照管理文件系统、并行执行并缓存 ✓ 正确答案
#

20. Cloud Hypervisor 作为轻量级 VMM 的架构特点与在 Kata Containers 中的角色?

A Cloud Hypervisor 功能与 QEMU 完全相同
B Cloud Hypervisor 是容器运行时
C Kata 不用 VMM
D Cloud Hypervisor 是轻量 VMM,在 Kata 中作为 VMM 提供更轻快的 VM 沙箱 ✓ 正确答案
#

21. gVisor 如何通过用户态内核(Sentry/Gofer)拦截系统调用实现隔离?

A gVisor 用 Sentry 用户态内核拦截系统调用、Gofer 代理文件系统,实现强隔离 ✓ 正确答案
B gVisor 直接调用宿主机内核
C gVisor 无性能开销
D Sentry 是硬件虚拟化