簡體   English   中英

拒絕訪問安裝在OpenShift容器中的/var/run/docker.sock的權限

[英]Permission denied to access /var/run/docker.sock mounted in a OpenShift container

目的

知道如何排除故障,以及需要什么知識來排除Docker容器訪問主機文件的權限問題。

問題

通過hostPath訪問安裝在OpenShift容器內的/var/run/docker.sock會導致權限被拒絕。 如果將相同的容器部署到K8S 1.9.x,則不會發生此問題,因此這是OpenShift特有的問題。

[ec2-user@ip-10-0-4-62 ~]$ ls -laZ /var/run/docker.sock
srw-rw----. root docker system_u:object_r:container_var_run_t:s0 /var/run/docker.sock

[ec2-user@ip-10-0-4-62 ~]$ docker exec 9d0c6763d855 ls -laZ /var/run/docker.sock
srw-rw----. 1 root 1002 system_u:object_r:container_var_run_t:s0 0 Jan 16 09:54 /var/run/docker.sock

https://bugzilla.redhat.com/show_bug.cgi?id=1244634說svirt_sandbox_file_t RHEL需要SELinux標簽,因此更改了標簽。

$ chcon -Rt container_runtime_t docker.sock 
[ec2-user@ip-10-0-4-62 ~]$ ls -aZ /var/run/docker.sock 
srw-rw----. root docker system_u:object_r:svirt_sandbox_file_t:s0 /var/run/docker.sock

重新部署容器,但仍然拒絕權限。

$ docker exec -it 9d0c6763d855 curl -ivs --unix-socket /var/run/docker.sock http://localhost/version
*   Trying /var/run/docker.sock...
* Immediate connect fail for /var/run/docker.sock: Permission denied
* Closing connection 0

默認情況下,OpenShift不允許hostPath,因此已解決。

oc adm policy add-scc-to-user privileged system:serviceaccount:{{ DATADOG_NAMESPACE }}:{{ DATADOG_SERVICE_ACCOUNT }}

我猜想SELinux或OpenShift SCC或其他容器/泊塢窗權限是造成此問題的原因,但需要一個線索來查找原因。

Openshift需要特殊權限才能允許Pod使用節點中的卷。

請執行下列操作:

  1. 創建標准的安全上下文yaml:

     kind: SecurityContextConstraints apiVersion: v1 metadata: name: scc-hostpath allowPrivilegedContainer: true runAsUser: type: RunAsAny seLinuxContext: type: RunAsAny fsGroup: type: RunAsAny supplementalGroups: type: RunAsAny users: - my-admin-user groups: - my-admin-group oc create -f scc-hostpath.yam 
  2. 向此安全上下文添加“ allowHostDirVolumePlugin”特權:

     oc patch scc scc-hostpath -p '{"allowHostDirVolumePlugin": true}' 
  3. 將Pod的服務帳戶與上述安全上下文相關聯

     oc adm policy add-scc-to-user scc-hostpath system:serviceaccount:<service_account_name> 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM