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

在AKS集群部署容器时遇containerd挂载错误:找不到/etc/passwd文件

AKS部署containerd挂载/etc/passwd失败的解决方案

错误原因

该错误是containerd在创建容器临时挂载点时,无法读取容器内的/etc/passwd文件,大概率和镜像完整性、节点containerd运行状态或部署配置冲突有关。

修复步骤

1. 校验镜像完整性

  • 先验证基础镜像是否正常:
    docker pull mcr.microsoft.com/dotnet/aspnet:6.0
    docker run --rm mcr.microsoft.com/dotnet/aspnet:6.0 cat /etc/passwd
    
    如果输出为空或报错,说明基础镜像损坏,换镜像源重新拉取。
  • 检查你构建的业务镜像:
    docker build -t worker-service .
    docker run --rm worker-service cat /etc/passwd
    
    如果业务镜像缺少该文件,排查构建上下文是否有etc目录被错误复制到容器根目录,或者调整Dockerfile的COPY路径(确保只复制/app下的内容)。

2. 检查AKS节点containerd状态

  • 登录AKS节点(需开启节点SSH访问),检查临时挂载目录权限:
    ls -ld /var/lib/containerd/tmpmounts/
    
    权限需为root:root,权限值至少700。
  • 重启containerd服务:
    sudo systemctl restart containerd
    

3. 排查部署YAML配置

  • 检查Deployment中是否有自定义volumeMounts挂载了/etc/passwd或覆盖容器根目录,这类配置会导致系统文件被替换。
  • 检查securityContext配置,确保runAsUser/fsGroup设置正确,避免因权限问题无法读取系统文件。

4. 重建节点池

若以上操作无效,可能是AKS节点基础镜像存在问题,删除现有节点池并创建新的节点池,选择官方推荐的节点镜像。


内容的提问来源于stack exchange,提问作者dilraj bhinder

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 04:06:27