饮墨

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

Kubernetes PDB 生产实战:零停机集群维护的关键配置

痛点

集群升级节点、内核补丁滚动更新、节点缩容时,kubectl drain 一把梭直接驱逐 Pod,结果核心服务瞬间副本数归零,告警群炸了——这是很多运维团队踩过的坑。

根本原因:Kubernetes 默认不关心你的业务可用性,drain 操作会无差别驱逐节点上所有 Pod。如果多个副本恰好调度在同一节点,或者驱逐速度快于新 Pod 就绪速度,服务就会出现中断窗口。

PodDisruptionBudget(PDB) 正是解决这个问题的原生机制——它告诉集群:"在任何自愿中断(voluntary disruption)期间,我的服务至少要保持 N 个副本可用"。

方案

PDB 的核心逻辑...

Read more

Litestream:SQLite 流式复制,单节点应用也能拥有生产级数据保障

痛点:轻量应用的数据库选型困境

你有一个日活几千的内部工具、一个 side project、或者一个单节点部署的 API 服务。数据量不大,QPS 不高,但你依然被迫部署一套 PostgreSQL 或 MySQL —— 因为"SQLite 不能用于生产"这个根深蒂固的观念。

结果是:一个 RDS 实例每月 $30-60 的账单、额外的连接池管理、网络延迟、备份配置……这些复杂度对于一个本可以用 SQLite 搞定的场景来说,完全是过度工程。

核心矛盾:SQLite 性能够用、部署简单,但缺乏持续备份和灾难恢复能力。一旦磁盘故障或误操作,数据就没了。

方案:Litestream — SQL...

Read more

OpenCost 实战:Kubernetes 集群成本可视化与优化指南

痛点

Kubernetes 集群规模一上来,成本就成了黑洞。常见问题:

  • 无法归因:每月云账单一大坨,根本分不清哪个团队、哪个 Namespace、哪个 Pod 在烧钱
  • 资源浪费严重:开发者 request 设 4C8G,实际用了 0.5C1G,节点利用率不到 30%
  • Showback/Chargeback 无数据支撑:财务要求按部门分摊成本,运维拿不出精确数据
  • 商业方案太贵:Kubecost Enterprise 动辄几万美金/年,中小团队承受不起

OpenCost 是 CNCF 孵化的开源 Kubernetes 成本监控项目(Kubecost 开源核心),能以 Pod 粒度实时计算...

Read more

EKS Pod Identity 实战:告别 IRSA,更优雅地管理 Pod AWS 权限

痛点

在 EKS 集群中,Pod 访问 AWS 资源(S3、DynamoDB、SQS 等)需要 IAM 权限。长期以来,IRSA(IAM Roles for Service Accounts) 是标准方案,但随着集群规模增长,IRSA 的痛点越来越明显:

  1. OIDC Provider 管理复杂 — 每个集群需要配置 OIDC Provider,跨账户场景下信任关系配置繁琐
  2. IAM Role Trust Policy 膨胀 — 每个 Role 的信任策略必须精确匹配 OIDC issuer URL + namespace + SA name,维护成本高
  3. Role 数量爆炸 — 多集群共享同...

Read more

Kubernetes RBAC 最小权限实战:从过度授权到精确控制的 5 步落地方案

痛点

生产环境里最常见的 Kubernetes 安全隐患不是漏洞,而是 RBAC 权限膨胀

典型场景:开发团队要部署服务,运维图省事直接给了 cluster-admin;CI/CD Pipeline 的 ServiceAccount 拥有全命名空间的 * 权限;离职员工的 kubeconfig 三个月没回收。一旦某个 Pod 被攻破或凭证泄露,攻击者直接横向移动拿下整个集群。

CNCF 2025 安全报告显示,67% 的 Kubernetes 安全事件与过度授权的 RBAC 配置直接相关。最小权限原则人人会说,但真正落地需要系统化方法。

方案

5 步渐进式收紧策略,在不影响业务的前...

Read more

Grafana Mimir 实战:Prometheus 大规模长期存储的终极方案

痛点

运维监控体系发展到一定规模后,Prometheus 单机存储瓶颈就成了无法回避的问题:

  • 存储容量有限:默认本地 TSDB 保留 15 天数据,磁盘扩到 TB 级后性能急剧下降
  • 无法水平扩展:单个 Prometheus 实例承载上万 series 后内存飙升,OOM 频发
  • 多集群数据孤岛:10+ 个 K8s 集群各跑一套 Prometheus,跨集群查询基本不可能
  • 高可用缺失:Prometheus 挂了就丢数据,双副本方案数据不一致

Thanos 是早期方案,但 Sidecar 模式运维复杂、Compactor 单点问题让人头疼。2022 年 Grafana Labs 开源了 G...

Read more

Cosign + Sigstore 容器镜像签名验证实战:从零构建软件供应链安全

痛点

容器化部署已成为标配,但一个关键问题常被忽视:你怎么确认运行的镜像确实是 CI/CD 构建出来的那个,而不是被篡改过的?

2024 年的多起供应链攻击事件再次敲响警钟 —— 攻击者通过入侵镜像仓库、CI 流水线或依赖库,注入恶意代码到最终镜像中。传统的 tag 机制(如 latestv1.2.3)是可变的,任何有仓库写权限的人都能覆盖同一个 tag 指向不同的 digest。

核心需求: 在镜像从构建到部署的全链路中,建立不可篡改的信任锚点 —— 即镜像签名与验证。

方案

Sigstore 是 Linux Foundation 孵化的开源项目,提供免费的代码/容器签名基础设施。其...

Read more

Kubernetes VPA 垂直自动扩缩容:告别拍脑袋设定 resource requests

痛点:90% 的团队在浪费资源或埋雷

在 Kubernetes 集群中,为 Pod 设定 requestslimits 是运维的基本功。但现实是:

  • 设高了:CPU/Memory 大量空闲,集群利用率不到 30%,账单触目惊心
  • 设低了:Pod 频繁 OOMKilled 或被 CPU throttle,业务抖动、告警不断
  • 一设永不动:业务流量变化后,半年前的 requests 早已不匹配实际负载

HPA(水平自动扩缩容)解决的是"加减副本数"的问题,但单 Pod 的资源规格不合理,靠 HPA 怎么也救不回来。这时候就需要 VPA(Vertical Pod Autoscaler) —...

Read more

AI Agent 生产环境可观测性:用 Langfuse 实现 LLM 调用链追踪与成本监控

痛点:AI Agent 上线后成了黑盒

你的 AI Agent 终于部署到生产环境了。用户开始使用,账单开始跑——然后问题来了:

  • 某个用户的请求为什么花了 45 秒才返回?是 LLM 慢还是 Tool Call 卡住了?
  • 这个月 Token 消耗比上月翻了 3 倍,到底哪个 Agent 在烧钱?
  • Agent 的多步推理链路中,哪一步的回答质量最差、用户反馈最多?

传统 APM(Datadog、Prometheus)能监控 HTTP 延迟和错误率,但对 LLM 应用的语义级可观测性完全无能为力。你需要的是能追踪每一次 LLM 调用的 prompt、completion、token 数、...

Read more

用 Grafana Alloy 统一遥测采集:3 步替代 Grafana Agent + Prometheus Agent,告别多组件碎片化

痛点:遥测采集组件碎片化,运维成本越来越高

一个典型的可观测性栈,你可能同时跑着:

  • Grafana Agent 采集 metrics
  • Promtail 收日志发到 Loki
  • Grafana Agent Traces 收 traces 转发到 Tempo
  • 可能还有 OpenTelemetry Collector 处理 OTLP 数据

每个组件独立配置、独立升级、独立排障。配置格式不统一(YAML、River、TOML 各来一套),监控采集器本身就成了运维负担。

2024 年 4 月,Grafana Labs 正式发布 Alloy —— 一个统一的、OpenTelemetry 原生的遥测...

Read more