Kubernetes中xray-daemon Pod报Back-off restarting failed container错误咨询
Back-off restarting failed container 是Kubernetes的常见报错,本质是集群检测到Pod内容器反复崩溃退出,多次重启仍无法正常运行后触发了重启回退策略,暂时停止了容器重启操作。针对xray-daemon-x9m8l这个DaemonSet类型的Pod(从命名可判断为xray守护进程集的节点实例),常见触发原因如下:
- 容器主进程异常退出
- 镜像问题:
xray-daemon镜像拉取不完整、镜像版本与节点架构不兼容(比如arm架构镜像运行在x86节点上)、镜像内部启动脚本存在语法错误 - 配置错误:xray的配置文件格式非法、运行权限配置不符合要求、依赖的ConfigMap或Secret不存在、内容异常
- 端口冲突:Pod要监听的端口已经被节点上的其他进程占用,DaemonSet类型Pod需要在每个节点上占用相同端口,极易出现节点本地端口冲突问题
- 镜像问题:
- 资源不足
- 节点剩余CPU、内存不足以支撑容器运行,容器启动后因资源配额不足被OOM杀死,可执行
kubectl describe pod xray-daemon-x9m8l查看Last State字段确认是否为OOM终止 - 节点文件描述符、进程数等内核资源耗尽,无法启动新的容器进程
- 节点剩余CPU、内存不足以支撑容器运行,容器启动后因资源配额不足被OOM杀死,可执行
- 权限异常
- Pod绑定的ServiceAccount没有配置对应权限,xray启动后需要访问K8s API、节点特定目录(如
/proc、/sys)时被拒绝 - 容器挂载的节点目录权限不足,xray进程没有读写权限无法完成初始化,最终启动失败
- Pod绑定的ServiceAccount没有配置对应权限,xray启动后需要访问K8s API、节点特定目录(如
- 依赖服务不可用
- xray启动时依赖的其他服务(如监控上报端点、配置中心、存储服务)连接失败,主进程主动退出
- 存活探针检测失败
- 配置的livenessProbe存活探针多次检测不通过,K8s反复杀死容器重启,多次失败后进入回退状态

内容的提问来源于stack exchange,提问作者Mina Fawzy
相关产品推荐
相关产品推荐

