K8S Pod,Docker 容器掛載Windows主機目錄,訪問相應的文件出現Premission denied的權限訪問問題
Windows遠程共享目錄為//192.168.61.115/huashu
Windows用戶名密碼分別為huashu和huashu123
待掛載的文件夾已經創建,為/mnt/data/remote/huashu
問題原因及解決辦法:
原因是CentOS7中的安全模塊selinux把權限禁掉了,至少有以下三種方式解決掛載的目錄沒有權限的問題:
1.在運行容器的時候,給容器加特權,及加上 --privileged=true 參數:
docker run -i -t -v /mnt/data/remote/huashu:/mnt/data/remote/huashu --privileged=true arcvideo-cluster /bin/bash
K8S Pod增加參數:
containers:
- image: qce-reg.cloudappl.com/zmpt/arcvideocluster:v258646_2.6.0.10
securityContext:
privileged: true
運行容器加上參數 privileged=true
使用該參數,container內的root擁有真正的root權限。
否則,container內的root只是外部的一個普通用戶權限。
privileged啟動的容器,可以看到很多host上的設備,並且可以執行mount。
甚至允許你在docker容器中啟動docker容器。
2.臨時關閉selinux:
setenforce 0
3.添加selinux規則,改變要掛載的目錄的安全性文本
mount -t cifs -o username=huashu,password=huashu123 //192.168.61.115/huashu /mnt/data/remote/huashu