# 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 是硬件虚拟化