Kubernetes Liveness Probe 配置过激导致服务反复重启的排查实践
适用场景 本文适用于 Kubernetes 中业务 Pod 间歇性进入 CrashLoopBackOff、RestartCount 持续增长、服务短时间不可用,但应用日志里又看不到明确业务异常的场景。常见于 Spring Boot、Django、Go HTTP 服务、Node.js 服务等 Web 应用,尤其是刚接入健
Category
当前分类下的文章。
适用场景 本文适用于 Kubernetes 中业务 Pod 间歇性进入 CrashLoopBackOff、RestartCount 持续增长、服务短时间不可用,但应用日志里又看不到明确业务异常的场景。常见于 Spring Boot、Django、Go HTTP 服务、Node.js 服务等 Web 应用,尤其是刚接入健
适用场景 本文适用于 Prometheus 已经配置了 scrape_configs,但在 Targets 页面看到目标实例显示 DOWN,或者 PromQL 查询 up{job="xxx"} == 0 的场景。常见对象包括 node_exporter、应用自暴露的 /metrics、Kubernetes Servic
适用场景 这篇文章适用于线上服务突然退出、容器被重启、systemd 日志里只有 Killed、监控显示内存瞬时打满,但应用日志没有明确异常栈的场景。常见环境包括物理机、云主机、Docker 容器和 Kubernetes 节点。 OOM Killer 的本质是内核在内存不可回收时主动选择进程终止,以保证系统还能继续运行
适用场景 这篇文章适用于 MySQL 5.7、MySQL 8.0 或兼容 MySQL 协议的数据库中,执行 ALTER TABLE、CREATE INDEX、DROP INDEX、TRUNCATE TABLE 等 DDL 时长时间不返回,同时业务侧出现接口变慢、连接数升高、写入卡住等问题的场景。 元数据锁的英文是 Me
适用场景 这类问题常见于单机 Docker、docker-compose 或没有接入集中日志系统的测试/生产节点。应用本身还在运行,但主机磁盘空间持续下降,最终出现接口异常、容器重启失败、镜像拉取失败、数据库写入失败等问题。 典型环境特征: Docker 使用默认 json-file 日志驱动。 容器持续输出访问日志、
适用场景 这类问题常见于网关、爬虫、批处理任务、消息消费者、API 聚合服务等高并发出站访问场景。应用本身没有明显 CPU 或内存瓶颈,但访问下游服务、Redis、MySQL 代理、HTTP API 时偶发超时,重启应用后短时间恢复,过一会儿又开始失败。 临时端口耗尽的核心原因是:本机主动发起大量 TCP 连接,连接关
适用场景 本文适用于 Linux 服务器上使用 systemd 管理自研服务、脚本任务、Java 服务、Python 服务或二进制程序时,执行 systemctl start 后服务立即失败,并在日志中看到 status=203/EXEC 的场景。 这类问题通常不是业务代码运行时报错,而是 systemd 在执行 Ex
适用场景 这类问题常见于日志文件、临时文件或应用输出文件被手动 rm 删除后,df -h 仍然显示磁盘空间没有释放。典型环境包括: 业务服务持续写入日志,日志文件被误删或被不规范清理脚本删除。 Nginx、Java、Python、Go 服务长期运行,进程仍持有旧文件句柄。 Docker 容器内日志或挂载目录文件被删除,
适用场景 这篇文章适用于线上 Redis 作为缓存、会话、计数器或排行榜组件时,出现接口响应时间突然升高、Redis CPU 飙升、慢查询增多、网络出口流量变大等问题的排查。 典型环境包括: 单机 Redis 或 Redis Sentinel 架构; Redis Cluster 分片集群; 业务使用 Python、Ja
适用场景 在 Codex 里配置了一个定时任务,希望它每天自动生成内容,并调用线上接口完成发布。但任务执行时发现:手动运行脚本可以访问线上接口,定时任务运行时却被沙箱拦截,表现为无法访问目标域名或提示网络权限不足。 这个问题很容易误判成“没有互联网权限”,但实际根因往往不是互联网不可用,而是定时任务使用的命令没有命中已