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

在Mac M1的K3s环境中,如何让AWX本地路径具备读写权限?

AWX on K3s (Rancher Desktop, Mac M1): 无法写入挂载的主机目录

问题背景

在Mac M1上通过Rancher Desktop的K3s运行AWX,此前Docker Desktop + minikube环境下一切正常,但更换环境后,AWX作业能读取主机挂载的/tmp/work目录,却无法写入。已尝试设置目录权限为777、调整挂载选项z/O,均未解决。

错误示例:

fatal: [target_server -> localhost]: FAILED! => {"changed": false, "checksum_dest": null, "checksum_src": "38e92cf81300d145667da5918b18da38651fcfa6", "dest": "/tmp/work/download.zip", "elapsed": 2, "msg": "Destination /tmp/work is not writable", "src": "/runner/.ansible/tmp/ansible-tmp-1704930722.4006913-261-98184554373224/tmpu7ybl4v2", "url": "http://test.myhome.com/download.zip"}

主机目录权限:

$ ls -al /tmp/work
total 0
drwxrwxrwx   3 1000   wheel   96 Jan 10 17:23 .
drwxrwxrwt  13 1000   wheel  416 Jan 11 07:43 ..

解决方案

1. 确认AWX Runner容器的运行UID

K3s/containerd环境下,AWX Runner的运行用户UID可能与主机的1000不匹配,导致权限问题:

  • 找到AWX Runner的Pod名称:
    kubectl get pods -n awx
    
  • 进入Pod查看当前用户UID:
    kubectl exec -it <awx-runner-pod-name> -n awx -- id
    
  • 如果容器内UID不是1000,修改主机目录属主为该UID:
    sudo chown -R <container-uid>:wheel /tmp/work
    

2. 调整挂载路径至非/tmp目录

Mac的/tmp目录带有sticky bit属性(drwxrwxrwt),可能存在额外权限限制。尝试更换挂载目录:

  • 在主机创建新目录:
    mkdir ~/awx-work
    sudo chmod 777 ~/awx-work
    sudo chown 1000:wheel ~/awx-work
    
  • 修改AWX的"Paths to expose to isolated jobs"配置为:
    [
      "/etc/pki/ca-trust:/etc/pki/ca-trust:O",
      "/Users/your-username/awx-work:/tmp/work:rw",
      "/usr/share/pki:/usr/share/pki:O"
    ]
    
    替换your-username为实际用户名,重启AWX后测试作业。

3. 配置K3s HostPath卷的fsGroup

如果通过PersistentVolume挂载目录,添加fsGroup参数确保容器进程有权限写入:

  • 创建awx-work-pv.yaml:
    apiVersion: v1
    kind: PersistentVolume
    metadata:
      name: awx-work-dir
      namespace: awx
    spec:
      capacity:
        storage: 10Gi
      accessModes:
        - ReadWriteOnce
      hostPath:
        path: /tmp/work
        type: DirectoryOrCreate
      persistentVolumeReclaimPolicy: Retain
      securityContext:
        fsGroup: 1000
    
  • 应用配置:
    kubectl apply -f awx-work-pv.yaml
    
  • 在AWX配置中引用该PV替代直接挂载,确保作业使用此卷。

4. 关闭Rancher Desktop的文件系统隔离(临时测试)

Rancher Desktop默认启用文件系统隔离,可能限制容器对主机目录的写入:

  • 打开Rancher Desktop设置 → Files Sharing
  • 确保/tmp或自定义目录已添加到共享列表
  • 尝试关闭"Enable file system isolation"选项,重启Rancher Desktop后测试。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 08:50:38