Kubernetes 基础与部署运维

共 65 题
#

1. ConfigMap/Secret 以卷或环境变量挂载时,Spring Boot 如何感知变更实现配置热更新,两种挂载方式的热更新能力有何差异

A 卷挂载可被 kubelet 更新文件而支持热更新,环境变量挂载启动即固定不支持热更新 ✓ 正确答案
B 两种方式都支持热更新
C 环境变量挂载支持热更新,卷挂载不支持
D 两者都需重启容器才能生效
#

2. Java 容器的 CPU 与内存 requests、limits 如何影响 HotSpot 感知资源、GC 线程数和调度优先级

A GC 线程数与 CPU 无关
B JVM 完全忽略 cgroup,只能用宿主机资源
C requests 与 limits 对 JVM 无影响
D HotSpot 通过 cgroup 感知 CPU/内存,CPU limits 影响 GC 线程数,请求与限制决定 QoS 与驱逐优先级 ✓ 正确答案
#

3. K8s Pod 的 readiness 与 liveness 探针在 Spring Boot Actuator 中如何区分业务可用与进程存活

A Actuator 只能提供单一健康端点
B 两者失败都会重启容器
C readiness 失败会重启容器,liveness 只移出流量
D readiness 失败移出流量不重启,liveness 失败重启容器,Actuator 可分组健康检查 ✓ 正确答案
#

4. K8s 中 Pod 的 resources.requests 与 limits 在 JVM 堆内存识别与 JDK 25 的容器感知默认值

A JVM 堆只看宿主机内存,与容器 limits 无关
B JVM 按容器 limits 与 MaxRAMPercentage 计算默认堆,避免超过容器上限被 OOMKilled ✓ 正确答案
C requests 决定 JVM 堆大小
D JDK 25 无法感知 cgroup 内存
#

5. Kubernetes 1.33 的 Sidecar 容器 GA 与 Spring Boot 应用的多容器 Pod 模式

A Sidecar 只用于前端应用
B Sidecar 容器必须与主容器完全独立运行
C 多容器 Pod 无生命周期管理
D 原生 Sidecar 支持独立生命周期管理,Spring Boot 可用日志/代理/监控等辅助容器协作 ✓ 正确答案
#

6. Kubernetes 1.31 中 PodSchedulingGate 与 Spring Boot 4.0 启动钩子(PostConstruct)

A 前者在调度层控制 Pod 何时被调度,后者在应用层控制初始化时机,二者正交 ✓ 正确答案
B 二者都是应用启动钩子
C PodSchedulingGate 控制 JVM 初始化
D PostConstruct 影响调度决策
#

7. Kubernetes 与 Spring Boot 4.x 的 deployment 模板

A 模板应配置资源限制、探针指向 Actuator 健康端点、ConfigMap/Secret 注入与优雅停机 ✓ 正确答案
B Deployment 模板无需配置探针
C 配置只能硬编码,无法注入
D 优雅停机与 K8s 无关
#

8. Spring Boot 4.0 应用在 K8s 中使用 HPA 与 Custom Pod Autoscaler 基于 Kafka lag 的弹性扩缩

A HPA 无法基于自定义指标扩缩
B 副本数可无限增加,与分区无关
C KEDA 基于 lag 等事件扩缩副本,且副本数应与 Kafka 分区数匹配 ✓ 正确答案
D lag 与扩缩无关
#

9. Spring Boot 应用在 K8s 中通过 Spring Cloud OpenFeign 调用集群内服务时的 DNS 缓存策略

A 缓存越久越利于故障转移
B DNS 缓存与故障转移无关
C JVM DNS 缓存 TTL 影响 Service 端点变化感知,应合理设置 TTL 并配合负载均衡 ✓ 正确答案
D OpenFeign 不经过 DNS 解析
#

10. 使用 OpenTelemetry Operator 在 K8s 中自动注入 Java Agent 与 Spring Boot 4.0 的兼容矩阵

A 自动注入基于字节码增强,兼容性取决于 Agent 与 Spring Boot/JDK 版本 ✓ 正确答案
B Agent 注入与框架版本完全无关
C 自动注入无需考虑 JDK 版本
D 注入后无法采集遥测
#

11. 使用 Spring Boot K8s Client(fabric8)

A fabric8 与 Spring 配置无关
B fabric8 只能读取,无法修改资源
C fabric8 提供 KubernetesClient 操作资源、监听事件,可与 Spring Boot 集成 ✓ 正确答案
D fabric8 无法监听事件
#

12. 在 K8s 中使用 Spring Boot 4.0 配合 Virtual Threads 的 Pod 内存 footprint 实测数据如何

A 虚拟线程比 OS 线程占用更多内存
B 虚拟线程栈内存可回收且比 OS 线程小,高并发下可降低 Pod 内存 footprint ✓ 正确答案
C Spring Boot 4.0 不支持虚拟线程
D 虚拟线程与内存无关
#

13. runAsNonRoot、readOnlyRootFilesystem 和 capabilities drop 如何收紧 Java 容器的安全上下文

A 这些设置只影响性能,不影响安全
B 只读根文件系统无需挂载临时目录
C capabilities 与权限无关
D runAsNonRoot、readOnlyRootFilesystem 与 capabilities drop 共同降低容器提权与写入风险 ✓ 正确答案
#

14. startupProbe 成功前如何抑制存活与就绪探针,启动缓慢的 Spring Boot 服务应怎样设阈值

A startup 成功前抑制 liveness,慢启动应用应设置足够长的启动检查窗口 ✓ 正确答案
B startup 与 liveness 同时执行,无抑制
C 慢启动应用无需特殊配置
D startup 只影响就绪,不影响存活
#

15. topologySpreadConstraints 与 Pod 反亲和如何分散副本,无法满足约束时调度器应如何处理

A 反亲和会强制所有副本同节点
B 约束无法满足时总会被忽略
C 二者分散副本,whenUnsatisfiable/preferred 决定无法满足时是拒绝调度还是尽量调度 ✓ 正确答案
D 拓扑约束与调度无关
#

16. 使用 K8s Job 与 CronJob 执行 Spring Boot 批处理任务与 Spring Batch 集成的最佳实践

A Spring Batch 与 Job 无关
B Job 无法控制重试次数
C Job 一次性、CronJob 定时,配合 Spring Batch 需保证幂等并控制重试与并发 ✓ 正确答案
D 批处理无需幂等
#

17. 排查 Pod 尾延迟时,如何关联容器节流、GC、节点压力、网络和探针事件形成证据链

A 需关联节流、GC、节点压力、网络与探针事件,按时间线对齐定位根因 ✓ 正确答案
B 只看单一指标即可定位
C 尾延迟与 GC 无关
D 探针事件不影响尾延迟
#

18. /proc 与 /sys 的诊断价值

A /proc 提供进程信息,/sys/fs/cgroup 提供容器配额,可诊断 JVM 资源感知 ✓ 正确答案
B /proc 与容器资源无关
C /sys 只能查看 GPU
D 诊断无需查看这些文件
#

19. A/B 测试与灰度发布在目标、用户分桶与指标评估上的差异,如何组合使用?

A A/B 测试用于控制发布风险
B 二者目标完全相同
C 灰度发布用于验证功能效果
D A/B 关注效果对比与分桶,灰度关注风险控制与渐进放量,二者可组合使用 ✓ 正确答案
#

20. DOCKER_BUILDKIT=1 的环境变量启用

A BuildKit 不支持多阶段构建
B BuildKit 与经典构建完全相同
C 启用 BuildKit,提供并行构建、改进的层缓存与安全构建能力 ✓ 正确答案
D BuildKit 无法利用缓存
#

21. Deployment 的 maxSurge 与 maxUnavailable 如何影响滚动发布容量,资源不足时会出现什么停滞

A 它们只影响回滚,不影响发布
B 二者控制滚动发布期间的额外与不可用实例数,资源不足时新 Pod 无法调度导致发布停滞 ✓ 正确答案
C 资源不足不影响滚动发布
D maxSurge 控制不可用实例数
#

22. HPA 按 CPU 利用率扩容为何依赖 requests,启动抖动和指标延迟应怎样设置稳定窗口

A 稳定窗口会加速扩缩
B 利用率与 requests 无关
C 启动抖动不会影响 HPA
D 利用率以 requests 为分母,requests 与稳定窗口设置不当会导致扩缩震荡 ✓ 正确答案
#

23. Helm Chart 与 Kustomize 的工程应用

A Kustomize 支持依赖管理
B 二者都是模板语言
C Helm 用模板参数化并支持版本/依赖管理,Kustomize 用 base/overlay 增量补丁 ✓ 正确答案
D Helm 无法参数化部署
#

24. Ingress 的路由规则与 TLS

A Ingress 按 host/path 路由到 Service,tls 段配置证书实现 HTTPS,由 Controller 实现 ✓ 正确答案
B Ingress 只能做负载均衡,不能路由
C TLS 证书由应用自行管理,与 Ingress 无关
D Ingress 无法配置 path 匹配
#

25. K8s 下 Spring Boot 优雅停机如何与 Endpoint 摘除配合,preStop、readiness 失败与 SIGTERM 的时序应如何编排避免请求丢失

A preStop 与优雅停机无关
B SIGTERM 立即杀死,无需等待
C readiness 失败不影响端点摘除
D 先 readiness 摘流量,preStop 等待在途请求,SIGTERM 触发优雅停机,terminationGracePeriod 为总宽限 ✓ 正确答案
#

26. K8s 中 NetworkPolicy 与 Spring Cloud Gateway 的路由访问控制如何分层

A NetworkPolicy 做网络层流量隔离,Gateway 做应用层路由与鉴权,形成纵深防御 ✓ 正确答案
B 两者都只做网络层控制
C NetworkPolicy 无法限制流量
D Gateway 只在网络层工作
#

27. KEDA 事件驱动扩缩容与 HPA 的资源指标模型有何差异,缩容到零需要处理哪些冷启动问题

A 冷启动与就绪无关
B 二者指标模型完全相同
C 缩容到零无任何副作用
D KEDA 基于事件指标、HPA 基于资源指标,缩容到零需处理冷启动延迟 ✓ 正确答案
#

28. Kubernetes 1.30 的 ServiceAccount Token 投影与 Spring Cloud Config Client 拉取凭证的兼容性

A 投影 Token 无法用于认证
B 投影 Token 与普通 Secret 相同
C Config Client 无需处理 Token 轮换
D 投影 Token 短期更安全,Config Client 需适配其读取与轮换机制 ✓ 正确答案
#

29. Kubernetes Gateway API 取代 Ingress 的迁移路径在 Spring Cloud Gateway 中的适配工作

A Gateway API 不支持跨 namespace
B Gateway API 与 Ingress 完全相同
C 迁移无需适配任何规则
D 迁移需把 Ingress 规则映射为 Gateway API 的 HTTPRoute,并适配策略与 TLS ✓ 正确答案
#

30. Kubernetes Pod 的 Quality of Service(QoS)

A QoS 与资源设置无关
B QoS 由 requests/limits 决定,驱逐顺序 BestEffort 最先、Guaranteed 最后 ✓ 正确答案
C BestEffort 最稳定
D Guaranteed 优先被驱逐
#

31. Kubernetes Service(ClusterIP/NodePort/LoadBalancer/Ingress)

A LoadBalancer 只能在集群内访问
B 所有类型都只能在集群内访问
C Ingress 是 Service 的一种类型
D ClusterIP 集群内访问,NodePort/LoadBalancer 暴露外部,Ingress 做 L7 路由 ✓ 正确答案
#

32. Kubernetes 的 HPA(Horizontal Pod Autoscaler)

A HPA 只能扩大副本,不能缩小
B HPA 只做垂直扩缩容
C HPA 无需 metrics 数据
D HPA 按指标利用率计算期望副本数,支持 min/max 与稳定窗口 ✓ 正确答案
#

33. Kubernetes 的 NetworkPolicy 与流量隔离

A 它用 podSelector 与 ingress/egress 白名单实现流量隔离,依赖 CNI 支持 ✓ 正确答案
B 它无需 CNI 即可生效
C 它只能控制 egress,不能控制 ingress
D 网络策略总会生效
#

34. Kubernetes 的 PVC(PersistentVolumeClaim)

A PVC 的数据随 Pod 删除而丢失
B PVC 请求存储,PV 提供实际卷,StorageClass 动态供给,数据不随 Pod 重建丢失 ✓ 正确答案
C 所有存储都必须手动创建 PV
D PVC 与有状态应用无关
#

35. Kubernetes 的 Pod Security Standards(PSS)

A PSS 只有一个等级
B PSS 分 privileged/baseline/restricted 三级,通过准入控制 enforce 策略 ✓ 正确答案
C restricted 允许 root 运行
D PSS 与准入控制无关
#

36. Kubernetes 的 RBAC(基于角色的访问控制)

A RBAC 控制网络流量
B Role 与 ClusterRole 完全相同
C Role/ClusterRole 定义权限,Binding 绑定到主体,实现最小权限控制 ✓ 正确答案
D ServiceAccount 不需要授权
#

37. Kubernetes 的 etcd 备份与恢复

A 恢复无需停止 apiserver
B etcd 无需备份
C etcd 存储集群状态,用 snapshot 备份/恢复,定期备份与恢复演练保障可恢复 ✓ 正确答案
D etcd 只存日志,不存状态
#

38. Kubernetes 的 kubectl exec/logs/port-forward

A port-forward 用于删除 Pod
B 三者都只能查看资源
C logs 能进入容器执行命令
D exec 进入容器、logs 查看日志、port-forward 端口转发,用于调试与排障 ✓ 正确答案
#

39. Kubernetes 的 kubectl get events 的诊断价值

A 事件记录调度、探针、重启等资源生命周期信息,是排障的重要线索 ✓ 正确答案
B 事件只显示成功信息
C 事件与排障无关
D get events 无法过滤
#

40. Kubernetes 的 kubectl rollout undo 与版本管理

A 回滚会自动处理数据库变更
B Deployment 不保留版本历史
C rollout 无法回滚
D 每次更新生成 revision,rollout undo 可回滚到历史版本,是发布失败的回退手段 ✓ 正确答案
#

41. Kubernetes 的 kubectl top 与资源监控

A 资源监控只能查看历史
B kubectl top 无需 metrics-server
C kubectl top 显示节点/Pod 资源使用,依赖 metrics-server,用于排障与容量评估 ✓ 正确答案
D kubectl top 无法查看节点
#

42. Kubernetes 的健康检查(liveness/readiness/startup)

A 三种探针语义相同
B liveness 失败重启、readiness 失败摘流量、startup 成功前抑制 liveness ✓ 正确答案
C readiness 失败会重启容器
D startup 与启动无关
#

43. NetworkPolicy 在没有支持该能力的 CNI 时为何可能无效,默认拒绝策略应如何验证

A 策略由 kubelet 直接执行
B 所有 CNI 都支持 NetworkPolicy
C NetworkPolicy 无需验证
D 策略执行依赖支持 NetworkPolicy 的 CNI,不支持时策略无效,需用网络工具验证 ✓ 正确答案
#

44. Pod 的 Guaranteed、Burstable 与 BestEffort QoS 如何决定驱逐顺序,OOMKilled 又由哪层触发

A OOMKilled 由 kubelet 触发
B QoS 决定 kubelet 驱逐顺序,OOMKilled 由内核因容器超 cgroup 限制触发 ✓ 正确答案
C Guaranteed 绝对不会被 OOMKilled
D 驱逐由内核直接触发
#

45. Pod 的生命周期(Pending/Running/Succeeded/Failed)

A Pending 未调度、Running 运行中、Succeeded/Failed 退出,阶段反映整体状态 ✓ 正确答案
B Pending 表示运行成功
C Failed 表示容器还在运行
D 阶段与容器状态无关
#

46. Pod 的资源请求与限制(requests/limits)

A requests 是运行上限
B requests 是调度预留,limits 是运行上限,超限会被节流或 OOM ✓ 正确答案
C limits 决定调度
D 二者只影响性能,不影响安全
#

47. Secret 以明文环境变量注入存在哪些风险,投射式令牌与外部密钥系统(Vault)如何改善凭据安全

A Vault 无法管理凭据
B 环境变量注入很安全,无需改善
C 投射式令牌是长期凭据
D 明文环境变量易泄露且无轮换,投射式令牌与 Vault 提供短期受控可审计的凭据 ✓ 正确答案
#

48. Spring Boot 4.0 在 K8s 中使用 Argo Rollouts 实现金丝雀发布与 Prometheus 指标驱动的自动回滚

A 金丝雀发布无法自动回滚
B 它用 AnalysisTemplate 分析 Prometheus 指标,指标超阈值自动回滚 ✓ 正确答案
C 指标与回滚决策无关
D Argo Rollouts 只支持蓝绿
#

49. StatefulSet 与有状态应用

A 它提供稳定网络身份与每副本独立 PVC,适合有状态应用 ✓ 正确答案
B 它适合无状态应用
C StatefulSet 无稳定存储
D 所有副本共享一个 Pod 名
#

50. StatefulSet 的稳定网络身份和有序更新解决什么问题,持久卷为何不会随 Pod 自动迁移数据

A StatefulSet 无稳定身份
B PVC 会随 Pod 自动迁移
C 持久卷与节点无关
D 稳定身份与有序更新保障有状态应用,PVC 绑定节点存储,数据不随 Pod 自动迁移 ✓ 正确答案
#

51. Trivy 的 --severity 过滤与 .trivyignore 的漏洞忽略策略(误报管理)

A .trivyignore 会忽略所有漏洞
B --severity 控制报告级别,.trivyignore 忽略确认为误报的漏洞,需定期审查 ✓ 正确答案
C severity 过滤与门禁无关
D 误报无需管理
#

52. cron 与定时任务的触发精度与分布式场景限制,如何用分布式调度补充?

A 分布式调度无必要
B cron 天然支持分布式只执行一次
C cron 精度分钟级且无法保证分布式只执行一次,需分布式调度保证唯一执行与失败处理 ✓ 正确答案
D cron 精度到秒级
#

53. nerdctl(containerd CLI)的兼容性

A 它只能管理镜像,不能运行容器
B 它是 containerd 的 CLI,命令与 Docker CLI 高度兼容,用于无 Docker 守护进程环境 ✓ 正确答案
C 它与 Docker CLI 完全无关
D 它必须依赖 Docker 守护进程
#

54. K8s 1.31 中 Ephemeral Containers 在 Spring Boot 在线诊断与 jcmd 注入的最佳实践

A 临时容器会重启原容器
B 临时容器可注入诊断工具(jcmd/jmap)不重启原容器,适合 JVM 在线诊断 ✓ 正确答案
C 临时容器无法访问进程命名空间
D 诊断无需考虑权限
#

55. Kubernetes Deployment/StatefulSet/DaemonSet/Job/CronJob 在 Spring Boot 应用场景的取舍

A 所有应用都用 StatefulSet
B 无状态服务用 Deployment,有状态用 StatefulSet,批处理用 Job/CronJob ✓ 正确答案
C 批处理用 Deployment
D DaemonSet 适合多副本无状态服务
#

56. readinessProbe 失败只会移出流量而不会重启容器,这一语义如何用于依赖故障和优雅降级

A readiness 用于进程存活判断
B readiness 失败会重启容器
C 摘流量后无法恢复
D 失败只摘流量不重启,依赖恢复后自动重新就绪,适合依赖故障优雅降级 ✓ 正确答案
#

57. 健康检查(Health Check)的多层次(探针/接口)

A 探针层管生命周期、Actuator 健康接口聚合依赖、业务层做深度验证,多层配合 ✓ 正确答案
B 健康检查只需探针
C Actuator 与探针无关
D 业务层检查无用
#

58. 投射式 ServiceAccount 令牌相比旧的长期 Secret 有何安全优势,受众与过期时间如何配置

A 令牌长期有效
B 令牌短期、绑定受众、自动轮换,比长期 Secret 降低泄露风险 ✓ 正确答案
C 令牌无法绑定受众
D 令牌与轮换无关
#

59. 日志收集(Filebeat/Fluentd/Loki)

A Loki 与 ELK 完全相同
B 日志只需采集,无需存储
C Filebeat/Fluentd 采集,Loki/ELK 存储查询,构成采集-存储-查询分层 ✓ 正确答案
D 日志收集与监控无关
#

60. 滚动发布(Rolling Update)的工程取舍

A 滚动发布无法回滚
B 滚动发布会中断服务
C 滚动期间无需兼容
D 渐进替换保持零停机、可回滚,但新旧并存需兼容 ✓ 正确答案
#

61. 部署与回滚的 Runbook 工程实践

A Runbook 只在故障后使用
B Runbook 无需文档化
C 回滚无需流程
D Runbook 标准化部署与回滚步骤并文档化,定期演练减少人为失误 ✓ 正确答案
#

62. Feature Flag(LaunchDarkly/自研)的应用

A Flag 无需清理
B Feature Flag 只能用于前端
C 开关无法控制回滚
D 用开关控制功能启停,支持灰度发布、快速回滚,需规范命名与清理 ✓ 正确答案
#

63. Service 如何只把流量发送到 Ready 端点,EndpointSlice 在大规模服务中改善了什么

A Service 只路由到 ready 端点,EndpointSlice 分片改善大规模端点管理性能 ✓ 正确答案
B Service 会路由到所有不健康端点
C EndpointSlice 与 Endpoints 相同
D 分片与性能无关
#

64. preStop、terminationGracePeriodSeconds 与 SIGTERM 如何协作,超过宽限期后会发生什么

A preStop 后发 SIGTERM 优雅停机,超宽限期则 SIGKILL 强制终止 ✓ 正确答案
B 容器启动时执行 preStop
C 超宽限期后容器继续运行
D SIGTERM 会立即杀死进程
#

65. 金丝雀发布(Canary)的灰度策略

A 金丝雀无需观察指标
B 金丝雀一次性全量切换
C 先小比例放量观察指标,正常后逐步扩大,异常则回滚,风险更低 ✓ 正确答案
D 金丝雀无法回滚