饮墨

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

用 Crossplane 在 Kubernetes 中管理云基础设施:3 步实现 IaC 从 Terraform 到 K8s 原生的演进

痛点:Terraform 好用,但和 Kubernetes 生态割裂

运维团队普遍面临一个尴尬局面:应用部署用 Kubernetes + GitOps(ArgoCD/Flux),基础设施管理用 Terraform + 独立 Pipeline。两套工具、两套工作流、两套状态管理,带来几个实际问题:

  1. 状态分裂 — Terraform state 在 S3/Consul 里,K8s 资源状态在 etcd 里,跨系统联动靠胶水脚本
  2. 权限模型不统一 — Terraform 需要云账号 AK/SK,K8s 用 RBAC,开发者自助申请资源要走两套审批
  3. 漂移检测各管各 — Terraform pla...

Read more

用 Steampipe 以 SQL 查询云资源与安全合规:运维人的瑞士军刀,5 分钟上手实操

痛点:云资源查询散落在各种 CLI 和 Console 里

运维日常离不开这些场景:

  • "哪些 EC2 实例没打特定标签?" — 要写 aws ec2 describe-instances 加一堆 --filtersjq
  • "跨 3 个账号找出所有公开的 S3 Bucket" — 每个账号切一遍 profile,脚本写半天
  • "安全审计要检查所有 Security Group 是否开放了 0.0.0.0/0" — 手动翻 Console 翻到崩溃

核心问题:云资源数据分散在不同 API、不同格式里,缺少统一查询层。AWS CLI 输出 JSON 嵌套很深,jq 写复杂过滤几乎不可读,...

Read more

从 Redis 迁移到 Valkey:3 步完成生产切换,零停机 + 完全兼容

痛点:Redis 许可证变了,你的基础设施还好吗?

2024 年 Redis 宣布从 BSD 切换到 RSALv2 + SSPLv1 双许可证。对运维团队的影响很直接:

  • 云厂商托管服务可能涨价或调整功能(AWS ElastiCache 已开始切换到 Valkey)
  • 自建 Redis 如果用在商业产品里,许可证合规性需要法务审查
  • 开源生态工具逐步从 Redis 切换到 Valkey 分支

Valkey 是 Linux Foundation 托管的 Redis 7.2 分支,由原 Redis 核心贡献者维护,API 100% 兼容。截至 2026 年,Valkey 8.x 已经是生产就绪...

Read more

用 ClickHouse 替代 ELK 做日志分析:存储降 80%、查询快 50 倍的实操方案

痛点:ELK 越用越贵,查询越来越慢

日志量上了 TB 级,ELK 的问题就暴露了:

  • 存储成本飙升:Elasticsearch 默认全文索引,100GB 原始日志存进去膨胀到 300GB+,SSD 费用月增几千块
  • 查询变慢:日志超过 7 天的历史查询动辄 30 秒,Kibana 转圈转到怀疑人生
  • 运维负担重:JVM 调优、分片再平衡、节点扩容,ES 集群自身的运维量不亚于业务系统
  • 资源浪费:大多数运维场景只需要 WHERE + GROUP BY + ORDER BY,根本用不到全文检索

如果你 90% 的日志查询是 "某时间段 + 某服务 + 关键字过滤 + 聚合统计",ClickH...

Read more

Dagger 实战:用代码定义 CI/CD Pipeline,彻底告别 YAML 地狱

痛点:YAML Pipeline 的运维噩梦

如果你维护过超过 10 个微服务的 CI/CD,一定经历过这些:

  • GitHub Actions / GitLab CI YAML 膨胀:几百行的 .github/workflows/ 文件,嵌套 if 条件、矩阵策略、重复的 step 定义,改一个参数要翻半天
  • 本地无法复现:Pipeline 只能在 CI 环境跑,本地调试靠猜,一次 push 等 10 分钟看结果
  • 跨项目复用困难:公共逻辑靠 copy-paste 或 composite action,版本管理混乱
  • 缓存玄学:CI 缓存命中率低,构建时间随项目增长线性膨胀

Dagger 的...

Read more

用 vCluster 实现 Kubernetes 多租户隔离:3 步搭建轻量虚拟集群

痛点

团队规模增长后,多个开发组共用一套 K8s 集群,资源冲突频发:A 组的 CRD 升级把 B 组搞挂、测试环境互相踩 Namespace、RBAC 配置复杂且容易漏权。传统方案要么拉多套物理集群(成本翻倍),要么靠 Namespace 级隔离(隔离不彻底,CRD/Webhook 级别无法隔离)。

vCluster 是 Loft Labs 开源的轻量级虚拟集群方案——在一个 Host 集群的 Namespace 里跑一个完整的 K8s Control Plane(API Server + etcd/SQLite),租户看到的是独立集群,但 Pod 实际调度在宿主集群节点上。资源开销极...

Read more

3步搭建生产级RAG管道:Python + ChromaDB + LLM实战

痛点

你用 LLM 做了个内部知识问答系统,Demo 跑得挺好,上线后用户反馈"回答经常胡说八道"。根本原因:LLM 没有你的私有数据,纯靠参数记忆回答,幻觉不可避免。

RAG(Retrieval-Augmented Generation)是当前最务实的解法——先检索相关文档片段,再喂给 LLM 生成答案。但从 Demo 到生产,坑不少:分块策略影响召回率、Embedding 模型选型决定语义精度、检索结果排序直接影响最终回答质量。

本文给出一套 Python 可直接落地的 RAG 管道方案,覆盖文档分块、向量存储、检索增强到 LLM 生成的全流程。

方案概览

技术栈选型:

...
组件

Read more

用 Caddy 替代 Nginx 做反向代理:自动 HTTPS、零证书管理,3 步上线实操

痛点

运维老手都知道 Nginx + Certbot 的经典组合:配反向代理、写 cron 续签证书、每次加站点就要改一堆配置。问题来了:

  1. 证书管理是负担 — certbot renew 偶尔失败、DNS 验证要额外配置、多域名续签容易漏
  2. 配置语法重 — 一个简单的反代要写 10+ 行,server_name / proxy_pass / proxy_set_header 一个不能少
  3. reload 有风险 — 配置写错一个分号,nginx -t 过了但上线后 502,线上排查浪费时间

Caddy 是一个用 Go 编写的现代 Web 服务器,核心卖点:自动 HTTPS(含证书申请 + ...

Read more

用 Tailscale 组建零配置跨云内网:替代传统 VPN 的 3 个运维场景实操

痛点

跨云、跨地域服务器互联是运维老大难问题。传统方案要么搭 IPSec/WireGuard 手动维护密钥和路由表,要么买云厂商的 VPN Gateway 按小时计费。一旦节点数超过 10 台,配置复杂度指数上升:

  • IPSec 隧道每增加一个节点,需要 N-1 条新隧道配置
  • WireGuard 手动方案需要分发公钥、维护 AllowedIPs、处理 NAT 穿透
  • 云厂商 VPN Gateway 单通道价格 $36-72/月,3 朵云互联成本直接翻 3 倍

核心需求: 10-50 台分布在 AWS、阿里云、自建 IDC 的服务器需要安全互联,要求零手动密钥管理、自动 NAT 穿透、节点...

Read more

3 个运维场景用 Podman 替代 Docker:无 daemon、rootless、systemd 原生集成实操

痛点

Docker 在生产环境有几个绕不开的问题:

  1. dockerd 单点故障 — daemon 挂了,所有容器失联,docker ps 都执行不了,运维只能盲操作
  2. Root 权限依赖 — 默认要 root 或 docker 组,一旦容器逃逸直接拿到宿主机最高权限
  3. 与 systemd 割裂 — 容器生命周期靠 dockerd 管理,和系统服务管理体系两套逻辑,重启策略、日志收集都要单独配

Podman 是红帽主导的开源容器引擎,API 兼容 Docker,但架构完全不同 — 无 daemon、fork-exec 模型、原生支持 rootless 和 systemd 集成。以下用 3 个...

Read more