运维技术栈知识点清单,覆盖 Linux + Docker + Kubernetes + Jenkins / GitLab CI,按模块分层,便于查漏补缺和做学习/复习路线图。
一、Linux 基础与系统运维
1. 系统基础
-
Linux 发行版:CentOS / Rocky / Alma / Ubuntu / Debian
-
目录结构:
/etc、/var、/usr、/proc、/sys、/dev -
运行级别: systemd
/target -
常用命令速查:
ls/ ``cd/pwd/ ``cp/ ``mv/ ``rm/ ``mkdir/ ``touch -
查看文件:
cat / less / more / head / tail / grep -
软硬链接:
ln -
压缩解压:
tar / gzip / zip / unzip
2. 文本处理三剑客
-
grep:正则匹配、递归查找 -
sed:流式编辑(替换、删除、插入) -
awk:字段处理、统计、报表
3. 用户与权限
-
用户 / 组管理:
useradd、usermod、passwd、groupadd、id、sudo -
权限模型:rwx、
chmod(数字 & 符号)、chown、chgrp、umask -
sudo 配置:
/etc/sudoers、visudo -
特殊权限:SUID / SGID / Sticky Bit
-
ACL:
setfacl、getfacl -
文件权限模型(rwx、SUID/SGID/sticky)
-
SELinux 基础(enforcing / permissive / disabled)
4. 进程与服务管理
-
进程查看:
ps、top、htop、pidstat、pidof -
信号管理:
kill、pkill、killall -
systemd:
systemctl、journalctl、unit 文件编写 -
后台运行:
nohup、&、screen、tmux、jobs、 fg、 bg
5. 软件包与仓库
-
RPM 系:
yum、dnf、rpm -
DEB 系:
apt、dpkg -
源码编译:
./configure && make && make install -
私有仓库(了解)
6. 文件系统与磁盘
-
文件系统类型:ext4、xfs
-
分区与挂载:
fdisk、parted、mount、/etc/fstab -
LVM:PV / VG / LV
-
inode / 软硬链接 / 文件句柄
-
磁盘监控:
df、du、iostat
7. 网络管理
-
网络配置:
ip、ifconfig、nmcli -
DNS:
/etc/resolv.conf、nslookup、dig -
端口与服务:ss -lntp、
netstat、lsof -
防火墙:
iptables(表/链/规则)、firewalld(zone / service / port)、ufw -
路由:
route、ip route -
抓包:
tcpdump、wireshark(基础)
8. 日志与排错
-
日志位置:
/var/log/messages、/var/log/syslog、journalctl -
日志轮转:
logrotate -
常见故障排查流程:网络 → 服务 → 资源 → 日志
9. 性能监控与调优
-
CPU:
top、mpstat、uptime、load average、sar -
内存:
free、vmstat、sar -
IO:
iostat、iotop -
网络:
netstat / ss -
综合:
sar、dstat、nmon -
基础调优:swappiness、文件句柄数(
ulimit)
10. 安全基础
-
SSH:密钥登录、禁用 root、改端口
-
sudo 精细化授权
-
防火墙策略
-
基础审计:
last、who、history -
常见攻击防范:暴力破解、DDoS(概念)
11. 系统服务与启动管理
-
SysVinit:
service / chkconfig -
systemd:
-
systemctl start|stop|enable|status -
Unit 文件结构(
/etc/systemd/system) -
日志:
journalctl
-
12. Shell 脚本编程
-
变量、数组、环境变量
-
条件判断:
if / case -
循环:
for / while / until -
函数
-
常用特殊变量:
$0 $1 $# $? $$ -
调试:
set -x / -e -
实战脚本:备份、日志切割、监控告警
二、Docker 容器技术
1. Docker 基础
-
Docker 架构:Client / Daemon / Image / Container / Registry
-
核心概念:镜像(Image)、容器(Container)、仓库(Registry)、Dockerfile、Volume、Network
-
安装与配置:
docker-ce、镜像加速、daemon.json -
Docker vs 虚拟机
2. Docker 安装与配置
-
安装方式(yum / apt / 官方脚本)
-
镜像加速(
/etc/docker/daemon.json) -
存储驱动(overlay2)
-
cgroup / namespace 基础认知
3. Docker 镜像
-
镜像分层原理
-
Dockerfile 指令:
-
FROM、RUN、CMD、ENTRYPOINT -
COPY、ADD -
ENV、ARG -
EXPOSE、WORKDIR、USER -
HEALTHCHECK、LABEL
-
-
多阶段构建(Multi-stage build)
-
.dockerignore -
镜像优化:合并 RUN、清理缓存、选择 slim/alpine
4. Docker 镜像管理
-
镜像操作:
pull / push / build / tag / rmi -
镜像分层与 UnionFS
-
镜像优化:
-
减少层数
-
多阶段构建(multi-stage build)
-
精简基础镜像(alpine / distroless)
-
5. Dockerfile 编写
-
常用指令:
-
FROM / RUN / CMD / ENTRYPOINT -
COPY / ADD -
ENV / ARG -
WORKDIR / EXPOSE -
USER / HEALTHCHECK
-
-
CMD vs ENTRYPOINT 区别
-
build cache 机制
6. Docker 容器生命周期管理
-
生命周期:
run、start、stop、restart、rm -
前台 / 后台运行:
-d、-it -
查看:
ps、logs、inspect、stats -
进入容器:
exec、attach -
资源限制:
-m、--cpus、--memory-swap -
docker run(端口映射、卷挂载、环境变量)
-
docker ps / logs / exec / stop / start / rm
-
容器状态:created / running / exited / paused
-
前台 vs 后台运行(-d)
7. Docker 存储,数据持久化
-
Volume:
volume create、mount,docker volume create / ls / inspect -
Bind Mount:
-v /host:/container -
tmpfs mount
-
volume 驱动(了解)Volume 生命周期与清理
8. Docker 网络管理
-
网络模式:bridge(默认)、host、none、container
-
自定义 bridge 网络
-
端口映射:-p / -P
-
DNS、link(旧)、network connect、容器间通信
-
overlay 网络(为 K8s 铺垫)
9. Docker Compose
-
docker-compose.yml结构语法 -
常用字段:
version、services、image、build、ports、volumes、networks、environment、depends_on -
常用命令:
up、down、ps、logs、exec -
多环境配置:
docker-compose.override.yml -
多容器应用编排示例(Web + DB)
10. 私有仓库
-
Docker Hub
-
Harbor(重点,企业常用)
-
镜像推送 / 拉取、权限控制
11. Docker 安全与运维
-
非 root 用户运行容器
-
镜像漏洞扫描(Trivy / Clair,了解)
-
资源限制防止单容器拖垮主机
-
Docker daemon 加固
12. Docker 原理与进阶
-
Namespace:PID / NET / MNT / UTS / IPC / USER
-
Cgroups:CPU / memory / blkio
-
rootfs / 联合挂载
-
容器逃逸风险与防护
三、Kubernetes(K8s)
1. K8s 架构与核心概念
-
集群角色:Master(Control Plane) / Worker Node
-
核心组件:
-
API Server
-
etcd
-
Controller Manager
-
Scheduler
-
Kubelet
-
kube-proxy
-
CoreDNS
-
-
核心对象:Pod、Deployment、Service、ConfigMap、Secret、Namespace、Ingress、PVC / PV
-
Pod 是最小调度单元
2. 核心工作负载资源
Pod
-
Pod 定义与 YAML
-
Pod 本质:最小调度单元
-
单容器 / 多容器 Pod(sidecar / initContainer)
-
容器共享网络 / 存储
-
生命周期:Pending / Running / Succeeded / Failed / CrashLoopBackOff
-
重启策略:
Always / OnFailure / Never -
健康检查:livenessProbe / readinessProbe / startupProbe
-
探针:
livenessProbe、readinessProbe、startupProbe -
资源定义:
requests/limits -
污点 & 容忍(Taint / Toleration)
Controller 控制器
-
Deployment:无状态应用、滚动更新、回滚,滚动更新、回滚、扩缩容
-
ReplicaSet:副本管理
-
StatefulSet:有状态应用(稳定网络标识、持久存储,MySQL、ES 等)
-
DaemonSet:节点级守护进程
-
Job / CronJob:批处理任务
3. 集群部署方式(了解即可)
-
kubeadm(最常用)
-
二进制部署(难,偏底层)
-
云厂商托管:EKS / GKE / ACK / TKE
4. Service 与网络
-
Service 类型:ClusterIP、NodePort、LoadBalancer、ExternalName
-
Endpoints / EndpointSlice
-
kube-proxy 模式:iptables / ipvs
-
Ingress / Ingress Controller(Nginx / Traefik)
-
DNS:CoreDNS 原理与使用、Service 域名解析
-
NetworkPolicy:网络隔离(类似防火墙)
5. 存储
-
Volume 类型:emptyDir、hostPath
-
PV / PVC / StorageClass
-
StorageClass 动态供给(Dynamic Provisioning)
-
CSI(概念即可)
-
ConfigMap / Secret 作为卷挂载
6. 配置与密钥
-
ConfigMap:配置分离
-
Secret:Base64、Opaque / docker-registry、密码、Token、TLS 证书
-
Downward API
-
热更新限制(需要 reload 机制配合)
7. 调度与亲和性
-
nodeSelector
-
nodeAffinity / podAffinity / podAntiAffinity
-
Taint / Toleration
-
优先级与抢占(PriorityClass)(了解)
-
资源请求与限制:
requests / limits
- QoS 等级:Guaranteed / Burstable / BestEffort
8. 发布与升级策略
-
滚动更新(RollingUpdate)
-
蓝绿部署
-
金丝雀发布(Canary)
-
回滚:
kubectl rollout undo -
灰度发布配合 Ingress / Service Mesh
9. 高可用与自愈
-
Pod 自动重启
-
Deployment 滚动升级策略
-
PodDisruptionBudget(PDB)
-
HPA(Horizontal Pod Autoscaler)
-
VPA(了解)
10. K8s 运维工具
-
kubectl:常用命令全集(
get、describe、logs、exec、apply、delete、rollout) -
YAML 编写与校验
-
Helm:
-
Chart 结构
-
helm install/upgrade/rollback/uninstall -
values.yaml
-
私有 Helm 仓库
-
-
集群部署工具:kubeadm、kind、minikube、k3s(轻量)
11. K8s 运维与排错
-
日志查看:
kubectl logs、kubectl describe -
事件查看:
kubectl get events -
常见问题:ImagePullBackOff、CrashLoopBackOff、OOMKill
-
etcd 备份与恢复(概念 + 命令)
-
集群升级流程(kubeadm 为例)
-
kubectl 常用命令:
-
get / describe / logs / exec / port-forward -
apply / delete
-
-
集群状态:
kubectl get cs -
节点维护:
cordon / drain / uncordon -
Pod 异常状态排查(ImagePullBackOff / CrashLoopBackOff / Pending)
12. K8s 安全与权限
-
RBAC:Role / ClusterRole / RoleBinding / ClusterRoleBinding
-
ServiceAccount
-
PodSecurityPolicy(旧)/ Pod Security Admission(新)
-
NetworkPolicy实战
-
Secrets 管理(Vault 可了解)
13. 可观测性
-
Metrics:metrics-server / kubectl top
-
日志:
-
容器日志路径
-
EFK / Loki 架构概念
-
-
监控:
-
Prometheus + Grafana 核心概念
-
ServiceMonitor / PodMonitor
-
-
链路追踪(OpenTelemetry 概念)
14. 高级与生态
-
Operator 模式
-
CRD(CustomResourceDefinition)
-
CNI 插件:Calico / Flannel / Cilium
-
CSI 插件
-
GitOps:Argo CD / Flux
-
Service Mesh:Istio(流量治理、安全、观测)
15. Helm 包管理
-
Helm 架构:Chart / Release / Repository
-
Chart 目录结构
-
helm install / upgrade / rollback / uninstall -
values.yaml模板渲染 -
Helm Hook
四、CI/CD:Jenkins
1. Jenkins 基础
-
架构:Master / Agent(Node)
-
安装方式:war、Docker、k8s 部署
-
插件体系:推荐插件、离线安装
-
用户与权限:Role-based Authorization Strategy
2. Job 类型
-
Freestyle Project
-
Pipeline Project(重点)
-
Multibranch Pipeline
-
Folder / View 组织项目
3. Jenkins Pipeline
-
Jenkinsfile(Declarative / Scripted)
-
基本结构:
pipeline { agent { ... } stages { ... } post { ... } } -
stage / step
-
环境变量:
environment {}、withEnv -
参数化构建:
parameters {} -
凭证管理:
credentials()、withCredentials -
触发方式:SCM 轮询、Webhook、定时(
cron)
4. 流水线实战环节
-
拉取代码(Git / GitLab)
-
代码编译(Maven / Gradle / npm)
-
单元测试 & 覆盖率
-
静态代码扫描(SonarQube,了解)
-
Docker 镜像构建 & 推送
-
部署到 K8s(kubectl / helm)
-
通知:Email、钉钉、企业微信
5. Jenkins 与 K8s
-
Jenkins Agent on K8s(Pod Template)
-
动态 Agent(按需创建)
-
在容器中执行流水线步骤
-
常见坑:权限、kubeconfig、镜像拉取
6. Jenkins 运维
-
备份:
JENKINS_HOME -
日志排查
-
插件管理、版本升级
-
性能调优:并发数、内存、Agent 规划
五、CI/CD:GitLab CI
1. GitLab CI 基础
-
核心概念:Pipeline / Stage / Job
-
.gitlab-ci.yml -
GitLab Runner:
-
安装与注册
-
Executor 类型:shell、docker、kubernetes
-
-
Runner 标签(tags)
2. .gitlab-ci.yml 详解
-
stages、job定义 -
script、before_script、after_script -
variables、extends、include、rules -
only/except(旧)、rules(新) -
cache、artifacts -
needs:DAG 流水线 -
when:on_success / on_failure / always / manual
3. 常见 CI 场景
-
代码检出
-
编译构建
-
单元测试
-
Docker 镜像构建 & 推送到 Harbor
-
部署到 K8s(kubectl / helm)
-
环境区分:dev / test / prod(变量 + rules)
4. GitLab CI + Docker + K8s
-
Docker-in-Docker(dind)
-
Kaniko(更安全,推荐了解)
-
K8s Executor 原理
-
Service 容器:
services: - docker:dind -
使用私有镜像仓库
5. GitLab CI 运维与安全
-
Runner 扩容与高可用
-
缓存优化(加快构建)
-
敏感信息管理:CI/CD Variables
-
权限控制:Protected Branches / Tags
-
Pipeline 成本与效率优化
六、DevOps 综合与实践
1. 基础设施即代码(IaC)
-
Terraform(云资源、K8s 集群,了解)
-
Ansible:批量部署、配置管理(强烈建议掌握)
2. 监控与告警
-
Prometheus + Grafana
-
Metrics:CPU、内存、Pod、容器
-
AlertManager
-
kube-state-metrics、node-exporter
3. 日志系统
-
EFK / ELK:Elasticsearch + Fluentd/Fluent Bit + Kibana
-
容器日志采集方案
-
Loki + Promtail + Grafana(云原生日志,推荐)
4. 微服务与中间件运维
-
Nginx / Ingress 配置
-
MySQL / Redis / MQ 在 K8s 中部署与运维
-
服务发现、配置中心(Consul / Nacos,了解)
5. 生产实践要点
-
蓝绿发布 / 金丝雀发布
-
灰度发布(Ingress + 权重)
-
回滚策略
-
灾备与高可用设计
-
CI/CD 流程规范(分支策略:Git Flow / Trunk Based)
七、面试高频考点(提炼)
-
Linux:CPU load、OOM、inode、软硬链接、权限、网络排查
-
Docker:镜像分层、Dockerfile 优化、volume vs bind mount
-
K8s:Pod 生命周期、探针、deployment 升级策略、HPA、Service 区别、Ingress、PV/PVC、RBAC
-
Jenkins:Pipeline 语法、Jenkinsfile、凭据、Agent 动态调度
-
GitLab CI:
.gitlab-ci.yml结构、cache vs artifacts、rules、K8s executor -
综合:CI/CD 全流程设计、K8s 排错思路、生产故障处理思路
30--60 天运维技术栈学习计划
30--60 天运维技术栈学习计划 ,覆盖 Linux → Docker → Kubernetes → Jenkins / GitLab CI。
可以按 30 天速成版 (每天 2--3h)或 60 天扎实版(每天 1.5--2h)来执行。
一、整体学习路线总览
主线逻辑:
Linux 打底 → Docker 容器化 → K8s 编排 → CI/CD 自动化 → 综合实战
| 阶段 | 时间 | 核心目标 |
|---|---|---|
| 入门 | 第 1--10 天 | Linux + Docker 基础,能独立跑容器 |
| 进阶 | 第 11--30 天 | K8s 核心 + Jenkins/GitLab CI,能搭完整流水线 |
| 精通 | 第 31--45 天 | K8s 高级特性 + 运维体系(监控/日志/安全) |
| 实战 | 第 46--60 天 | 企业级项目 + 面试复盘 |
二、入门阶段(第 1--10 天)
目标:能熟练用 Linux,能写 Dockerfile,能跑容器
第 1--3 天:Linux 基础
✅ 必会内容:
-
常用命令:
ls/cd/cp/mv/rm/ps/top/netstat/ss -
权限:
chmod/chown/sudo -
网络:
ip/ss/netstat/ping -
日志:
/var/log、journalctl -
编辑:
vim(至少会保存、退出、搜索)
📌 每日任务:
-
装一台 Rocky / Ubuntu VM
-
所有操作 只用命令行
-
完成 20 个常见故障模拟(文件删不掉、端口占用、服务起不来)
第 4--6 天:Linux 运维常用技能
✅ 必会内容:
-
systemd:
systemctl、journalctl -
磁盘:
df/du/fdisk/mount -
性能:
top/htop/vmstat/iostat -
网络排查:
telnet/nc/curl/tcpdump(基础)
📌 小目标:
-
手动部署一个 Nginx + MySQL
-
能通过日志定位启动失败原因
第 7--10 天:Docker 基础
✅ 必会内容:
-
镜像 / 容器 / 仓库概念
-
Dockerfile:
FROM/RUN/CMD/ENTRYPOINT/COPY/ADD -
常用命令:
run/exec/ps/logs/rmi/build -
Volume / bind mount
-
网络:bridge / host / port mapping
📌 实战任务:
-
写一个 Spring Boot / Python / Node 项目 Dockerfile
-
构建镜像并运行
-
用
docker-compose启动 Web + DB
✅ 阶段产出:
能用 Docker 跑一个前后端 + 数据库项目
三、进阶阶段(第 11--30 天)
目标:能独立搭建 K8s 集群 + 一条完整 CI/CD 流水线
第 11--15 天:K8s 核心概念
✅ 必会内容:
-
架构:Master / Node / etcd
-
Pod / Deployment / Service
-
YAML 编写
-
kubectl 常用命令
📌 实战:
-
用 kubeadm / kind / k3s 搭一个本地集群
-
部署一个 nginx deployment
-
暴露 service(ClusterIP / NodePort)
第 16--20 天:K8s 工作负载 & 网络
✅ 必会内容:
-
Pod 探针:liveness / readiness
-
Deployment 滚动更新 & 回滚
-
ConfigMap / Secret
-
Service / Ingress(Nginx)
📌 实战:
-
部署一个 Web 应用
-
通过 ConfigMap 注入配置
-
用 Ingress 暴露域名访问
第 21--23 天:Jenkins CI/CD
✅ 必会内容:
-
Jenkins 安装(Docker / 物理机)
-
Freestyle + Pipeline
-
Jenkinsfile(Declarative)
-
Git + Maven + Docker 构建
📌 实战:
- Jenkins 拉代码 → 构建 → 打镜像 → 推 Harbor
第 24--26 天:GitLab CI
✅ 必会内容:
-
GitLab Runner 安装与注册
-
.gitlab-ci.yml -
stages / jobs / cache / artifacts
-
Docker executor
📌 实战:
-
GitLab CI 构建 Docker 镜像
-
推送到私有仓库
第 27--30 天:K8s + CI/CD 打通
✅ 必会内容:
-
kubectl / helm 部署应用
-
CI 中执行 kubectl
-
简单回滚策略
📌 实战项目(非常重要):
Git push → CI 构建镜像 → 推送仓库 → K8s 自动部署
✅ 阶段产出:
拥有 一条完整的 DevOps 流水线
四、精通阶段(第 31--45 天)
目标:能解决生产问题,懂运维体系
第 31--33 天:K8s 高级调度
-
nodeSelector / affinity
-
taint / toleration
-
HPA / VPA(概念)
-
PodDisruptionBudget
第 34--36 天:K8s 存储 & 安全
-
PV / PVC / StorageClass
-
RBAC:Role / ClusterRole / Binding
-
ServiceAccount
-
NetworkPolicy
第 37--39 天:Helm
-
Chart 结构
-
values.yaml -
helm install/upgrade/rollback -
私有 Helm 仓库
第 40--42 天:监控 & 日志
-
Prometheus + Grafana
-
kube-state-metrics
-
EFK / Loki(选学 Loki,更轻量)
第 43--45 天:K8s 排错专项
-
Pod 常见错误:
-
ImagePullBackOff
-
CrashLoopBackOff
-
OOMKilled
-
-
Event / Describe / Logs
-
网络不通排查思路
✅ 阶段产出:
能独立定位和解决 80% 的常见 K8s 故障
五、实战阶段(第 46--60 天)
目标:企业级项目 + 面试级别
第 46--50 天:综合项目
做一个 完整 DevOps 平台示例:
-
GitLab 管理代码
-
Jenkins / GitLab CI 构建
-
Harbor 存镜像
-
K8s 部署
-
Ingress 暴露服务
-
Prometheus + Grafana 监控
📌 可选加分项:
-
Helm 管理应用
-
蓝绿 / 金丝雀发布
-
钉钉 / 企业微信通知
第 51--55 天:Ansible + 运维自动化
-
Playbook
-
Inventory
-
批量部署 K8s 节点
-
批量发布应用
第 56--60 天:面试冲刺
✅ 重点复习:
-
Linux 常见故障
-
Docker 镜像分层 & 优化
-
K8s Pod 生命周期
-
Deployment 升级策略
-
CI/CD 流程设计题
-
一次线上事故的处理思路
📌 输出:
-
自己的 运维知识脑图
-
一份 项目简历
-
10 个能讲清楚的实战案例
六、每日学习模板(通用)
早上(30min):
- 看文档 / 视频 / 官方文档
- 记笔记(强烈建议用 Markdown)
晚上(1.5--2h):
- 动手实验
- 故意制造错误并修复
- 写总结(发博客 / 笔记)
每周日:
- 复盘本周内容
- 重做一次最复杂的实验
七、工具与环境建议
| 类别 | 推荐 |
|---|---|
| 虚拟机 | VMware / VirtualBox |
| 操作系统 | Rocky 9 / Ubuntu 22.04 |
| K8s | k3s / kind(本地最快) |
| CI | Jenkins + GitLab |
| 笔记 | Obsidian / Typora / Notion |
| 画图 | draw.io(画架构图) |
八、给你 3 条关键建议(少走半年弯路)
-
不要只看书,一定要敲命令
-
每个 K8s YAML 都要自己手写一遍
-
CI/CD 一定要从"Git push"开始,到"浏览器访问"结束