第 16 / 18 篇

附录 A 自测参考答案

第 1 章:镜像是可分发的模板,容器是运行实例。Kubernetes 不保证程序没有 bug。控制器会尝试创建替代实例,前提是资源与其他条件允许。

第 2 章:本书的 kubectl 在你的电脑上运行,通过 API 与集群通信。调度器选择节点。由控制器管理的 Pod 被删除后,控制器为维持期望状态创建替代品。

第 4 章:对象名字与容器名字属于不同层级。端口声明不会创建对外网络入口,所以还需要转发或服务暴露机制。

第 5 章:Deployment 会通过 ReplicaSet 补建 Pod。新 Pod 是新对象,通常会有新名字和地址。

第 6 章:Service 根据标签选择器找到后端;先检查选择器、Pod 标签、就绪状态和 EndpointSlice,再检查端口与网络路径。

第 7 章:Base64 可以轻易解码,不能保护公开的密码。通过环境变量注入的值不会因 ConfigMap 更新而自动改变。

第 8 章:就绪失败通常使 Pod 暂停接收 Service 流量,不会单凭该探针触发重启。100m 是 0.1 CPU 核。挂载所引用的 ConfigMap 不存在时,容器所需卷无法准备完成。

第 9 章:ConfigMap 是独立对象,修改它不等于修改镜像或 Deployment 模板。Deployment 的回滚不负责数据库恢复。

第 10 章:emptyDir 可以跨同一 Pod 内容器重启保存,但不能跨 Pod 删除保存。PVC 不提供独立备份副本与恢复流程。

第 11 章:镜像都未拉取成功时,修改探针通常不能解决问题。选择器与标签不匹配,Service 就无法找到正确后端。

第 12 章:HPA 调整 Pod 数量,节点扩容由其他机制负责。NetworkPolicy 是否生效取决于网络实现,还需要实际验证。