容器与 Kubernetes
服务放进容器、再交给 Kubernetes 调度之后,很多问题不在应用代码里:资源限额、进程信号、Pod 状态、节点与网络。这个专题从容器本身的边界讲起,每篇都用可复现的实验说明一层机制在什么时候起作用、出了问题时看哪里。
文章
01容器不是轻量虚拟机镜像里没有内核、容器里的 root 就是宿主机 root、nproc 看不见限额,以及 1 号进程收不到 SIGTERM→02Running 不等于可用没有就绪探针时滚动发布 3.5 秒报成功、请求被拒 9 秒;坏版本卡住不回滚;探针查共用依赖让所有副本一起下线→03节点 NotReady:先分清是 False 还是 Unknown没有 CNI 时 Pod 卡在两个不同的地方、节点全部 Ready 跨节点仍不通、kubelet 停止后旧容器还在处理请求→04Pending、OOMKilled、Evicted:requests 与 limits 各管什么节点只用了 2.6% CPU 却放不下新 Pod、平均占用 0.17 核的 250m limit 让延迟涨到 4.5 倍、OOMKilled 与 Evicted 的区别→05一次请求在集群里经过了什么kube-proxy 按连接而不是按请求分配、两种 Service 配错都是连接被拒绝、ndots 让一次解析变成 8 个查询、出站策略挡住 DNS 要等 20 秒→