运维面试不应只背命令。高质量回答应包含:机制、证据、风险、操作顺序、验证和复盘。
## Linux
进程 CPU 高:先确认用户影响与范围,再用 top/pidstat/perf 等区分用户态、内核态、I/O 等待、锁竞争和单核热点。内存问题结合 available、RSS、page cache、swap、OOM 与应用堆分析,不把“free 很小”直接判断为泄漏。
## 网络
从链路、地址、路由、DNS、TCP/UDP、TLS 到应用逐层排查。能解释三次握手、四次挥手、TIME_WAIT、MTU、NAT、负载均衡和连接超时。回答网络不通时给出 ip route get、ss、dig、curl、tcpdump 的验证顺序。
## MySQL 与 Redis
MySQL 关注索引、执行计划、事务隔离、锁、redo/undo/binlog、备份和 GTID 复制。Redis 关注数据结构、过期淘汰、RDB/AOF、热键大键、缓存穿透/击穿/雪崩、Sentinel 与 Cluster。
复制和高可用不等于备份;所有恢复方案都要经过演练。
## Docker 与 Kubernetes
解释镜像、容器、namespace、cgroup、网络和卷;能写安全 Dockerfile。Kubernetes 关注 Pod、Deployment、Service、调度、存储、网络、安全与排障链路。遇到 CrashLoopBackOff、Pending、Service 不通时从 Events、日志、资源、标签和 Endpoint 逐层验证。
## 零信任
零信任不是“所有请求都弹 MFA”,核心是持续验证身份、设备、工作负载、环境和访问上下文,并按最小权限授权。
设计要点:
- 统一身份与强认证,短期凭证优于长期静态密钥。
- 人员、服务和设备都有可验证身份。
- 细粒度策略与最小权限,默认拒绝。
- 网络分段和工作负载身份,不能只依赖内网可信。
- 记录访问决策,结合风险信号持续评估。
- 准备身份系统故障和紧急访问流程。
## 架构题
先澄清用户量、流量、数据、延迟、可用性、合规、成本和团队能力,再给方案。讨论计算、存储、网络、缓存、数据库、队列、观测、安全、备份和灾备,并明确单点、容量与退化策略。
不要一上来堆 Kubernetes、微服务和中间件。小系统可能单体更可靠;架构应匹配约束。
## 行为与故障题
使用 STAR 或时间线说明:现象、影响、证据、假设、操作、恢复、根因与预防。承认不确定细节,并说明会如何从官方文档和测试环境验证,比编造答案更专业。
## 面试准备
1. 建立一套可复现实验环境。
2. 每个主题准备“原理+命令+事故”案例。
3. 练习 5 分钟故障口述。
4. 把简历中的每项技能追问到设计取舍。
5. 不泄露原公司的客户、IP、密码和内部架构。
本博客已有 Kubernetes、MySQL、Redis、Linux、OpenStack 和 Ansible 专题,可作为分项复习材料。