容器化与 Kubernetes 面试题:Pod、Service、存储、调度等核心知识点与回答框架
在 Kubernetes 面试中,Pod、Service、存储 和 调度 是四大核心考察维度。面试官通过这些问题评估候选人对容器编排的理解深度、生产实践经验以及故障排查能力。本章围绕这四个维度,梳理高频面试题及结构化回答框架,帮助你在面试中精准命中考点。
🎯 章节聚焦:Pod 生命周期与探针 · Service 类型与服务发现 · PV/PVC 与动态供给 · 调度策略与 QoS
📊 知识结构:K8s 四大核心概念对比
| 概念 | 核心作用 | 关键配置 | 常见面试点 |
|---|---|---|---|
| Pod | 最小调度单元 | 探针、资源限制、init 容器 | 生命周期状态、健康检查、共享网络 |
| Service | 网络抽象层 | ClusterIP / NodePort / LB / ExternalName | 服务发现、负载均衡、流量转发 |
| 存储 | 数据持久化 | PV / PVC、StorageClass、动态供给 | 存储生命周期、访问模式、回收策略 |
| 调度 | 资源分配 | 调度策略、优先级、QoS | 过滤打分、亲和性、资源预留 |
🎙️ 面试问题:请解释 Kubernetes Pod 的生命周期状态,并说明容器探针的配置策略。
💡 示例回答:
Pod 有 Pending、Running、Succeeded、Failed、Unknown 五种状态。探针包括 livenessProbe(失败重启容器)、readinessProbe(失败从 Service 摘除)、startupProbe(慢启动保护)。生产环境建议组合 startupProbe 与 livenessProbe,避免启动阶段误判。
❓ 可能追问:init 容器与 sidecar 容器的区别?如何实现 Pod 优雅终止?
⚠️ 避坑提醒:不要将 readinessProbe 用于应用健康检测,它只控制流量接入;避免探针超时时间过短导致频繁重启。
🎙️ 面试问题:Kubernetes Service 有哪几种类型?如何实现服务发现和 DNS 解析?
💡 示例回答:
Service 类型包括 ClusterIP(集群内通信)、NodePort(节点端口接入)、LoadBalancer(云负载均衡)、ExternalName(DNS 映射)。通过 kube-dns 解析 Service 名到 ClusterIP,kube-proxy 使用 iptables/IPVS 实现四层转发。
❓ 可能追问:headless Service 如何做有状态服务?EndpointSlice 相比 Endpoints 的优势?
⚠️ 避坑提醒:不要忽略 ExternalName 类型的应用场景;避免误认为 Service 只能做四层负载均衡(可结合 Ingress 做七层)。
🎙️ 面试问题:Kubernetes 调度器如何选择节点?Pod 优先级和 QoS 机制如何协作?
💡 示例回答:
调度器先过滤(节点选择、资源充足),再打分(资源均衡、亲和性)。PriorityClass 控制调度顺序,高优先级可抢占低优先级。QoS 分 Guaranteed、Burstable、BestEffort 三级,影响节点资源分配和 eviction 顺序。
❓ 可能追问:nodeAffinity、podAffinity、podAntiAffinity 如何配置?如何进行节点资源预留?
⚠️ 避坑提醒:不要混淆抢占和预选;避免在高优先级 Pod 中忽略 QoS 配置导致调度失败;不要忽视调度器的可扩展性(调度框架)。
🔍 面试追问深度路径:从基础概念到底层扩展,面试官逐步深入考察 K8s 知识体系。