简介这份PDF面向备战技术岗春季招聘的运维工程师求职者尤其适合具备一定工作经验与技术基础的候选人用于系统梳理高频考点、查漏补缺并提升面试应答能力。内容按Linux系统管理、网络与安全、自动化与监控、容器与云原生、故障排查与开放问题五大模块组织每道题均附参考答案涉及日志清理命令、Shell服务监控脚本、TCP三次握手排查、SSH防暴力破解、Ansible核心机制、CPU飙升定位、Docker与虚拟机差异、Kubernetes滚动更新与回滚、502错误分层排查等实战场景并给出动手实验与模拟面试等复习建议。资源包共1个PDF文件约867KB轻量便于随时查阅。目前已有74人学习。读者可借此掌握常见运维技能理解故障分析与解决思路并通过开放性问题锻炼独立作答能力。1. 运维岗春招面试题到底在考什么从一份 PDF 的目录结构说起春招投运维工程师很多人栽在同一个地方简历上写着熟悉 Linux、会 Kubernetes面试官一追问「线上 CPU 飙到 100% 你怎么定位」答不上来。这份《技术岗春招 - 运维工程师高频面试题附参考答案》的 PDF本质不是题库而是一张能力地图——它把运维岗真正会问的东西按 Linux 基础、Shell 脚本、网络与排障、容器与 Kubernetes、自动化与监控几条线铺开。你拿到它第一件事不该是背答案而是先看清它考的是「你动手做过没有」。这篇笔记就顺着这份面试题的脉络把每一类高频题背后的真实考点、参考答案该怎么组织、以及面试官想听到的边界讲清楚适合准备春招的应届生和想转运维的开发者照着复现一遍。2. Linux 与 Shell 高频题从命令背到能排障2.1 为什么面试官总从 Linux 常用命令切入Linux 面试题测试几乎是运维岗的第一道筛子但面试官问top、df、netstat不是考你记不记得命令而是考你有没有在真实机器上排过障。比如「服务器 linux 磁盘满了怎么查」标准答案不是df -h一条命令而是一条链路先df -h看哪个分区满再du -sh /*逐层定位大目录最后lsof | grep deleted找被删除但句柄没释放的文件。这条链路能答全面试官就知道你踩过坑。我一般建议准备时按「现象 → 命令 → 判读」三段整理。以 CPU 高为例top看整体top -Hp pid看线程pidstat -u 1看历史趋势perf top看热点函数。每一层解决不同粒度的问题只答top会被追问到哑口。下面这段是我常用的现场排查脚本骨架面试时能口述出来就是加分项。# 快速定位 CPU 高占用进程及其线程 top -b -n 1 | head -20 # 整体负载与 TOP 进程 pid$(ps -eo pid,pcpu --sort-pcpu | awk NR2{print $1}) top -Hp $pid -b -n 1 | head -20 # 该进程内线程级占用 # 若为 Java 进程再把线程号转十六进制去 jstack 里找 printf %x\n $(top -Hp $pid -b -n 1 | awk NR8{print $1})逻辑说明第一行拿全局快照第二行用ps按 CPU 排序取第一名进程第三行下钻到线程。参数上-b是批处理模式方便脚本抓取-n 1表示只采一次。最后一行把十进制线程号转十六进制是因为jstack输出里的nid是十六进制这一步不做就永远对不上号属于典型的血泪经验。2.2 Shell 脚本题for 循环、shift 和那些必踩的坑Shell 脚本入门到能写生产脚本中间隔着一堆玄学。面试常问「写个脚本批量重命名文件」或「怎么处理带空格的参数」。核心考点有三个for语法、shift命令、以及变量引用加不加引号。shell 脚本 for 循环有两种写法for i in $(ls)和for i in *.log前者遇到带空格的文件名直接翻车后者才安全。shell 的 shift 命令用于逐个消费位置参数写带选项的脚本时几乎必用。#!/usr/bin/env bash set -euo pipefail # 出错即停、未定义变量报错、管道失败可见 while [[ $# -gt 0 ]]; do case $1 in -d|--dir) target_dir$2; shift 2 ;; # 消费两个参数 -v|--verbose) verbose1; shift ;; # 消费一个参数 *) echo 未知参数: $1 2; exit 1 ;; esac done for f in $target_dir/*.log; do # 通配符展开天然处理空格 [[ -e $f ]] || continue # 目录为空时避免拿到字面量 mv -- $f ${f%.log}.log.bak done逻辑说明set -euo pipefail是生产脚本的后悔药能挡住大部分静默失败。shift 2表示选项带值shift单独用表示开关型选项。for f in $target_dir/*.log依赖 shell 自身展开比ls管道安全。${f%.log}是参数扩展去掉后缀再拼新名。参数上--用于防止文件名以-开头被mv当成选项。shell 中常见坑里不加引号的$f和for i in $(ls)排前两名面试时主动提这两点比背十条命令管用。2.3 网络与系统排障题的答题框架「服务连不上怎么查」这类题考的是分层思维。我一般按「本机 → 链路 → 对端」三层答本机ss -lntp看端口有没有监听、iptables -L看防火墙链路ping、traceroute、telnet ip port对端看服务日志和连接数。netstat在新系统上已被ss取代答ss更显功底。DNS 问题用dig或nslookup验证解析别一上来就重启服务。这套框架能覆盖八成网络类面试题剩下的靠现场经验补。3. Kubernetes 面试题别只背概念要能讲清一次 Pod 调度3.1 从 kubectl 常用命令到排障链路Kubernetes 入门指南看十遍不如亲手把一个 Pod 从 Pending 调到 Running。面试高频题是「Pod 一直 Pending 怎么查」标准链路是kubectl describe pod看 Events常见原因有资源不足、节点亲和性不满足、PVC 没绑定。接着kubectl get nodes看节点状态kubectl describe node看已分配资源。如果是 CrashLoopBackOff就kubectl logs看应用日志加--previous看上次崩溃的日志。这套链路面试官一听就知道你真用过。kubectl get pods -o wide # 看 Pod 落在哪个节点 kubectl describe pod pod-name | tail -30 # 重点看 Events 段 kubectl logs pod-name --previous # 崩溃前的日志 kubectl get events --sort-by.lastTimestamp # 集群级事件时间线 kubectl top pod pod-name # 需要 metrics-server逻辑说明describe的 Events 是排障黑匣子90% 的调度问题在这里有答案。--previous是关键参数容器重启后当前日志是空的只有上一次的能看。get events按时间排序能还原事故时间线。top依赖 metrics-server没装就跳过别在面试里硬答。参数上-o wide多显示节点和 IP-n指定命名空间跨命名空间查不到 Pod 是新手最常见的翻车点。3.2 一次 Pod 调度的完整链路怎么讲面试官问「创建一个 Pod 发生了什么」想听的是你对控制面的理解。完整链路kubectl把请求发给 apiserverapiserver 写入 etcdscheduler 监听到未绑定的 Pod经过预选和优选选出节点把绑定结果写回 apiserver目标节点的 kubelet 监听到后调用 CRI 拉起容器CNI 分配网络CSI 挂载存储。这条链路能讲顺Kubernetes 详解类的题基本都能接住。kubernetes version v1.26.0 之后一些 API 有变化比如autoscaling/v2beta2被移除准备时留意目标公司的版本。3.3 配置与存储题的边界ConfigMap、Secret、PVC 这三类题考的是「你知不知道它们的限制」。Secret 默认只是 base64 编码不是加密要真正加密得开 etcd 加密或接外部 KMS。PVC 的访问模式ReadWriteOnce在多数云盘上意味着只能挂一个节点多副本 Pod 共享存储要用ReadWriteMany或对象存储。这些边界答出来比背 YAML 字段更能证明你上过生产。4. 避坑与常见问题面试和实操里最容易翻车的地方4.1 背答案不背链路一追问就露馅现象面试官问「磁盘满怎么办」你答df -h再问「删了文件空间没释放呢」答不上来。原因只记了单条命令没建立排查链路。解决每类问题按「现象 → 逐层命令 → 判读标准」整理成三段练到能口述完整链路而不是背命令清单。4.2 Shell 脚本在本地跑通上服务器就报错现象本地bash script.sh正常服务器上./script.sh报bad interpreter。原因脚本在 Windows 编辑过换行符是\r\n或者 shebang 指向的 bash 路径不存在。解决用dos2unix转换shebang 统一写#!/usr/bin/env bash别写死/bin/bash。这个坑在 shell 脚本入门阶段几乎人人踩一次。4.3 kubectl 连不上集群先别怀疑集群挂了现象kubectl get pods报connection refused或x509证书错误。原因KUBECONFIG环境变量指向了错误的配置文件或者证书过期。解决kubectl config view看当前上下文kubectl config current-context确认集群证书问题看kubeadm certs check-expiration。多数时候是本地配置问题不是集群问题。4.4 面试里把「了解」说成「精通」现象简历写精通 Kubernetes被问到 etcd 备份恢复、证书轮换就卡壳。原因对「精通」的预期是能独立处理生产故障。解决按「用过 / 熟悉 / 精通」三档如实标注精通的那一档必须能讲清原理、边界和故障处理否则就是给自己挖坑。4.5 忽略监控和日志排障时两眼一抹黑现象线上出问题登录机器发现没装监控日志也没集中收集。原因部署时只关注服务能跑没配 Prometheus、ELK 或 Loki。解决新服务上线前先接监控和日志node_exporter加prometheus是最小组合日志用filebeat或fluent-bit采集。面试问「怎么发现故障」答监控告警比答「用户反馈」专业得多。5. 把面试题变成能力一套可复现的备考与验证方法5.1 用虚拟机搭一套最小实验环境光看面试题没用得动手。我一般用虚拟机装一台 Linux把常见服务跑一遍。虚拟机安装 linux 蓝屏多半是虚拟化没开或镜像不完整BIOS 里开 VT-x 即可。装完先配静态 IP、换国内镜像源、装 docker这套流程走一遍Linux 安装 docker 类的题就不用背了。生态最好的 linux 系统这个问题没有标准答案CentOS Stream、Ubuntu LTS、Rocky Linux 各有场景面试时答「看团队技术栈」比硬推一个更稳妥。# 最小实验环境初始化以 Ubuntu 为例 sudo apt update sudo apt install -y docker.io docker-compose sudo systemctl enable --now docker sudo usermod -aG docker $USER # 免 sudo 用 docker需重新登录 docker run -d --name nginx -p 80:80 nginx:alpine docker logs -f nginx # 验证容器日志链路逻辑说明usermod -aG docker把当前用户加入 docker 组避免每条命令加 sudo但要重新登录才生效这是新手常问的「为什么加了组还要 sudo」。docker run用-d后台跑、-p映射端口、--name命名方便后续操作。docker logs -f验证日志这一步能跑通容器排障的基础就有了。5.2 用一份自检清单验证掌握程度备考到后期用清单自检比刷题有效。下面这张表是我自己用的每项能口述链路并动手验证才算过。能力项验证方式达标标准Linux 排障手动制造 CPU/磁盘/内存故障5 分钟内定位到进程或文件Shell 脚本写一个带选项的批量处理脚本处理带空格文件名不报错网络排查模拟端口不通、DNS 失败分层定位到具体环节Kubernetes部署一个多副本应用并排障能讲清调度链路和 Events监控日志接一套 Prometheus 日志采集能收到告警并查到日志5.3 面试前最后一周怎么练最后一周别再刷新题把已经整理好的链路口述一遍最好录音回听。重点练三类排障链路、原理边界、项目细节。项目细节是重灾区简历上写的每个项目都要能答出「你负责哪部分、遇到什么问题、怎么解决、数据是多少」。分布式锁面试题、hbase 面试题这类偏开发的题运维岗偶尔会问答不上来不致命但 Linux 和 Kubernetes 的题答不上来基本就凉了。我自己的习惯是面试前一天把kubectl和ss、top、df这几条命令在实验机上再跑一遍手熟比背熟可靠。希望帮到你。本文还有配套的精品资源点击获取