饮墨

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

Kamal 2 实战:不用 Kubernetes 也能优雅部署容器化应用

不是所有团队都需要 Kubernetes。当你的服务只有 3-10 台机器,K8s 的学习成本和运维复杂度远超收益。Kamal 2 让你用一条命令把 Docker 容器部署到任意 Linux 服务器,零停机、自动 SSL、滚动发布——没有 etcd,没有 kubelet,没有 YAML 地狱。


痛点:小规模部署的尴尬处境

  1. Kubernetes 太重 —— 3 台机器跑个 API 服务,为此搭一套 K8s 控制面(etcd + apiserver + scheduler + controller-manager),运维成本远超业务本身
  2. 裸 Docker 太原始 —— docker-...

Read more

Kubernetes Pod Security Admission 实战:3 步替换 PodSecurityPolicy,落地 Pod 安全基线

发表评论 102 views

痛点

PodSecurityPolicy(PSP)在 Kubernetes 1.25 正式移除,但大量集群至今没有配置替代方案。结果就是:Pod 可以随意挂载 hostPath、使用特权模式、以 root 运行——任何一个容器逃逸漏洞都能直接拿下节点。

Pod Security Admission(PSA)是 K8s 内置的替代方案,无需安装第三方 admission controller,配置简单、开箱即用。本文带你用 3 步完成从"裸奔"到安全基线全覆盖。


方案概述

PSA 基于三个安全级别(Pod Security Standards):

级别 含义 典型场景
pr...

Read more

用 pgvector 把 PostgreSQL 变成向量数据库:AI 应用落地最省心的方案

发表评论 170 views

痛点

你在做 RAG、语义搜索或推荐系统,需要一个向量数据库。调研一圈:Pinecone 要钱、Milvus 太重、Chroma 只适合原型。团队已经有 PostgreSQL 集群在跑,运维体系成熟,监控备份一套全的。这时候再引入一个独立的向量数据库,意味着:多一套运维、多一份数据同步、多一个故障点。

核心矛盾:AI 应用需要向量检索,但你不想为了这一个能力再养一套基础设施。

pgvector 的答案很直接——给 PostgreSQL 装个扩展,原地升级为向量数据库。事务、权限、备份、高可用全部复用现有体系,零额外运维成本。


方案概览

pgvector 是 PostgreSQL 的开源...

Read more

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

发表评论 102 views

痛点: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 分钟上手实操

发表评论 122 views

痛点:云资源查询散落在各种 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 步完成生产切换,零停机 + 完全兼容

发表评论 170 views

痛点: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 倍的实操方案

发表评论 136 views

痛点: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 地狱

发表评论 132 views

痛点: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

Wazuh 开源 SIEM+XDR 平台:从部署到告警的运维落地实战

痛点

安全运维团队面临一个现实矛盾:商业 SIEM(Splunk、QRadar)动辄年费几十万,而中小企业同样面临日志审计、入侵检测、合规需求。很多团队选择"裸奔"——靠 grep 翻日志、手工写规则,出事后才知道被打了多久。

Wazuh 作为开源 SIEM+XDR 一体化平台,提供了从 Agent 采集、实时分析、威胁检测到主动响应的完整链路,且完全免费。但它的部署架构和调优有不少坑,本文给出可直接落地的实操方案。

方案概述

Wazuh 4.x 架构分三层:

组件 角色 资源建议
Wazuh Server (Manager) 规则引擎 + 告警 + 主动响应 4C8G 起...

Read more