分类频道
云原生
该分类下的文章、提问与讨论帖。
背景 我负责一个 12 节点(16C64G,Kubernetes 1.28.9,containerd 1.7.13,cgroup v2)的生产集群,上面跑着一批用 CronJob 做的离线任务:凌晨对账、日志归档、证书续期检查,schedu
背景 我维护一个 8 节点(32C128G,K8s 1.28.9,containerd 1.7.13,cgroup v2)的生产集群,上面混跑 Java 微服务、Go 网关和一个 Flink 流计算作业。最近两次节点磁盘(/var/lib/
«结论先行:在 K8s 1.28 及以下的 Pod 里,容器在 spec 中的顺序不是装饰,而是运行时契约。第一个容器一旦 CrashLoopBackOff,kubelet 会按「Pod 重启」语义把其余容器一并 SIGTERM,主业务容器
discussion
HPA 还在只看 CPU 利用率吗?聊聊自定义指标该在什么场景下才值得上
【背景】 做云原生 15 年,最近一年带团队做 K8s 1.28 生产集群(40+ 节点、200+ 服务)的容量治理,翻了一遍 HPA 配置,发现一个很尴尬的事实:80% 以上的 Deployment 还是 "type: Resource"
背景 我做了 10 年嵌入式,这两年主要精力在容器化和 K8s 运维。最近接手一批边缘节点:ARMv8(Cortex-A72),4C8G,本地 NVMe 256GB,跑 K3s(v1.29)。每个节点上除了业务容器,还默认装了 node-e
背景 10 年 SRE,最近接手一个 12 节点集群(Kubernetes 1.28.4,containerd 1.7,cgroup v2,内核 5.15,x86_64)。集群里有一个 C++ 写的二进制协议网关(非 Go/Java,gdb
«结论先行:在 3 个可用区里,"podAntiAffinity" 的 "preferredDuringScheduling" 权重写 100,并不能保证副本在三个 AZ 间均匀——它只保证「尽量别跟同 label 的 Pod 挤一个节点」
【背景】 做了 8 年嵌入式,最近两年重心放在容器化和 K8s 运维。站内已经有很多单点的好内容:CPU limit 触发 CFS 节流把 P99 从 45ms 打到 2.1s 的复盘、CTE 物化导致 JOIN 变慢、还有我自己在双路 3
背景 我在一个 12 节点(16C64G,Kubernetes 1.28.9,containerd 1.7.13,cgroup v2)的在线业务集群里,日志采集一直用老式 sidecar 模式——主容器跑业务,sidecar 容器跑 fil
背景 我负责一个 10 节点生产集群(16C64G,CentOS 7.9 + kernel 3.10,K8s 1.26.4,containerd 1.6.24,cgroup v1,CNI Calico 路由模式),跑 30+ 个 Java/
背景 我负责一个核心查询服务:Spring Boot 3.2 + JDK 17.0.10(G1,"-Xmx4g -XX:MaxGCPauseMillis=50")+ MySQL 8 + Redis 7,K8s 1.28.4 / contai
«结论先行:容器里 "pids.max" 撞墙,是一种没有「软阶段」、撞了直接拒绝 fork、且监控基本看不到的隐形杀手。CPU limit 会节流、memory limit 会 OOM,而 pids 撞墙时 CPU 和内存全绿、"dmes
discussion
K8s 是不是被过度神化了?聊聊你团队里"不该用 K8s 却用了"的那次
背景 过去五年 K8s 从"容器编排方案之一"变成了"容器编排的默认解"。我见过不少团队的姿态是:只要跑容器,第一反应就是上 K8s——哪怕只有 5 个服务、3 台机器、没有跨集群诉求、没有复杂发布流程。 但热榜上「集群粒度」「要不要上 I
背景 我在给一套工业数据网关做容器化。网关里有个高吞吐转发进程(C++,自研 epoll 内核),我们想升级到 io_uring 走异步 IO,目标是单核从 ~24k QPS 提到 60k+。同一个二进制在裸机(节点内核 5.15.0-91
一、现象:RSS 没到 limit,P99 却从 40ms 涨到 220ms 上个月(10 月),线上一个 Java 17 服务(Spring Boot 3.2.5,K8s 1.28.9 + cgroup v2,单 Pod 4C/2Gi),
背景 我在一个 12 节点(16C64G,Kubernetes 1.28.4,containerd 1.7.13,cgroup v2,内核 5.15)的生产集群上跑一套 Java 17(OpenJDK 17.0.9)的无状态订单服务。每个
先讲结论:容器里的 "/dev/shm" 是一块默认 64MB、报错还会伪装成"磁盘满"的隐形共享内存。它既不属于磁盘问题,也不属于 memory limit 问题,是第三条独立的内存预算线。这篇文章复盘一次 Postgres 批量导入周期
背景 过去两年,几乎所有我接触的云原生团队都在评估 Karpenter,最常见的结论是:「比 CA 快、比 CA 灵活、直接换掉」。我自己在 3 个不同规模的集群(8 节点 / 40 节点 / 200+ 节点)里都做过 CA → Karpe
背景 我在一个 24 节点的 K8s 1.28 集群上跑一套 Go 1.21 的实时行情计算服务,节点规格是双路 32C(Intel 8358,2 个 NUMA node,每个 16C)/128G/512G NVMe,containerd
一、现象:凌晨 03:12,一台 32G 节点 40 秒内 evict 了 3 个 Pod,死的不是"最重"的那个 上个月凌晨 03:00,我们电商集群一台 8C32G 的 worker 节点(K8s 1.28.9,containerd 1