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

Docker镜像内置kubectl在Kubernetes Pod中执行报错(Exit Code137)求助

解决Kubernetes Pod中kubectl执行报exit code 137的问题

exit code 137通常表示进程被系统发送SIGKILL信号终止,最常见的原因是内存不足(OOMKilled),其次可能是二进制文件与容器系统库不兼容。结合你的场景,按以下步骤排查解决:

1. 检查并调整Pod内存资源配额

Kubernetes默认不给Pod设置内存限制,当kubectl运行时占用的内存超过节点分配给该Pod的额度,就会被系统杀掉。

修改你的Pod/Deployment配置,添加内存请求和限制:

spec:
  containers:
  - name: kubectlll-test
    image: your-image-name
    resources:
      requests:
        memory: "64Mi"
        cpu: "100m"
      limits:
        memory: "128Mi"
        cpu: "200m"

重新部署后,再次执行kubectl version测试。

2. 替换为兼容Alpine的kubectl二进制

你当前通过curl下载的是AWS EKS提供的针对glibc编译的kubectl,而Alpine使用的是musl libc,可能存在兼容性问题,导致运行时内存异常。

修改Dockerfile中安装kubectl的部分,改用Alpine官方源安装适配版本:

# 删除原来的curl下载kubectl的代码,替换为:
RUN apk add --no-cache kubectl=1.27.9-r0

如果不需要指定版本,直接用apk add --no-cache kubectl即可。重新构建镜像并部署Pod测试。

3. 验证Pod事件确认原因

执行以下命令查看Pod的事件日志,确认是否是OOM导致的终止:

kubectl describe pod kubectlll-test

在Events部分如果看到OOMKilled记录,说明内存不足的问题实锤,按步骤1调整资源即可。

内容的提问来源于stack exchange,提问作者Venu Madhav

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 19:35:00