本文汇总运维开发工程师高频面试题,涵盖Linux系统、网络协议、容器技术、自动化工具等核心领域,提供详细技术解析与实战案例,助力求职者系统化备战面试。
1. 如何快速扩容Linux根分区?
使用LVM扩展逻辑卷:
bash
# 方法1:在线扩容(需xfs_growfs或resize2fs支持)
growpart /dev/vda 1
resize2fs /dev/vda1
# 方法2:新增磁盘并扩展
fdisk /dev/sdb # 创建新分区并设置类型为8e(LVM)
pvcreate /dev/sdb1
vgextend datavg /dev/sdb1
lvextend -r -L +100%FREE /dev/mapper/datavg-lv01
2. 僵尸进程如何处理?
通过`ps aux | grep Z`定位僵尸进程,终止其父进程:
bash
kill -9 <父进程PID> # 父进程终止后,init进程会接管并清理僵尸进程
3. 如何查看系统资源占用?
使用`top`、`htop`实时监控,结合`pidstat`分析具体进程:
bash
top -c # 显示完整命令行
pidstat -u 1 # 每秒刷新CPU使用率
4. DNS解析过程及常见问题排查
解析流程:本地缓存→Hosts文件→递归查询DNS服务器→根域名服务器→顶级域→权威DNS。
排查工具:
bash
nslookup example.com # 检查解析结果
dig example.com +trace # 跟踪递归过程
systemctl restart systemd-resolved # Linux清除DNS缓存
5. OSPF邻居无法建立的原因?
关键检查点:
- 接口IP是否在同一网段
- Hello/Dead计时器是否匹配
- MTU是否一致
- ACL是否阻塞OSPF组播(224.0.0.5/6)
调试命令:
bash
show ip ospf neighbor # 查看邻居状态
debug ip ospf events # 开启OSPF事件调试
6. VLAN间互访不通的排查步骤
- 确认设备端口VLAN划分正确
- 检查三层交换机SVI接口配置
- 验证IP路由功能是否启用
- 检查ACL是否阻断流量
命令示例:
bash
show vlan brief # 查看VLAN划分
show ip route # 检查路由表
7. Docker与传统虚拟机的区别
| 维度 | Docker| 虚拟机|
|----------------|--------------------------------|--------------------------|
| 启动速度 | 秒级| 分钟级 |
| 资源占用 | 共享内核,轻量级| 独立操作系统,资源消耗大 |
| 隔离性| 进程级隔离| 系统级隔离|
| 安全性| 较弱(容器root与宿主机root同权)| 较强|
8. Kubernetes中Pod的常见调度方式
- 节点选择器:通过`nodeSelector`指定标签
- 亲和性调度:`nodeAffinity`/`podAffinity`实现复杂规则
- 污点与容忍度:`taints`/`tolerations`控制Pod分配
示例配置:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: disktype
operator: In
values: ["ssd"]
9. 如何实现K8s集群高可用?
- 控制平面高可用:多Master节点+etcd集群
- 数据平面高可用:DaemonSet部署节点监控,Pod通过`replicas`保证副本数
- 存储高可用:使用StorageClass动态配置持久化存储
10. 如何审计Linux系统操作?
- Auditd:配置规则监控文件访问、命令执行:
# 添加规则:监控/etc/passwd修改
echo "-w /etc/passwd -p wa -k passwd_changes" >> /etc/audit/rules.d/audit.rules
- Sysmon(Windows)或OSSEC(跨平台)作为替代方案。
---
11. Kubernetes中如何实现服务发现?
- Service资源:通过ClusterIP、NodePort或LoadBalancer暴露服务。
- DNS解析:Kube-DNS或CoreDNS为Pod提供域名解析(如`<service-name>.<namespace>.svc.cluster.local`)。
- Ingress:通过Nginx/Traefik等Ingress Controller实现七层路由。
12. Pod的QoS类别有哪些?如何划分?
- Guaranteed:CPU/Memory请求=限制(优先级最高)。
- Burstable:请求<限制(可弹性伸缩)。
- BestEffort:未指定资源限制(优先级最低,易被驱逐)。
13. 如何排查Kubernetes Pod启动失败?
- 查看事件:`kubectl describe pod <pod-name>`。
- 检查日志:`kubectl logs <pod-name> --previous`(查看崩溃前日志)。
- 验证资源:检查CPU/Memory限制是否足够。
---
14. Ansible的Playbook执行流程是什么?
- Gather Facts:收集目标主机信息(如IP、OS版本)。
- Task执行:按顺序执行Playbook中定义的Task(如安装包、启动服务)。
- Handlers触发:当Task修改配置时,通知Handlers执行重启等操作。
未经 qmjianli.com 同意,不得转载或采集本站的文章。