饮墨

子安饮墨馀三斗,留与卿儿作赋来

4 步用 Trivy 构建容器镜像安全扫描流水线,CI/CD 中拦截 90% 已知漏洞

痛点:镜像上线了才发现有高危漏洞

你一定遇到过这种场景:业务镜像推到生产环境后,安全团队扫出一堆 CVE,紧急回滚、重新构建、再上线,一来一回半天没了。

问题根源很清楚——安全扫描没有左移到 CI/CD 流水线中。大多数团队的镜像构建流程是 docker build → push → deploy,中间完全没有漏洞检测环节。等到运行时才扫描,成本和风险都是最高的。

方案:Trivy + CI/CD = 自动化镜像安全门禁

Trivy 是 Aqua Security 开源的全能安全扫描器,当前最新版本 v0.69.x。它支持容器镜像、文件系统、Git 仓库、Kubernetes 集群等多种...

Read more

Redis 高可用选型实战:Sentinel vs Cluster,3 个场景帮你做决定

Redis 挂了,缓存雪崩、Session 丢失、排行榜空白——这不是假设,是每个用 Redis 的团队迟早会遇到的事。单节点 Redis 是单点故障的代名词。问题是:上高可用该选 Sentinel 还是 Cluster?本文从真实业务场景出发,给你一套可落地的选型方案。


痛点:单节点 Redis 的三大致命风险

  1. 进程崩溃 = 服务不可用:Redis 是单线程模型,一旦 OOM 被 kill 或者主机宕机,所有依赖 Redis 的服务瞬间瘫痪。
  2. 数据丢失:即使开了 RDB/AOF 持久化,故障恢复期间仍有数据窗口丢失,且恢复耗时不可控。
  3. 容量天花板:单节点内存上限受物理机限制,当...

Read more

Terraform 状态管理 5 大踩坑与最佳实践:团队协作不翻车

痛点:State 文件一乱,基础设施全崩

用 Terraform 管理云资源的团队,迟早会在 State 文件上栽跟头。典型场景:

  • 两个工程师同时 terraform apply,State 被覆盖,资源漂移
  • State 文件提交到 Git,敏感信息(数据库密码、Access Key)泄漏
  • 误删 State 文件后 terraform plan 显示要重建全部资源,直接吓出冷汗
  • 多环境(dev/staging/prod)State 混用,一次 apply 把生产打了

State 是 Terraform 的核心——它记录了"真实世界的资源"和"代码声明"之间的映射关系。State 管理...

Read more

eBPF 正在重塑 Kubernetes 可观测性:从内核追踪到零侵入监控实战

传统 Kubernetes 监控靠 Sidecar 注入、应用埋点、日志采集三板斧。但 Sidecar 吃资源、埋点改代码、日志延迟高——能不能不改一行应用代码,直接从内核层拿到网络延迟、系统调用、DNS 解析全链路数据?eBPF 给出了答案。


痛点:K8s 可观测性的三个老大难

  1. Sidecar 资源开销大——Istio Envoy sidecar 每个 Pod 占 50-100MB 内存,千级 Pod 集群光 sidecar 就吃掉几十 GB
  2. 应用埋点侵入性强——接入 OpenTelemetry SDK 要改代码、重新构建镜像,老系统改不动
  3. 网络层问题难定位——Pod 之间延迟...

Read more

4 种主流 AI Agent 架构模式详解:从 ReAct 到 Multi-Agent,附可运行代码

2026 年,AI Agent 已经不是概念了——它在生产环境里跑着自动化运维、客服、数据分析。但很多团队一上来就 "调 API + 写 Prompt",没想清楚架构,结果上线后翻车:幻觉失控、循环调用烧 Token、多步任务半路断掉。本文拆解 4 种经过验证的 Agent 架构模式,每种都给出 Python 可运行示例。


痛点:为什么 "裸调 LLM" 撑不住复杂任务

直接用 LLM 做 Agent 最大的问题:

  1. 单次推理无规划——让模型 "先想后做" 全靠 Prompt 祈祷
  2. 工具调用失控——没有循环终止条件,Token 费用爆炸
  3. 多步骤状态丢失——上下文窗口不够时,前面的中...

Read more

用 ELK 定位慢查询:从日志采集到 3 秒内找到问题 SQL

线上数据库突然变慢,DBA 在几百 GB 日志里翻了两小时才找到根因。这篇文章用 ELK 堆栈把"人肉翻日志"变成"3 秒定位"。


痛点:日志里有答案,但你找不到

一个真实场景:某电商平台大促前夜,MySQL 响应时间从 50ms 飙到 3s。运维看监控只知道"数据库慢了",但具体是哪条 SQL、哪个表、什么时间开始的?答案藏在 slow query log 里——一个 80GB 的纯文本文件。

grep 翻? 太慢。用 pt-query-digest 汇总?只有统计没有时间线。真正需要的是:实时采集、结构化解析、秒级检索、可视化趋势

这就是 ELK(Elasticsearc...

Read more

6 步用 GitHub Actions 搭建生产级 CI/CD 流水线,附 3 个常踩的坑

还在手动 SSH 上服务器拉代码、重启服务?GitHub Actions 免费额度就够中小团队用了。本文从真实项目出发,手把手搭建一条从代码推送到自动部署的完整流水线。


痛点:手动部署的代价

运维老哥都经历过这种场景:开发喊一声"代码合了",你 SSH 上去 git pulldocker builddocker-compose up -d,顺便祈祷别忘了跑数据库迁移。

问题不在于操作本身,而是——

  • 人会忘事:漏跑 migration、忘记清缓存、配置没同步
  • 无法审计:谁在什么时间部署了什么版本?翻 history 猜吧
  • 回滚靠运气:上个版本的镜像还在不在?Tag 打了没?
...

Read more

4 个 Kubernetes Pod 调度失败的常见原因与排错实战

你的 Pod 一直卡在 Pending?kubectl describe 里满屏 FailedScheduling 事件?别慌——80% 的调度问题集中在这 4 个原因上。本文带你从现象到排查一条龙搞定。

痛点:Pod Pending 半小时,业务干等

某次线上扩容,Deployment 副本数从 3 扩到 10,结果 7 个新 Pod 全部 Pending。kubectl get pods 看到一片黄色,运维群开始 @ 你了。

真实场景:团队在 AWS EKS 上跑 Java 微服务,Node 规格 m5.xlarge(4C/16G),每个 Pod request 2C/4G。扩容前 ...

Read more

用 Python 从零构建 AI Agent:Tool Use 模式实战详解

大模型不只是聊天机器人。通过 Tool Use(工具调用)模式,Python 几十行代码就能让 LLM 变成一个能查天气、读数据库、调 API 的真正 Agent。本文从原理到完整代码,带你搞懂这个 2026 年最重要的 AI 编程范式。


为什么 Tool Use 是 AI Agent 的核心

你可能已经用过 ChatGPT 的联网搜索、代码执行、文件分析——这些功能背后都是同一个模式:Tool Use(也叫 Function Calling)。

原理很简单:

  1. 你告诉 LLM:「这里有一些工具,每个工具的名字、参数、用途如下」
  2. LLM 分析用户请求,决定是否需要调用工具
  3. 如果需要...

Read more

3 层加固 SSH 安全:从暴力破解到零信任,运维人必做的 6 件事

痛点:你的 SSH 端口正在被扫描

打开任何一台云服务器的 /var/log/auth.log,你大概率会看到这样的记录:

Apr 18 03:14:22 web01 sshd[12847]: Failed password for root from 185.234.xx.xx port 44832 ssh2
Apr 18 03:14:25 web01 sshd[12849]: Failed password for admin from 185.234.xx.xx port 44836 ssh2
Apr 18 03:14:28 web01 sshd[12851]: Invalid u...

Read more