我要提问
DEVOPS TRACK

服务器运维

从 Linux 基础到容器化、CI/CD 与可观测性体系,打通部署、监控与自动化运维全流程。

TROUBLESHOOTING FAQ

运维 高频排障问答

线上最常踩的坑,照着步骤就能定位并解决。

Docker 镜像体积过大如何优化?+
用多阶段构建把编译产物与运行环境分离,选择 alpine/distroless 基础镜像,配合 .dockerignore 排除无关文件,合并 RUN 层并清理包管理缓存,通常可把镜像从 1GB 压到 100MB 以内。
K8s Pod 频繁 CrashLoopBackOff 怎么排查?+
先 kubectl describe pod 看 Events,再 kubectl logs --previous 看上次崩溃前的日志。常见原因:容器启动命令错误、存活探针过严、依赖服务未就绪、资源 limits 过小导致 OOMKilled。
CI/CD 流水线如何设计回滚机制?+
保留最近 N 个可部署版本镜像,发布时打 Git commit 与镜像 tag 的映射;回滚时切换 Deployment 的镜像 tag 即可。蓝绿/金丝雀发布可进一步降低回滚成本,配合自动化健康检查门禁。
Nginx 502 / 504 网关错误如何定位?+
502 多为后端进程崩溃或拒绝连接,检查 upstream 服务存活与端口;504 多为后端响应超时,排查慢查询、外部依赖与 worker 超时配置。结合 access.log 的 request_time 与 upstream_response_time 定位瓶颈。
Linux 服务器 CPU 飙高如何排查进程?+
用 top 按 P 排序找高 CPU 进程,再 top -Hp PID 定位线程,printf "%x\n" 转十六进制后用 perf top 或 jstack/pystack 抓栈,定位热点方法。结合 pidstat、sar 看历史趋势。
容器化后日志收集怎么做最省心?+
应用日志统一输出到 stdout/stderr,用 DaemonSet 方式部署 Filebeat/Promtail 采集节点日志,发送到 ELK 或 Loki。避免在容器内写本地文件,便于水平扩展与故障排查。
DEPLOY PIPELINE

从代码到上线的 四步流水线

一条可复用的 GitOps 风格发布流水线,每步都有产物与门禁。

01

代码提交

Git push 触发 Webhook,CI 拉取代码并执行 lint、单元测试与安全扫描。

02

CI 构建

多阶段构建镜像并推送至镜像仓库,产物打 Git commit tag 保证可追溯。

03

容器化部署

ArgoCD 监听配置仓库变更,自动同步到 K8s 集群,滚动更新 Release。

04

监控门禁

健康检查通过后纳入负载,Prometheus 监控指标异常自动触发回滚。

SELECTED ARTICLES

运维精选 深度文章

覆盖容器、发布、监控与网关,照着做就能落地。