特殊权限容器
容器root权限
你一定很奇怪,明明进入容器内,可以看到是root用户啊,为什么还要设置容器的root权限?这是因为容器内虽然看起来是root,但是却没有root的所有功能。当需要修改系统文件时,就不被允许。如果你的app恰好就要去修改系统文件,那么就需要明白如何设置容器的root权限。
想要开启容器的root权限,需要做以下操作:
1.设置kube-apiserver与kubelet的``–allow-privileged=true
这样就允许节点上的容器开启privileged。
怎么看当前是不是为true呢?
ps -ef|grep kube
然后仔细看,你就会看到是不是为true。
那么如何设置以上参数呢?
因为kube-apiserver与kubelet都是通过二进制文件直接运行的,所以直接在重启时加入以上参数就行。更简单的是,如果已经设置了systemd启动,那么就去/etc/systemd/system/下找到对应的.service文件,改里面的参数,然后通过systemctl命令直接重启就行。
2.设置包含contariners的yaml文件(如deploy的yaml文件),在containers下添加:
securityContext:privileged: true例如pod的yaml文件:
apiVersion: v1kind: Podmetadata:name: hello-worldspec:containers:- name: hello-world-container# The container definition# …securityContext:privileged: true这个很好理解,但是切记要把这个与podSecurityContext分开。
podSecurityContext是在pod.spec内的属性,虽然它也写作securityContextsecurityContext是container内的属性podSecurityContext的例子如下:
apiVersion: v1kind: Podmetadata:name: hello-worldspec:containers:
specification of the pod’s containers
…
securityContext:fsGroup: 1234supplementalGroups: [5678]seLinuxOptions:level: “s0:c123,c456”
- 原文作者:老鱼干🦈
- 原文链接://www.tinyfish.top:80/post/kubernets/k8s%E5%BC%80%E5%90%AF%E5%AE%B9%E5%99%A8root%E6%9D%83%E9%99%90/
- 版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议. 进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。