You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

K8s Pod启动失败报OCI runtime create failed错误问题排查

问题根因

核心报错由配置错误直接导致:
容器command字段格式不符合Kubernetes语法要求:使用数组写法配置启动命令时,数组每个元素会被容器运行时分别识别为「可执行文件路径」「启动参数1」「启动参数2」……当前配置将完整命令串/bin/sh -c 'mkdir /tmp && touch /tmp/date.log'作为单个数组元素传入,运行时会把这整串内容当成一个可执行文件的绝对路径去查找,自然找不到对应文件,直接抛出no such file or directory错误。

另外原配置还存在三个会引发启动/运行异常的隐患:

  • YAML结构存在缩进错误:Pod模板(spec.template)下的labels字段被错误配置为与metadata平级,实际labels应该是metadata的子字段,会导致配置解析异常
  • 启动命令执行完创建文件的操作后就会结束,没有启动Redis主进程,容器主进程退出后Pod会持续重启
  • 配置的containerPort为6739,与Redis默认监听的6379端口不匹配,会导致后续服务访问异常
  • 手动执行mkdir /tmp属于冗余操作,emptyDir卷挂载到容器路径时会自动创建不存在的挂载目录
排查思路
  • 先定位报错关键字段:报错信息中exec: "/bin/sh -c 'mkdir /tmp && touch /tmp/date.log'"明确显示运行时尝试执行的可执行文件是整串带参数的命令,可直接定位到command字段格式错误。
  • 再校验YAML结构层级:逐行核对字段缩进,确认Pod模板的元数据字段(labels、name等)是否都归属在metadata字段下。
  • 最后校验启动命令逻辑:确认命令执行完后是否会启动容器的主进程,避免主进程提前退出导致Pod反复重启。
修复方案

调整后的完整可用ReplicaSet配置如下:

apiVersion: apps/v1
kind: ReplicaSet
metadata:
  name: redis-rs01
  labels:
    name: redis-rs01
    run: redis-rs01
    app: redis
spec:
  replicas: 3
  selector:
    matchLabels:
      app: redis
  template:
    metadata:
      name: redis
      labels:
        app: redis
    spec:
      volumes:
      - name: vol001
        emptyDir: {}
      containers:
      - name: redis
        image: redis
        ports:
        - containerPort: 6379
        env:
          - name: MY_NODE_NAME
            valueFrom:
              fieldRef:
                fieldPath: spec.nodeName
        volumeMounts:
        - name: vol001
          mountPath: /tmp
        command: ["/bin/sh", "-c", "touch /tmp/date.log && redis-server"]

修正点说明:

  • 调整labels缩进,将其归属到spec.template.metadata下,符合Kubernetes YAML结构规范
  • 拆分command数组元素,将可执行文件路径、参数、执行命令拆分为独立数组项,解决运行时找不到可执行文件的问题
  • 移除冗余的mkdir /tmp操作,emptyDir挂载时会自动创建目标目录
  • 启动命令末尾增加redis-server启动Redis主进程,避免命令执行完容器直接退出
  • 将容器端口修正为Redis默认监听的6379端口,若有自定义端口需求可自行修改为对应值

内容的提问来源于stack exchange,提问作者Raja G

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 20:03:23