docker的privileged 與 k8s的privileged的區別


k8s privileged 起的容器里

mount|grep sys
sysfs on /sys type sysfs (ro,nosuid,nodev,noexec,relatime,seclabel)

/sys是ro只讀的

 

docker privileged 起的容器里

mount|grep sys
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime,seclabel)

/sys是rw可讀可寫

 

具體原因:sysfs is mounted as readonly for privileged container · Issue #24000 · moby/moby

 

k8s 需要先啟動網絡沙盒,sandbox 容器不是 privileged 的,主容器共用了 sandbox 的部分命名空間,所以沒有將 sys 掛載成 rw,簡單的做法是在 k8s yaml 里單獨再掛載一下 sys

- name: sys
    mountPath: /sys

 

/sys Sysfs文件系統是一個類似於proc文件系統的特殊文件系統,用於將系統中的設備組織成層次結構,並向用戶模式程序提供詳細的內核數據結構信息。其實,就是在用戶態可以通過對sys文件系統的訪問,來看內核態的一些驅動或者設備等。

所以/sys是用於對外設以及驅動訪問的。所以如果在k8s中,掛載的設備雖然可見,但是不可寫,會表現為可以看到掛載設備如npu,但是npu不可用。即/dev下可以看到設備,但是使用設備時會報錯。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM