波克城市-2025秋招-运维工程师面经
面试问答整理(按时间线)
- 求职动机
- 问:为什么选择运维开发工程师岗位?
- 答:想系统深入云原生(K8s、Docker);此前有基础实践;结合实习与项目经历,自评能胜任。
- K8s 基础
- 问:你对 K8s 有哪些了解?
- 答:K8s 是容器编排系统,支持横向扩容;可编排基于 Docker 的容器,具备分布式部署能力,依赖 etcd。
- 问:K8s 控制平面由哪些组件?
- 答:暂不熟悉内部机制;主要使用过部署编排与横向扩容。
- 负载均衡策略
- 问:随机、轮询、加权、一致性哈希的策略与优缺点?
- 答:四类策略用于选择下游节点;现场主要阐述了随机与轮询原理,以及一致性哈希用哈希环+虚拟节点。
- 问:随机策略对客户端流量影响?后端节点故障会不会造成流量损失?
- 答:会造成损失;需结合服务特性选策略。
- 问:轮询策略如何实现?
- 答:维护计数器,在可用节点列表中顺序轮转转发。
- 问:一致性哈希如何实现?
- 答:以客户端 IP 为 key,经哈希函数落到哈希环,顺时针选择第一个命中节点;引入虚拟节点提升均衡。
- 问:一致性哈希主要解决哪些实际场景?
- 答:典型是会话保持(Session Stickiness),让同一客户端稳定打到同一台后端。
- 问:不靠一致性哈希,还有什么方式做会话保持?
- 答:网关分配会话 ID 并缓存连接/复用 TCP;也可基于 Cookie/Session ID 做路由。
- 问:后端一台宕机导致雪崩效应,怎么办?
- 答:用熔断/降级(如 Hystrix 思路):按错误率阈值触发降级,阻断流量进一步冲击。
- Raft / KV 存储
- 问:请介绍 Raft 的整体流程与实现挑战。
- 答:先打基础→自写 RPC 框架→实现跳表存储→完成 leader 选举与日志复制→多节点部署验证。
- 问:心跳机制怎么实现?
- 答:Leader 通过 RPC 向 Follower 周期性发心跳;超时未收到则触发选举。
- 问:心跳在一致性中的作用?
- 答:用于快速感知 Leader 故障,维持集群有序与一致性保障。
- 问:什么情况下会出现“脑裂”?
- 答:网络分区并在恢复后可能出现双 Leader,Raft 不允许。
- 问:为何选择跳表?它在 KV 中的优势?如何保证(分布式)一致性,尤其故障恢复后?
- 答:跳表实现简单、性能可用;一致性通过操作日志复制(Leader 先发 Follower)来保证;并发安全用 mutex/原子操作;本地读写采用“单写多读”模式。
- Linux & 排障
- 问:常用 Linux 命令?
- 答:cp/mv/cd、chmod、htop/top、telnet、ping、curl 等。
- 问:外部服务卡顿如何排查?会用到哪些命令?
- 答:先用(h)top 看 CPU/网络与高占用进程,定位进程后再深入分析;在排除流量过载前提下继续定位异常资源消耗。
- 问:若已怀疑内存泄漏,如何进一步定位到问题函数?
- 答:该方向实践经验较少。
- 容器化部署上线
- 问:你的网关系统如何用容器部署与上线?
- 答:前端(Vue)构建后由 Nginx 反代;后端同一代码维护两份 Dockerfile(管理端/代理端),采用多阶段构建,部署到 OnePanel,以多容器方式跑在不同端口。
你的反问(及对方回复)
- 你问:我们组目前负责哪些业务?对方答:岗位在运维部做运维开发为主;涉及应用平台开发、监控系统(Prometheus 等)、容器/K8s 相关改造和开发,整体偏开发,但要有 Linux/运维基础。
- 你问:应届生更适合从哪个方向入门(K8s 编排 vs Prometheus 监控告警)?对方答:看个人兴趣;云原生方向需要业务运维经验与二次开发能力;监控是大课题,强调可观测性、全链路指标打通;微服务拆分提升了监控复杂度。