🔥 2026年最全DevOps面试题整理(建议收藏)
工欲善其事,必先利其器。这份面试题涵盖DevOps核心知识点,助你拿下理想Offer!
📋 目录
- DevOps基础概念
- Linux基础
- Shell脚本
- Git版本控制
- CI/CD持续集成
- Docker容器
- Kubernetes容器编排
- 配置管理Ansible
- 监控与日志
- 云服务与Terraform
1️⃣ DevOps基础概念
Q1: 什么是DevOps?核心理念是什么?
DevOps = Development + Operations,是一种强调协作、自动化、持续交付的软件开发方法论。
核心理念(CALMS模型):
- Culture - 文化:打破开发与运维之间的壁垒
- Automation - 自动化:自动化一切可自动化的流程
- Lean - 精益:消除浪费,优化流程
- Measurement - 度量:数据驱动决策
- Sharing - 分享:知识共享与持续反馈
Q2: 什么是CI/CD?
CI (持续集成):频繁将代码合并到主干,每次合并自动执行构建和测试。
CD (持续交付/部署):
- 持续交付:代码随时可部署,但需要手动审批
- 持续部署:代码自动部署到生产环境,无需人工干预
Q3: 蓝绿部署 vs 金丝雀发布
蓝绿部署:维护两套环境,通过负载均衡器切换流量,回滚快但成本高。
金丝雀发布:先将小部分流量切到新版本,逐步增加,风险可控。
2️⃣ Linux基础
Q4: 查看系统资源
# CPU和内存
top / htop
free -h
lscpu
# 磁盘
df -h
du -sh *
# 网络
netstat -tulnp
ss -tulnp
Q5: 进程管理
# 查看进程
ps aux
ps -ef
pstree
# 终止进程
kill PID
kill -9 PID
pkill 进程名
# 服务管理
systemctl start/stop/restart/status 服务名
Q6: 文件权限
# 权限格式: rwxrwxrwx (所有者/组/其他)
# r=4, w=2, x=1
chmod 755 file.sh # rwxr-xr-x
chmod 644 file.txt # rw-r--r--
chmod +x script.sh # 添加执行权限
chown user:group file
3️⃣ Shell脚本
Q7: 变量和条件判断
#!/bin/bash
# 变量
NAME="DevOps"
echo $NAME
# 条件判断
if [ $a -eq $b ]; then
echo "相等"
elif [ $a -gt $b ]; then
echo "a大于b"
else
echo "a小于b"
fi
# 文件判断
if [ -f /path/to/file ]; then
echo "文件存在"
fi
Q8: 循环语句
# for循环
for i in 1 2 3 4 5; do
echo "Number: $i"
done
for file in *.txt; do
echo "Processing: $file"
done
# while循环
counter=0
while [ $counter -lt 5 ]; do
echo "Counter: $counter"
counter=$((counter + 1))
done
4️⃣ Git版本控制
Q9: Git基本操作
# 初始化和克隆
git init
git clone [url]
# 基本操作
git add [file]
git commit -m "message"
git push origin main
git pull
# 分支管理
git branch # 查看分支
git branch [name] # 创建分支
git checkout [name] # 切换分支
git checkout -b [name] # 创建并切换
git merge [branch] # 合并分支
Q10: Git撤销操作
# 撤销工作区修改
git checkout -- [file]
git restore [file]
# 撤销暂存区
git reset HEAD [file]
# 回退版本
git reset --soft HEAD~1 # 软回退,保留修改
git reset --hard HEAD~1 # 硬回退,丢弃修改
# 撤销已推送的提交
git revert [commit_hash]
5️⃣ CI/CD
Q11: GitHub Actions示例
name: CI/CD Pipeline
on:
push:
branches: [main]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: '20'
- run: npm ci
- run: npm test
- run: npm run build
Q12: Jenkins Pipeline示例
pipeline {
agent any
stages {
stage('Build') {
steps {
sh 'mvn clean package'
}
}
stage('Test') {
steps {
sh 'mvn test'
}
}
stage('Deploy') {
steps {
sh 'kubectl apply -f k8s/'
}
}
}
}
6️⃣ Docker容器
Q13: Docker常用命令
# 镜像操作
docker images
docker pull nginx:latest
docker rmi nginx:latest
docker build -t myapp:v1 .
# 容器操作
docker ps # 运行中的容器
docker ps -a # 所有容器
docker run -d -p 80:80 nginx
docker stop/start/restart [容器]
docker rm [容器]
docker logs -f [容器]
docker exec -it [容器] bash
Q14: Dockerfile最佳实践
# 多阶段构建
FROM node:20-alpine AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
RUN npm run build
FROM node:20-alpine
WORKDIR /app
COPY --from=builder /app/dist ./dist
COPY --from=builder /app/node_modules ./node_modules
EXPOSE 3000
CMD ["node", "dist/main.js"]
7️⃣ Kubernetes
Q15: K8s核心概念
- Pod:最小部署单元,包含一个或多个容器
- Deployment:管理Pod副本数量,支持滚动更新
- Service:为Pod提供稳定的网络访问入口
- ConfigMap/Secret:存储配置和敏感信息
- Namespace:资源隔离
Q16: kubectl常用命令
# 查看资源
kubectl get pods/services/deployments
kubectl get pods -o wide
kubectl describe pod [name]
# 应用配置
kubectl apply -f deployment.yaml
kubectl delete -f deployment.yaml
# 调试
kubectl logs -f [pod]
kubectl exec -it [pod] -- /bin/sh
# 扩缩容
kubectl scale deployment [name] --replicas=3
8️⃣ Ansible配置管理
Q17: Ansible Playbook示例
---
- name: 配置Web服务器
hosts: webservers
become: yes
tasks:
- name: 安装Nginx
apt:
name: nginx
state: present
- name: 启动Nginx
service:
name: nginx
state: started
enabled: yes
- name: 复制配置文件
template:
src: nginx.conf.j2
dest: /etc/nginx/nginx.conf
notify: 重启Nginx
handlers:
- name: 重启Nginx
service:
name: nginx
state: restarted
9️⃣ 监控与日志
Q18: Prometheus告警规则
groups:
- name: 基础告警
rules:
- alert: 高CPU使用率
expr: 100 - (avg(rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100) > 80
for: 5m
labels:
severity: warning
annotations:
summary: "CPU使用率超过80%"
- alert: 磁盘空间不足
expr: (node_filesystem_avail_bytes / node_filesystem_size_bytes) * 100 < 10
for: 5m
labels:
severity: critical
🔟 Terraform
Q19: Terraform基础
# 工作流程
terraform init # 初始化
terraform plan # 预览
terraform apply # 执行
terraform destroy # 销毁
Q20: Terraform配置示例
provider "aws" {
region = "ap-northeast-1"
}
resource "aws_instance" "web" {
ami = "ami-xxx"
instance_type = "t2.micro"
tags = {
Name = "web-server"
}
}
output "public_ip" {
value = aws_instance.web.public_ip
}
🎯 总结
DevOps面试核心知识点:
- 基础:Linux、Shell、Git
- CI/CD:Jenkins、GitHub Actions、GitLab CI
- 容器:Docker、Kubernetes
- IaC:Terraform、Ansible
- 监控:Prometheus、Grafana、ELK
💡 建议收藏本文,面试前快速复习!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。






