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

AKS集群Pod出现ContainerStatusUnknown(退出码137)问题求助

cert-manager Pod异常问题排查与解决

一、是否与OOM相关?

Exit Code 137是容器进程被强制终止(SIGKILL信号)的典型标识,OOM(内存不足)是最常见的触发原因:当容器内存使用超出配置的resources.limits.memory,或节点剩余内存不足以支撑所有运行Pod时,kubelet会启动OOM Killer终止高内存占用进程,导致容器异常退出。此外,节点意外重启也会导致容器状态丢失,出现ContainerStatusUnknown和无法获取日志的情况。

二、排查与解决步骤

1. 检查节点资源占用

先确认节点是否存在资源耗尽情况:

kubectl top nodes

若节点内存使用率接近100%,说明节点资源不足。此时若AKS自动扩缩容未触发(可能受冷却时间、配额限制影响),可手动调整节点池规模:

az aks nodepool scale --resource-group <你的资源组名> --cluster-name <AKS集群名> --name <节点池名称> --node-count <目标节点数>

2. 调整cert-manager资源配置

查看当前cert-manager Deployment的资源限制,确认是否内存配额过低:

kubectl get deployment cert-manager -n cert-manager -o yaml | grep -A 6 -B 2 resources

若未配置内存限制或值过小,更新Deployment的资源配置(示例配置):

apiVersion: apps/v1
kind: Deployment
metadata:
  name: cert-manager
  namespace: cert-manager
spec:
  template:
    spec:
      containers:
      - name: cert-manager
        resources:
          requests:
            memory: "256Mi"
            cpu: "100m"
          limits:
            memory: "512Mi"
            cpu: "500m"

应用更新:

kubectl apply -f <更新后的yaml文件> -n cert-manager

3. 清理异常Pod

直接删除状态异常的Pod,让控制器重新创建实例:

kubectl delete pod <异常Pod名称> -n cert-manager

4. 检查节点异常事件

查看节点的事件记录,确认是否有OOM Killer触发或节点重启的情况:

kubectl describe node <节点名称>

重点关注Events区域,寻找OOM killing process、NodeNotReady等相关日志,定位节点层面的问题。

5. 验证正常Pod日志

若重新创建的Pod恢复运行,查看日志确认是否存在内存相关报错:

kubectl logs <正常运行的cert-manager Pod> -n cert-manager

若日志中出现内存不足相关信息,进一步确认是Pod配额还是节点资源的问题,针对性调整。

内容的提问来源于stack exchange,提问作者Rakesh V

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 07:27:20