K8s 排查实战:Nginx Pod CrashLoopBackOff 根因定位与预防
K8s 里最让人头皮发麻的状态之一就是 Nginx Pod 一直 CrashLoopBackOff。你看着它明明处于 RunningREADY 却永远是 0/1RESTARTS 每隔几十秒就加一流量全部 5xx。更坑的是这种状态通常不会在事件里直接告诉你“这里配置错了”它只会像一个复读机一样把容器拉起来、杀掉、再拉起来直到你把真正的病根找到。这篇文章就围绕 Nginx Pod 的 CrashLoopBackOff把我实际排查这类问题的完整思路整理出来先理解它到底在说什么再讲清楚如何用 describe 和日志拿到第一现场然后覆盖配置、资源、探针、挂载这四类最常见原因的定位过程最后给出一套可以直接照抄的排查流程和预防手段。适合刚接触 K8s、对 Pod 生命周期还不熟的同学也适合已经被 Nginx 网关反复重启折腾过一轮的运维。1. CrashLoopBackOff 不是错误码它只是一个症状1.1 从状态机看这个循环是怎么转起来的很多人第一次看到 CrashLoopBackOff 时第一反应是到处翻资料查“这个报错是什么意思”。其实 CrashLoopBackOff 不是一个具体错误它是 Kubelet 对“容器反复启动失败”的一种状态聚合。你可以把它理解成运维值班日志里的“服务反复挂掉”这笔记录真正的原因还得往里挖。K8s 里一个容器的生命周期大致是Pending 等待调度 → ContainerCreating 拉镜像、创建沙箱 → Running 进程正常执行。如果进程启动后立刻退出Kubelet 不会直接放弃而是按指数退避的策略重新拉起它。退避节奏一般是 10 秒、20 秒、40 秒、80 秒……一直到封顶 300 秒。这个“拉起来又挂了”的循环一旦持续状态就从 Error 变成 CrashLoopBackOff。如果容器某次成功运行并持续了足够长的时间退避计数器才会重置否则它会一直保持这个节奏既不会给你报一个明确的异常码也不会停止。1.2 先看三个数字RESTARTS、Exit Code、Last State遇到 CrashLoopBackOff我第一步永远是打开终端的同一个页面把三条信息抄下来。kubectl get pod -n web kubectl describe pod nginx-deploy-xxx-abc -n webkubectl get pod的 RESTARTS 列会给你一个直观感受它是启动之后几秒就崩还是跑了几分钟才崩。崩得快说明是启动阶段的配置/权限/依赖问题崩得慢则更可能是探针判定失败或资源逐渐耗尽。然后看kubectl describe pod里的两个关键字段State显示当前在 WaitingReason 是 CrashLoopBackOffLast State会显示上一次容器终止时的状态通常里面藏着 Reason如 Error、OOMKilled和 Exit Code。Exit Code 特别值得记录它能把问题范围瞬间缩小。我把常用的退出码整理成了一张表排查时直接对照退出码含义常见场景0正常退出被主动 stop一般不会 CrashLoopBackOff1应用级错误Nginx 配置语法错误、entrypoint 脚本失败2程序异常退出二进制无法执行、脚本解释器错误137被 SIGKILL 杀死最常见是 OOM也可能是手动强制删除139段错误镜像本身损坏、运行时异常143被 SIGTERM 终止探针失败、滚动更新、优雅退出超时比方说退出码是 1大概率是 Nginx 启动时配置解析失败退出码是 137Resource 限制或者探针问题就要提到前面来查。在往下看任何东西之前先把这三个数字固定下来后面排查会快很多。2. 第一现场用 describe 和日志锁定崩溃指纹2.1 kubectl describe 的信息密度其实很高kubectl describe pod的输出很长但值得逐段扫一遍。除了刚才说的 Last State 和 Exit CodeEvents 段是另一个重点。Kubelet 和 kube-controller-manager 会把关键动作作为事件写在这里比如Failed to pull image、FailedMount、Unhealthy、Back-off restarting failed container。这些 Warning 事件不是噪音它们往往是根因的第一条线索。比如事件里出现FailedMount说明卷挂载阶段已经失败这是编排层问题跟 Nginx 配置关系不大出现Unhealthy说明探针判定失败容器本身可能还活着出现Back-off restarting failed container 之前的Created、Started循环才说明是应用进程自己起来又退。先看事件再决定是否看容器日志顺序不同效率差很多。2.2 日志的正确姿势--previous、-c 和多容器容器处于 CrashLoopBackOff 时直接kubectl logs经常会看到空日志或者只有最后几行因为当前这个实例刚启动就崩了真正有信息量的输出在上一个实例里。这时候要加--previouskubectl logs nginx-deploy-xxx-abc -n web --previous如果 Pod 里有 initContainer 或者 sidecar还要用-c指定容器名kubectl logs nginx-deploy-xxx-abc -n web --previous -c nginx还有个容易被忽略的点Nginx 的 error.log 默认可能写到文件而不是 stdout。如果 stdout 干干净净但容器确实起来就退可能需要用临时容器进去看/var/log/nginx/error.log。不过绝大多数情况下官方镜像已经把启动错误打到了 stdout--previous就能看到nginx: [emerg]这类关键信息。2.3 30 秒组合一条命令拿到崩溃指纹我现在处理这类问题习惯直接执行一组命令把信息一次性收齐kubectl get pods -n web -o wide kubectl describe pod nginx-deploy-xxx-abc -n web | sed -n /Last State/,4p kubectl logs nginx-deploy-xxx-abc -n web --previous --tail50 kubectl get events -n web --sort-by.lastTimestamp | tail -20第一条看 Pod 状态和所在节点第二条看退出详情第三条拿崩溃日志第四条看集群事件的完整时间线。这几样东西凑齐基本能确定是配置、资源、探针还是挂载层面的问题。不要一上来就怀疑集群本身CrashLoopBackOff 的大多数根因都在应用启动条件和资源环境上。3. 配置语法错误ConfigMap 改一行引发的重启风暴3.1 一次非常典型的 Nginx 网关事故有一次我维护的业务网关 Nginx 集群某天发布一个新 server 块之后所有副本开始批量 CrashLoopBackOff。现象就是上面说的标准剧本kubectl get pod里 RESTARTS 疯狂增长Readiness 探针全部失败入口流量直接中断。用describe看Last State 的 Reason 是 ErrorExit Code 是 1Events 里只有Back-off restarting failed container没有其他 Warning。这时候基本可以断定是启动阶段就挂了。接着用--previous拉日志看到的是/docker-entrypoint.sh: Configuration error; startup aborted nginx: [emerg] unknown directive kepalive_timeout in /etc/nginx/conf.d/default.conf:5问题很清楚配置里新增的 server 块把一个指令名拼错了keepalive_timeout写成了kepalive_timeout。Nginx 在解析 conf.d 下的文件时遇到未知指令直接拒绝启动。这个场景特别能说明为什么 CrashLoopBackOff 容易让人误判——它不告诉你“配置有语法错误”它只告诉你“容器起来就退”。3.2 别瞎改先在容器外验证配置那一次的修复很快但后来我反思了很久为什么这么低级的一个拼写错误会从 CI 一路漏到生产因为我们的 CI 当时只验证了配置模板的渲染结果没有真正拿 Nginx 二进制去解析一遍。现在不管在哪只要涉及 Nginx 配置变更我都会先做一次离线校验。最简单的方法是用 Docker 挂载配置跑nginx -tdocker run --rm -v $(pwd)/default.conf:/etc/nginx/conf.d/default.conf:ro nginx:1.25 nginx -t配置没问题会输出syntax is ok有问题会直接指出文件和行号。在 K8s 环境里也可以用临时 Pod 干同样的事把 ConfigMap 挂进去执行一次校验kubectl run nginx-check --rm -i --restartNever -n web \ --imagenginx:1.25 \ --overrides{spec:{containers:[{name:nginx-check,image:nginx:1.25,command:[nginx,-t],volumeMounts:[{name:conf,mountPath:/etc/nginx/conf.d}],volumes:[{name:conf,configMap:{name:nginx-gateway-conf}}]}]}}跑完看输出是syntax is ok还是[emerg]一目了然。这个验证动作成本极低但能拦住很大一部分 CrashLoopBackOff。3.3 ConfigMap 的两个经典陷阱修好配置只是第一步还有两个坑必须注意。第一个坑是ConfigMap 改了Pod 不一定会立刻拿到新配置。Kubelet 同步 ConfigMap 有周期延迟而且即使文件更新了Nginx 进程也不会自动 reload。所以修复配置后要显式触发滚动更新kubectl rollout restart deployment/nginx-gateway -n web第二个坑是ConfigMap 以卷的形式挂载到/etc/nginx/conf.d时会把这个目录原本镜像里的内容“遮住”。如果你整体挂载了某个目录而该目录下还有其他依赖文件容器起来后可能找不到表现依然是启动失败。所以挂载粒度要尽量小只挂需要管理的文件不要动不动把整个/etc/nginx都挂进去。4. 资源限制与探针两个最会“演戏”的隐形杀手4.1 OOMKilled退出码 137 的两种可能Nginx 本身的内存占用不算夸张但线上环境一旦在 Deployment 里加了不合理的 limits或者某个版本配置把 worker 数、buffer 调得很大容器照样会被 cgroup 级别杀掉。被杀的瞬间内核会发 SIGKILL退出码就是 137。光看 137 还不够关键看describe里 Last State 的 Reason 是不是OOMKilled。如果是Events 里通常会有对应的Killing记录。这时先别急着调配置用下面几条命令看一下内存消耗情况kubectl top pod nginx-deploy-xxx-abc -n web kubectl describe pod nginx-deploy-xxx-abc -n web | grep -A 5 Limits如果内存 limit 是 64Mi 而 Nginx 实际峰值到 90Mi那要么调大 limit要么调低 worker_processes 和 worker_connections要么给连接数、缓冲区做更保守的配置。还有一种情况是 CPU limit 设置过小导致频繁限流容器不一定会崩但表现为响应极慢、探针超时最终被 livenessProbe 杀掉表现还是 CrashLoopBackOff。资源类问题有个特点日志里往往看不到 Nginx 自身的报错因为进程是被外部杀掉的。4.2 探针问题容器活着但被 livenessProbe 判了死刑这是我觉得最坑的一类。现象是 Pod 一直在重启但--previous日志干干净净没有任何[emerg]或 panic退出码是 143或者 describe 里有连续的Unhealthy事件。真相往往是探针设置不合理不是 Nginx 真的挂了。典型场景有三个initialDelaySeconds太短Nginx 还在加载配置、监听端口还没就绪就被 livenessProbe 判定失败杀掉healthz 路径在 Nginx 配置里返回 404探针 HTTP 请求收到非 2xx/3xx 就认为失败连续几次直接杀容器periodSeconds太短探针请求频率太高把本来就紧张的 worker 再压上一根稻草。Nginx 的 healthz 如果只是为了让探针通过可以直接用一个简单 location 返回固定响应location /healthz { access_log off; add_header Content-Type text/plain; return 200 ok\n; }对应的探针配置可以这样livenessProbe: httpGet: path: /healthz port: 80 initialDelaySeconds: 10 periodSeconds: 10 timeoutSeconds: 2 failureThreshold: 34.3 怎么快速分辨是配置问题还是探针问题我的经验是看退出码和事件的时间线。配置错误通常是启动即退退出码 1容器启动后几秒内就发生第一次失败探针问题则往往是容器已经 Running 一段时间Events里会先出现Unhealthy然后才出现Killing。这俩有时间差多看一眼describe里的事件顺序就能判断。另外要牢记 liveness 和 readiness 的区别。liveness 决定容器要不要被重启readiness 决定流量要不要打进来。对 Nginx 网关这种组件我更倾向于把 liveness 设得宽松一些只判断进程是不是还活着把 readiness 设得严格一些真正反映它能否承担流量。不要图省事让两个探针用同一个路径、同一套参数。5. 卷挂载权限与镜像异常藏在 Events 最后一行的根因5.1 非 root 容器写不进去Permission denied 只出现一行进入容器后看日志你可能会看到mkdir() /var/cache/nginx/client_temp failed (13: Permission denied)。很多人看到这行就懵了因为 Nginx 配置文件、语法都没问题但它就是起不来。这类问题在自定义镜像里特别常见Dockerfile 里用USER nginx切了非 root 用户但挂载的 emptyDir 或 PVC 目录权限仍然是 root 专属Nginx master 进程在启动时创建临时目录就失败了。解决方式一般是调整 Pod 的 securityContext比如指定 fsGroup 让 K8s 对挂载卷自动做 group 归属和权限变更securityContext: runAsUser: 101 runAsGroup: 101 fsGroup: 101或者更粗暴但有效的方式加一个 initContainer在 Nginx 启动前把需要的目录 owner 改掉。这里我要提醒一句挂载卷权限问题不会在事件里给你一个红色的显眼提示它只会以Exit Code: 1 一行 Permission denied 的形式出现日志不仔细看就漏过去了。5.2 exec format error镜像架构与节点架构不匹配另一种现象是容器根本没跑起来Events 里直接出现failed to create containerd task: ... exec format error。这不是 Nginx 的错也不是 K8s 的错是你把 amd64 的镜像跑到了 arm64 的节点上或者反过来。遇到这种情况用下面的命令确认节点架构和镜像架构kubectl get node -o wide docker manifest inspect nginx:1.25 | grep architecture如果集群是混合架构最简单的方式是使用多架构镜像multi-arch manifest或者给 Deployment 加 nodeSelector 锁到同架构节点组。这个问题一旦遇到会非常困惑因为从配置、日志、探针配置上完全看不出问题但它的定位其实很快只要看了 Events 里的exec format error两个字。5.3 ImagePullBackOff 别跟 CrashLoopBackOff 混在一起顺带说一个容易混淆的状态ImagePullBackOff。它的表现也是 Pod 起不来、反复重试但原因完全不同——是镜像拉取失败。当你看到ImagePullBackOff时排查重点要放在镜像 tag 是否存在、私有仓库认证是否过期、网络能不能通到 registry 这些方向上而不是去看 Nginx 配置或探针。describe的 Events 里会明确写Failed to pull image。先分清状态再排查能省下大把时间。5.4 临时容器调试容器起不来也能进去看如果日志还是不够K8s 的临时容器ephemeral container功能很实用。在 1.23 之后可以用kubectl debug给一个崩溃中的 Pod 塞进去一个调试容器即使原容器已经退出了也能复用同一个 Pod 的命名空间和卷kubectl debug pod/nginx-deploy-xxx-abc -n web --imagenginx:1.25 --targetnginx进去之后挂载在 Pod 里的 ConfigMap 文件、emptyDir、日志文件都能看到还能手动执行nginx -t验证。甚至可以把崩溃容器里的文件 copy 出来kubectl cp -c nginx nginx-deploy-xxx-abc:/var/log/nginx/error.log ./error.log注意kubectl cp默认从第一个容器复制如果有多容器要显式指定。这一步能帮你看到 stdout 之外的文件型日志排查进度会快很多。6. 沉淀成流程CrashLoopBackOff 的排查 SOP 与预防手段6.1 我现在遇到 CrashLoopBackOff 的固定顺序处理次数多了我习惯按一套固定顺序来不慌也不跳步先看kubectl get pod记录 RESTARTS 增长的节奏和当前节点接着kubectl describe pod重点看 Last State、Exit Code、Reason、Events 的顺序再用kubectl logs --previous拿上一轮实例的崩溃日志必要时加-c指定容器如果 Exit Code 是 137先查资源限制和 cgroup OOM如果 Exit Code 是 1优先怀疑配置和启动脚本用kubectl top对比当前资源水位如果日志不够用kubectl debug或临时 Pod 进入复现。这套顺序的本质是用“退出码 Events 日志”三样东西互相印证而不是一上来就改配置。我在指导新同事时反复强调不要凭感觉猜根因先拿证据。6.2 把配置校验前置到 CI 里Nginx 配置类问题是最容易预防的。只要在 CI 里加一步配置渲染后的语法检查就能拦截掉一大批拼写、缩进、缺分号的问题docker run --rm \ -v $(pwd)/build/nginx:/etc/nginx/conf.d:ro \ nginx:1.25 nginx -t如果你们的 Nginx 配置是模板渲染出来的那一定要在渲染之后校验而不是校验模板本身。模板变量没替换时server_name {{ .Domain }}这种内容是能通过渲染前检查、却会死在 Nginx 解析阶段的。另外ConfigMap 的 immutable 字段值得用起来。把稳定配置标成不可变能防止有人手滑改了共享配置引发整组 Pod 重启。变更流程走 review如果配合 ArgoCD 之类的 GitOps 工具配置物以 Git 为唯一事实源回滚也方便。6.3 用指标和告警兜底配置和资源问题靠 CI 和规范拦线上的突发问题还是要靠监控兜底。kube-state-metrics 会暴露kube_pod_container_status_restarts_total对重要业务 Pod 设置一个“重启次数持续增长”的告警往往能比业务方更早发现问题。Nginx 层面建议接入 stub_status 或 vts 模块把连接数、请求数、活跃连接暴露给 Prometheus。注意接入之后探针路径和监控抓取路径要分开避免监控抓取本身干扰探针判断。PDB 和minReadySeconds也是好习惯能让滚动更新在 Pod 就绪失败时自动暂停不至于一次性把所有副本都打崩。6.4 复盘时我给问题打标签每次处理完 CrashLoopBackOff我会把 describe 的关键片段、退出码、日志报错和最终根因整理到团队知识库并按类型打标签config、resource、probe、image、mount。半年下来统计一次就会发现配置类占比往往最高其次是探针和资源误配置。这类数据比任何经验分享都更能说明问题出在哪一层。排查流程和监控告警都做了最后一个个人心得处理 CrashLoopBackOff 最忌讳的就是慌一慌就想删 Pod、重启 Deployment、甚至直接重建节点结果现象一时没了根因还在过会儿又冒出来。这个状态说白了就是一个入口顺着事件、退出码、日志往里走绝大多数情况五分钟内能把范围锁定。真正难的不是找到原因而是耐下心来让自己不被“反复重启”的假象带偏。

相关新闻

智联场景下报文发送方案:VSAR帧结构、调度与可靠性设计

智联场景下报文发送方案:VSAR帧结构、调度与可靠性设计

1. 智联场景下报文发送方案为什么会成为瓶颈先交代背景。我最近做完了一个偏底层的通信模块,名字叫VSAR,用途是给设备侧上报状态、下发控制指令提供一套统一的报文发送通道。项目拿到的要求很直接:“智联万物,精准控行”&#xff…

2026/10/19 5:02:08 阅读更多 →
不死码深度解析:从持久化机制到应急响应清除实战

不死码深度解析:从持久化机制到应急响应清除实战

1. 从“不死码”说起:一个被误解多年的概念“不死码”这个词,第一次听到的人多半会愣一下——是某种永久的激活码?还是打不死的验证码?我在几个技术群里做过小范围调研,十个人里有七个第一反应是“跟游戏外挂有关”&am…

2026/10/19 5:02:08 阅读更多 →
HTTP请求响应信息采集:API集成与联调排障实战指南

HTTP请求响应信息采集:API集成与联调排障实战指南

做后端联调这些年,我最常被问到的问题不是“怎么写接口”,而是“对方到底给我发了什么”。第三方回调、开放平台通知、网关转发,这些场景里请求是我方发起或对方发起,但返回结构、请求头、编码方式经常跟文档对不上,光…

2026/10/19 5:02:08 阅读更多 →

最新新闻

CSerialPort串口类2017修正版:稳定嵌入工业控制的Win32封装

CSerialPort串口类2017修正版:稳定嵌入工业控制的Win32封装

简介:这是一份面向C开发者,特别是Windows平台串口通信初学者与中级工程师的轻量级串口类封装资源。CSerialPort类经2017年最新修正,显著降低MFC依赖性,新增_AFX宏适配MFC环境,并提供纯Win32验证程序,使非MF…

2026/10/19 5:54:34 阅读更多 →
STM32+有人4G模块接入阿里云IoT完整实践指南

STM32+有人4G模块接入阿里云IoT完整实践指南

简介:本资源是一套完整的STM32嵌入式设备接入阿里云IoT平台的实战工程,面向具备C语言与STM32基础的物联网开发者及高校电子类专业学生,解决4G远程通信、云平台身份认证与双向数据交互等核心问题,适用于工业监控、智能硬件原型开发…

2026/10/19 5:54:34 阅读更多 →
Python Web应用部署实战:Docker+Nginx实现稳定上线

Python Web应用部署实战:Docker+Nginx实现稳定上线

部署Python Web应用这事儿,看起来简单,实际操作中能绊倒人的地方其实不少。本地用Flask写个Demo,起个服务跑得飞快,一旦要放到服务器上常驻运行,还要面对域名、反向代理、数据持久化、日志、自动重启这些问题&#xff…

2026/10/19 5:54:34 阅读更多 →
artcraft:面向人机协同的高精度创意控制范式

artcraft:面向人机协同的高精度创意控制范式

1. “Artcraft”不是新词,而是被低估的创作范式重启信号最近在几个设计类社区和开源项目讨论区里,“artcraft”这个词突然高频出现,但没人给它下定义。它不像“generative design”那样有明确的技术边界,也不像“digital craft”那…

2026/10/19 5:54:34 阅读更多 →
MEXA-324M汽车尾气测量仪实战全解:从原理到维修诊断

MEXA-324M汽车尾气测量仪实战全解:从原理到维修诊断

上个月,一位客户开着他那辆快十年的老车进店,说年检没过,单子上写着HC超标。他问了好几家店,有人说换火花塞,有人说洗喷油嘴,折腾了一圈回来复检还是不行。我们师傅把MEXA-324M尾气测量仪的探头往排气管里一…

2026/10/19 5:54:34 阅读更多 →
Diagram as Code:用可执行图表构建系统逻辑骨架

Diagram as Code:用可执行图表构建系统逻辑骨架

1. 项目概述:这不是画图,是构建可执行的系统逻辑骨架“diagram-design”这个标题乍看像一个设计类工具操作,但在我过去十年带过的几十个跨领域项目里,它从来不是美术课——而是工程师、产品负责人、运维人员和业务方坐在一起&…

2026/10/19 5:53:33 阅读更多 →

日新闻

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

简介:本资源为电源技术方向的学术研究文档,聚焦介质阻挡放电型臭氧发生器电源的频率跟踪型PWM控制策略,面向电力电子、高压电源及臭氧应用领域的科研人员与工程技术人员。针对负载呈容性、等效电容随外加电压升高而增大、谐振频率随之漂移的难…

2026/10/19 0:00:47 阅读更多 →
Vibe Coding 遇上 TaoToken:把开发者思维圣殿的灵感流接入统一 Key 通道

Vibe Coding 遇上 TaoToken:把开发者思维圣殿的灵感流接入统一 Key 通道

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 0:00:47 阅读更多 →
HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

【免费下载链接】HundredCV-Chat 项目地址: https://ai.gitcode.com/hf_mirrors/Jax-dan/HundredCV-Chat 点击查看 免费下载 HundredCV-Chat 是一个由 100 位青年简历数据开发而来的中文多轮对话数据集,共包含 24,750 组日常闲聊对话和 4,871 个话题标签…

2026/10/19 0:00:47 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/19 1:30:52 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 2:54:50 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 12:16:16 阅读更多 →