-
容器设了 2GB 内存上限服务却反复被 OOMKilled、可 JVM 堆明明没满:JVM 不感知容器限制按宿主机算堆撑爆容器的避坑复盘
这是我们把一个老 Java 服务上容器时踩的第一个也是最懵的一个坑。我们把这个服务打成镜像部署到 K8s 给它的容器设了一个内存上限 2GB,我们估摸着这个服务平时也就用几百兆内存 2GB 绰绰有余了。可服务一启动跑不了多久就被 K8s 给 OOMKilled 因内存超限被杀了,杀了之后自动重启重启完跑一会又被杀如此反复陷入了 CrashLoopBackOff 崩溃重启循环根本起不来。我特别纳闷这…- 6
- 0
-
ArgoCD 2.10 升级后 Kustomize 类 Application 全部 30 秒 timeout 的 8 天复盘:Kustomize 5.x + sealed-secrets webhook + helmChartInflationGenerator 三层叠加根因
GitOps 平台例行升级后 28 个 Kustomize Application 全部 OutOfSync,Pod 全绿日志正常完全看不出问题。8 天定位三层叠加根因:Kustomize 5.x 默认开 helm inflation + render 调 K8s API + sealed-secrets webhook failurePolicy 改 Fail。分离 render/apply 阶…- 2
- 0
-
FastAPI + uvicorn 默认配置导致 K8s 滚动发布每次丢 30-50 请求的 5 天复盘:graceful shutdown 三件套配置 + ASGI lifespan drain 逻辑
每次 K8s 滚动发布 api-gateway 都丢 30-50 请求,3 个月积累出 ¥4.8w 支付对账偏差。根因是 K8s SIGTERM 与 Endpoint 移除并行、uvicorn 默认 timeout-graceful-shutdown 立即退出叠加。落地 uvicorn 参数 + K8s preStop + 应用层 lifespan drain 三件套,28 次发布零丢失。- 0
- 0
-
K8s 集群从 1.27 跳到 1.30 的 7 天蓝绿迁移复盘:跨 3 个 minor 版本 + 5 个兼容性坑 + 零停机切换
生产 K8s 集群在 1.27.10 拖了 18 个月被云厂商邮件逼着升级,目标 1.30 跨 3 个 minor 版本。选蓝绿不选原地,7 天双集群迁移完成,踩了 deprecated API、Helm chart 默认值、CNI 部署顺序、cert-manager CRD 兼容、Ingress 流量切换 5 个坑,沉淀出蓝绿升级 SOP + 10 条 K8s 升级纪律,业务全程零停机。- 4
- 0
-
跨 VPC VPN MTU 黑洞导致大请求 60 秒 timeout 的 4 天复盘:Path MTU Discovery 被 ICMP 拦截 + MSS clamping 修法 + 8 条网络配置纪律
业务跨 VPC 调用偶发 60 秒 timeout,小请求正常、大请求必挂。4 天根因定位:IPsec VPN 隧道 MTU 1400,主路径 1500,Path MTU Discovery 依赖的 ICMP type 3 code 4 被对端业务防火墙误判为攻击全部丢弃,DF=1 的大包陷入黑洞。复盘包含 ping -M do 二分定位、tcpdump ICMP 抓包、Calico/Cilium…- 7
- 0
-
K8s 滚动更新每次发布 30 秒 5xx 毛刺持续 18 个月的 3 天复盘:readinessProbe + preStop + minReadySeconds 四因素叠加 + 零停机发布完整模板
每次 K8s Deployment 滚动发布都给监控看板捐 30 秒 5xx 红色,持续 18 个月没人当回事。3 天复盘揪出 readinessProbe initialDelaySeconds 30 秒、preStop 缺失、minReadySeconds=0、SIGTERM 直接断流四因素叠加根因,5 种修法 + K8s/ECS/Nomad/Heroku/Swarm/Knative 横向对比…- 0
- 0
-
K8s 集群偶发 5 秒延迟的 3 天复盘:ndots:5 + glibc 双栈 + conntrack race 五因素叠加 + NodeLocal DNSCache 落地
一套 180 节点 K8s 集群偶发服务间调用 5 秒延迟,P99 从 80ms 飙到 1.2s。3 天定位根因:ndots:5 + glibc 同源端口并发 + IPv4/IPv6 双栈 + iptables conntrack race + UDP 5 秒超时,5 个因素叠加触发稳定的 5 秒 hang。本文完整复盘 K8s DNS 解析链路、NodeLocal DNSCache 部署、6 种…- 0
- 0
-
.NET HttpClient 单例 + K8s 滚动发布失联 4 小时复盘:SocketsHttpHandler 默认 PooledConnectionLifetime 灾难
.NET 8 计费网关上游服务做了次普通滚动发布,我们的 HttpClient 单例对着已经回收的旧 Pod IP 持续报错 18 分钟。SocketsHttpHandler 默认 PooledConnectionLifetime 是无限,DNS 永不刷新。完整复盘 + 6 步自查清单。- 0
- 0
-
Kubernetes 工程化完全指南:从一次"node 加完 pod 一直 Pending readinessProbe 配错 endpoints 空"看懂为什么 yaml apply 远远不够
2023 年我们公司从 docker-compose 迁移到 Kubernetes 全栈上云 30 多个微服务拆 50+ deployment 第一个月顺风顺水第二个月开始事故连连平均每周 1.5 次 P1 故障凌晨被告警叫醒 5 次然后我们陆续踩了一堆坑第一种最让我傻眼一次大版本发布 deployment apply 之后 pod 一直 ImagePullBackOff 我们以为镜像没推上去重推…- 4
- 0
-
Kubernetes 生产工程化完全指南:从一次"一个 pod 内存泄漏拖垮整个 node 业务雪崩 30 分钟"看懂为什么 kubectl apply 远远不够
2023 年我们公司有一套核心交易系统跑在 Kubernetes 上大概 60 个 service 4 个 namespace 一开始 K8s 集群是云厂商管的我接手时配置很默认 resource request limit 凭感觉拍 HPA 全开 default 没设 PodDisruptionBudget 调度策略默认 namespace 没 quota 测试环境跑得也挺顺但上线半年我们陆续踩…- 0
- 0
-
K8s Pod 每天 20 次 OOMKilled 实录:JVM 堆外内存治理全链路
订单服务在 K8s 每天 OOMKilled 20+ 次,exit code 137,JVM 无 OOM 日志。投一周排查:JVM 没感知 cgroup limit + Direct Memory 失控 + 线程数 280 个 + Metaspace 涨 + cgroup v2 核算变化。最终参数 + NMT 定位 + 监控告警全套修法,30 天零重启,P99 800ms→80ms。- 0
- 0
-
JVM 容器化优化实录:1.2GB→180MB 启动 90s→15s
Java 17 服务从虚拟机迁 K8s 全实录:镜像优化(jlink 裁剪/distroless)+ JVM cgroup 识别 + 多阶段 Dockerfile + AppCDS / Spring Native + 三种 probe 分工 + graceful shutdown + 5 大坑修法。镜像 1.2GB→180MB,启动 90s→15s。- 0
- 0
-
KEDA 自动扩缩落地实战:K8s 从 cron 扩缩到事件驱动
K8s HPA 只能按 CPU/内存,业务真实需求是按 Kafka lag/QPS/队列长度。本文实录 KEDA 落地全过程:5 大场景(Kafka/Prometheus/RabbitMQ/Cron/ScaledJob)+ 4 大坑(抖动/认证/超时/OR 逻辑)+ scale-to-zero + 监控告警。资源用量降 35%,SLA 提升。- 2
- 0
-
K8s CNI 从 Calico 迁 Cilium 一个季度实录:eBPF 替 iptables
500 节点 5000 Pod K8s 集群从 Calico 迁 Cilium 一个季度实录:架构对比 + 性能压测 + chained 共存迁移 + kubeProxyReplacement + L7 NetworkPolicy + Hubble 可观测 + 6 大坑修法 + 决策清单。- 0
- 0
K8s
幸运之星正在降临...
点击领取今天的签到奖励!
恭喜!您今天获得了{{mission.data.mission.credit}}积分
我的优惠劵
-
¥优惠劵使用时效:无法使用使用时效:
之前
使用时效:永久有效优惠劵ID:×
没有优惠劵可用!














