Skip to content

容器云平台架构师 - 面试手册

基于 JD:生产级 Kubernetes 平台架构设计、多集群/跨可用区/混合云、千/万节点大规模集群稳定性治理、性能优化、容量规划、资源利用率优化、CNI/CSI/容器运行时/Operator 选型落地、复杂故障排查。


一、岗位核心能力画像

维度重点
架构能力生产级 K8s 平台整体架构设计、持续演进、多集群/混合云规划
深度技术K8s 核心原理(调度、控制器、API、网络、存储)、containerd/cgroups/namespace
规模经验千/万节点大规模集群运维、稳定性治理、性能调优
组件选型CNI/CSI/容器运行时/Operator 选型、落地与二次开发
开发能力熟练使用 Go,自研 Operator、调度扩展、云原生平台开发
故障排查网络抖动、存储瓶颈、调度异常、内核问题等复杂问题

二、高频面试问题与回答思路

2.1 K8s 平台架构设计

Q1:如何设计一个生产级 Kubernetes 平台?

  • 明确目标:业务规模、多租户、多集群、混合云、SLA 要求
  • 控制面高可用:多 Master、etcd 集群、API Server 负载均衡
  • 网络:CNI 选型、Pod/Service 网络规划、网络策略、Ingress
  • 存储:CSI 选型、存储分级、快照备份
  • 安全:RBAC、NetworkPolicy、PodSecurity、镜像安全、Secret 管理
  • 可观测性:Metrics/Logs/Traces、告警、审计
  • 运维自动化:升级、扩缩容、备份、灾备、故障自愈

Q2:多集群架构如何设计?

  • 联邦模式:KubeFed / Open Cluster Management (OCM)
  • 控制面集中 + 数据面分散:每个业务/地域独立集群,统一管控平台
  • 集群联邦:多集群 Service、Ingress、Config 分发
  • 统一认证、统一监控、统一调度、统一发布

Q3:混合云/跨可用区架构如何保障高可用?

  • 控制面跨 AZ 部署,etcd 跨 AZ 分布
  • 工作负载多 AZ 调度(PodTopologySpread)
  • 跨云网络:专线、VPN、VPC 对等
  • 数据同步:存储跨云复制、配置同步
  • 故障切换:DNS 切流、负载均衡跨云、灾备演练

Q4:万节点集群的控制面瓶颈在哪里?如何优化?

  • etcd:写入压力大、存储容量、压缩与碎片整理
  • API Server:请求并发、List 操作、Watch 连接数
  • Controller Manager / Scheduler:处理延迟
  • 优化手段:
    • etcd 独立部署 SSD、分片、事件 TTL 管理
    • API Server 水平扩展、请求限速、缓存优化
    • Controller 优化 List-Watch、事件聚合
    • 使用 Aggregated APIServer 分担压力

2.2 K8s 核心原理深度

Q5:K8s 调度器完整流程?

  • Predicates(过滤):节点资源、亲和性、污点、Volume 等
  • Priorities(打分):资源均衡、亲和性、镜像本地性等
  • Reserve → Permit → Bind
  • 可扩展 Scheduler Framework

Q6:API Server 的请求处理流程?

  • 认证(Authentication)→ 鉴权(Authorization)→ Admission Control(Mutation/Validation)→ Etcd 读写 → 返回
  • 支持 Aggregated APIServer 扩展

Q7:Kubelet 的工作机制?

  • 监听 Pod Spec 变化
  • 调用 CRI 创建/管理容器
  • 健康检查(Liveness/Readiness/Startup Probe)
  • 资源上报、节点状态更新
  • 垃圾回收与卷管理

Q8:K8s 网络模型要求?

  • 每个 Pod 独立 IP
  • Pod 之间可直接通信(不经过 NAT)
  • Node 与 Pod 可直接通信
  • Service 通过 kube-proxy 或 IPVS 实现负载均衡

Q9:K8s 存储模型?PV/PVC/StorageClass 关系?

  • StorageClass:定义存储"类型"与 Provisioner
  • PVC:用户声明存储需求
  • PV:实际存储资源,可静态或动态创建
  • CSI 插件负责卷的生命周期管理

2.3 容器底层技术

Q10:containerd 与 Docker 的关系?为什么 K8s 转向 containerd?

  • containerd 是 Docker 的核心容器运行时,后被捐赠给 CNCF
  • K8s 通过 CRI 与 containerd 交互
  • containerd 更轻量、更稳定、更安全、更符合 CRI 标准

Q11:cgroups v1 与 v2 的区别?

  • v1:每个子系统独立挂载,资源隔离分散
  • v2:统一层级结构,支持更精细的资源控制
  • v2 支持 PSI(Pressure Stall Information),便于检测资源竞争

Q12:namespace 有哪些类型?用途?

  • PID、Network、Mount、UTS、IPC、User、Cgroup、Time
  • 用于进程、网络、文件系统、用户等隔离

Q13:容器启动慢如何排查?

  • 镜像拉取:镜像大小、镜像仓库网络、并行拉取、镜像缓存
  • 容器创建:CNI 分配网络、CSI 挂载卷
  • 应用启动:JVM 启动、依赖服务初始化
  • 使用 crictl、ctr、kubelet 日志分析

2.4 大规模集群稳定性治理

Q14:千/万节点集群如何做好稳定性治理?

  • 变更管理:灰度升级、蓝绿发布、回滚方案
  • 容量规划:资源增长预测、节点扩缩容、存储规划
  • 监控告警:核心组件 SLA、节点健康、资源水位
  • 故障演练:混沌工程、灾备演练
  • 标准化:SLO/SLI、Runbook、值班机制

Q15:K8s 升级如何做到平滑?

  • 先升级控制面:Master 逐个升级
  • 再升级节点:分批滚动、业务低峰期
  • 升级前备份 etcd、验证 API 兼容性
  • 升级后验证核心组件、应用状态

Q16:如何处理大规模节点同时重启/故障?

  • 节点故障自动隔离与驱逐
  • 大规模 Pod 重新调度风暴控制
  • 镜像预热、启动顺序优化
  • 依赖服务限流、缓存兜底
  • 应急预案与快速扩容

2.5 资源利用率优化

Q17:如何提升 K8s 集群资源利用率?

  • 合理设置 Request/Limit
  • HPA/VPA/Cluster Autoscaler 弹性伸缩
  • 在离线混部与潮汐调度
  • QoS 分级:Guaranteed/Burstable/BestEffort
  • 超卖(Overcommit):基于历史使用率的资源超卖
  • 调度策略优化:减少碎片、Bin Packing
  • 资源回收:僵尸 Pod、未使用 PVC/LB/IP

Q18:Request 和 Limit 如何设置?超卖风险?

  • Request:调度依据,保证最低资源
  • Limit:资源使用上限
  • 超卖:提高 Limit/Request 比例,提升利用率
  • 风险:节点资源耗尽、Pod 被 OOM/CPU 节流、性能抖动
  • mitigation:基于真实负载数据、分级超卖、监控与熔断

Q19:Cluster Autoscaler 原理?注意事项?

  • 监听不可调度 Pod,触发节点扩容
  • 节点长期低利用率时触发缩容
  • 注意:缩容安全窗口、PodDisruptionBudget、自定义镜像、多可用区平衡

2.6 核心组件选型

Q20:CNI 如何选型?

CNI特点适用
CalicoBGP/IPTunnel、NetworkPolicy 强通用
CiliumeBPF 高性能、可观测性强大规模、安全
Flannel简单、轻量中小规模
Weave加密、简单小规模
自研定制路由、高性能超大规模

Q21:CSI 如何选型?

  • 公有云:使用云厂商 CSI
  • 私有云:Ceph-RBD/CephFS、Longhorn、OpenEBS、NFS
  • 根据性能、可靠性、快照、扩容能力选择

Q22:容器运行时如何选型?

  • containerd:主流、稳定、轻量
  • CRI-O:RedHat 生态
  • Kata Containers / gVisor:强安全隔离

Q23:Operator 开发框架如何选择?

  • kubebuilder:社区推荐,Go 语言
  • operator-sdk:功能丰富,支持 Helm/Ansible/Go
  • 自研 client-go:灵活性高,成本大

2.7 复杂故障排查

Q24:网络抖动如何排查?

  • 检查 CNI 插件状态、kube-proxy、IPVS/iptables 规则
  • 抓包:tcpdump 分析丢包、重传、延迟
  • 检查 MTU、Conntrack、DNS
  • 检查物理网络、交换机、RDMA/RoCE
  • 关注内核参数:tcp_tw_reuse、rp_filter、conntrack 表

Q25:存储瓶颈如何排查?

  • 检查 Pod IO 延迟与吞吐
  • 分析后端存储集群负载
  • 检查 CSI 插件日志
  • 评估是否需要本地 SSD、分布式存储优化、IO 隔离

Q26:调度异常如何排查?

  • kubectl describe pod 看 Events
  • 检查节点资源、污点、亲和性
  • 检查 Scheduler 日志
  • 检查 ResourceQuota/LimitRange/PodDisruptionBudget

Q27:内核问题如何排查?

  • 查看 dmesgjournalctl -k
  • 检查内核版本兼容性
  • 分析 cgroup、namespace、网络栈相关参数
  • 必要时使用 bpftrace/eBPF 追踪内核行为
  • 关注已知内核 Bug 与升级方案

三、项目经验准备建议

项目一:生产级 K8s 平台建设

  • 背景:公司业务扩张,需要统一容器云平台
  • 目标:建设高可用、可扩展的 K8s 平台
  • 方案
    • 多 Master + etcd 高可用控制面
    • CNI/CSI/运行时/Operator 选型
    • 多集群统一管控、混合云接入
    • 可观测性、安全、自动化运维体系
  • 成果:支撑 X 业务、Y 节点、Z Pod,SLA 达到 99.99%

项目二:大规模集群稳定性治理

  • 背景:集群规模达到数千节点,稳定性问题频发
  • 目标:提升平台稳定性,降低故障率
  • 方案
    • 控制面性能优化(etcd/API Server/Scheduler)
    • 容量规划与弹性伸缩
    • SLO/SLI 体系建设
    • 故障演练与 Runbook 沉淀
  • 成果:P0 故障下降 X%,MTTR 降低 Y%

项目三:资源利用率优化

  • 背景:集群资源利用率低,成本高
  • 目标:提升利用率,降低成本
  • 方案
    • 合理设置 Request/Limit
    • HPA/VPA/Cluster Autoscaler
    • 在离线混部
    • 超卖策略与 QoS 分级
  • 成果:资源利用率从 X% 提升到 Y%,成本下降 Z%

四、面试准备清单

4.1 技术复习

  • [ ] K8s 整体架构与核心组件原理
  • [ ] 调度器、控制器、API Server、Kubelet 工作机制
  • [ ] 网络模型、CNI、Service、Ingress、NetworkPolicy
  • [ ] 存储模型、CSI、PV/PVC/StorageClass
  • [ ] containerd、cgroups、namespace 容器底层技术
  • [ ] 多集群、混合云、跨可用区架构
  • [ ] 大规模集群稳定性治理与性能优化
  • [ ] 资源利用率优化:弹性伸缩、QoS、超卖、混部
  • [ ] Go 语言开发与 Operator/调度扩展
  • [ ] 复杂故障排查:网络、存储、调度、内核

4.2 项目复盘

  • [ ] 准备一个 K8s 平台建设/架构设计项目
  • [ ] 准备一个大规模集群稳定性治理项目
  • [ ] 准备一个资源利用率优化或成本降低项目
  • [ ] 准备一个复杂故障排查案例

4.3 行为面试

  • 如何设计一个支撑未来 3 年业务增长的 K8s 平台?
  • 遇到控制面性能瓶颈,你的分析和优化思路是什么?
  • 如何推动团队落地稳定性治理规范?
  • 描述一次处理复杂线上故障的完整过程。

五、推荐学习资源

类型资源
K8s 源码与原理Kubernetes 官方文档、Kubernetes 源码分析
容器底层containerd 文档、Linux cgroups/namespace 资料
网络Calico/Cilium 文档、TCP/IP、Linux 网络栈
大规模运维Google SRE Book、《Kubernetes 最佳实践》
开源社区CNCF 项目、K8s SIG 会议、KubeCon 演讲

六、简历亮点建议

  1. 量化平台规模:支撑 X 个集群、Y 节点、Z 业务线
  2. 突出架构设计:生产级 K8s 平台、多集群/混合云/跨可用区
  3. 强调稳定性成果:SLA、P0 故障下降、MTTR 降低
  4. 展示性能优化:控制面优化、资源利用率提升、成本下降
  5. 提及组件选型与二次开发:CNI/CSI/Operator/调度扩展
  6. 展示开源贡献:CNCF 项目参与、Issue/PR/演讲

祝你面试顺利,成功拿下容器云平台架构师 Offer!