我有 pod 级别的安全上下文,如下面的代码片段所示:
spec:
securityContext:
runAsUser: 1010
runAsGroup: 1010
fsGroup: 1010
containers:
--------
-------
我的一个容器需要root权限,所以我又添加了一个securityContext,如下所示:
spec:
securityContext:
runAsUser: 1010
runAsGroup: 1010
fsGroup: 1010
containers:
- name: sample
securityContext:
runAsUser: 0
image: sampleimage
----------------
-----------------
现在我的容器能够以root权限运行,但我的要求不是使runAsUser:0是root!有没有其他方法可以使用相同的runAsUser:1010单独提升容器的权限?
我发现一些选项,如allowPrivilegeEscalation:true和功能:但没有运气!也许我以错误的方式使用它。
containers:
- image: sampleimage
name: sample
securityContext:
allowPrivilegeEscalation: true
和
containers:
- image: sampleimage
name: sample
securityContext:
capabilities:
add: ["SYS_ADMIN"]
任何人都可以通过更正我的代码或帮助参考和实现示例来提供帮助吗?请。
您需要为要允许容器的操作指定适当的功能。
如中所述 Kubernetes 官方文档
您可以从 Linux 文档中选择有 7 种功能
一切都归结为您要授予特定用户的权限。
例
通过运行以下命令确认传递了正确的配置
kubectl exec pod -c container whoami
kubectl exec -it pod -c container -- date -s '10 APR 2020 10:10:10'
使用第二个命令,如果您指定了错误的内容,您将收到错误
日期:无法设置日期:不允许操作
现在,如果添加"功能"SYS_TIME
containers:
- image: yourimage
name: yourimagename
securityContext:
runAsUser: 1010
capabilities:
add: ["SYS_TIME"]
再次执行第二个命令,您将看到日期反映为字符串。