在kubernetes 中创建一个liner(强制方式(命令
kubectl run test --image=ubuntu:latest --limits="cpu=200m,memory=512Mi" --requests="cpu=200m,memory=512Mi" --privileged=false
我还需要在一行中设置securityContext
,这可能吗?基本上,我需要将容器作为securityContext/runAsUser
运行,而不是作为root
帐户运行。
是的,陈述性有效,但我正在寻找一种命令式的方式。
将此答案作为社区wiki发布,以强调解决方案已发布在评论中(指向另一个答案的链接(:
嗨,检查这个答案:stackoverflow.com/a/37621761/5747959你可以用--overrides解决这个问题——CLNRMN 2天前
请随意编辑/展开。
引用$ kubectl run --help
:
--overrides='': An inline JSON override for the generated object. If this is non-empty, it is used to override the generated object. Requires that the object supply a valid apiVersion field.
以下是包含额外字段的--overrides
示例,更具体地说,针对这个特定问题(securityContext
(:
kubectl run -it ubuntu --rm --overrides='
{
"apiVersion": "v1",
"spec": {
"securityContext": {
"runAsNonRoot": true,
"runAsUser": 1000,
"runAsGroup": 1000,
"fsGroup": 1000
},
"containers": [
{
"name": "ubuntu",
"image": "ubuntu",
"stdin": true,
"stdinOnce": true,
"tty": true,
"securityContext": {
"allowPrivilegeEscalation": false
}
}
]
}
}
' --image=ubuntu --restart=Never -- bash
通过上面的覆盖,您将使用securityContext
来约束您的工作负载。
旁注!
- 上面的示例特定于运行将执行到(
bash
(中的Pod
--overrides
将覆盖它之外的其他指定参数(例如:image
(
其他资源:
- Kubernetes.io:文档:任务:配置pod容器:安全上下文
- Kubernetes.io:Docs:Concepts:Security:Pod安全标准