运维技术栈Linux+docker+Kubernetes+Jenkins/GitLab CI 知识点详细列表
运维技术栈知识点清单,覆盖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、umasksudo 配置:
/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、killallsystemd:
systemctl、journalctl、unit 文件编写后台运行:
nohup、&、screen、tmux、jobs、 fg、 bg
5. 软件包与仓库
RPM 系:
yum、dnf、rpmDEB 系:
apt、dpkg源码编译:
./configure && make && make install私有仓库(了解)
6. 文件系统与磁盘
文件系统类型:ext4、xfs
分区与挂载:
fdisk、parted、mount、/etc/fstabLVM:PV / VG / LV
inode / 软硬链接 / 文件句柄
磁盘监控:
df、du、iostat
7. 网络管理
网络配置:
ip、ifconfig、nmcliDNS:
/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、sarIO:
iostat、iotop网络:
netstat / ss综合:
sar、dstat、nmon基础调优:swappiness、文件句柄数(
ulimit)
10. 安全基础
SSH:密钥登录、禁用 root、改端口
sudo 精细化授权
防火墙策略
基础审计:
last、who、history常见攻击防范:暴力破解、DDoS(概念)
11. 系统服务与启动管理
SysVinit:
service / chkconfigsystemd:
systemctl start|stop|enable|statusUnit 文件结构(
/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.jsonDocker vs 虚拟机
2. Docker 安装与配置
安装方式(yum / apt / 官方脚本)
镜像加速(
/etc/docker/daemon.json)存储驱动(overlay2)
cgroup / namespace 基础认知
3. Docker 镜像
镜像分层原理
Dockerfile 指令:
FROM、RUN、CMD、ENTRYPOINTCOPY、ADDENV、ARGEXPOSE、WORKDIR、USERHEALTHCHECK、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 / ENTRYPOINTCOPY / ADDENV / ARGWORKDIR / EXPOSEUSER / HEALTHCHECK
CMD vs ENTRYPOINT 区别
build cache 机制
6. Docker 容器生命周期管理
生命周期:
run、start、stop、restart、rm前台 / 后台运行:
-d、-it查看:
ps、logs、inspect、stats进入容器:
exec、attach资源限制:
-m、--cpus、--memory-swapdocker run(端口映射、卷挂载、环境变量)
docker ps / logs / exec / stop / start / rm
容器状态:created / running / exited / paused
前台 vs 后台运行(-d)
7. Docker 存储,数据持久化
Volume:
volume create、mount,docker volume create / ls / inspectBind Mount:
-v /host:/containertmpfs 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/uninstallvalues.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-forwardapply / delete
集群状态:
kubectl get cs节点维护:
cordon / drain / uncordonPod 异常状态排查(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 / uninstallvalues.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.ymlGitLab Runner:
安装与注册
Executor 类型:shell、docker、kubernetes
Runner 标签(tags)
2. .gitlab-ci.yml 详解
stages、job定义script、before_script、after_scriptvariables、extends、include、rulesonly/except(旧)、rules(新)cache、artifactsneeds: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/buildVolume / 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.ymlstages / 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.yamlhelm 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”开始,到“浏览器访问”结束