我在我的 pod 中添加了一个安全上下文,如下所示:
spec:
securityContext:
runAsNonRoot: true
运行 pod 时我收到错误消息(kubectl get pod pod-name -o=yaml):
container 有 runAsNonRoot 和 image 有非数字用户(默认), 无法验证用户不是 root
消息很直观,但是在阅读了这个 kubernetes 博客 在我看来它应该非常简单,我在这里缺少什么?
仅当您的 uid == nil 时才会出现此错误。根据错误文本,我们需要设置一个数字用户值。
因此,对于 UID=1000 的用户,您可以在 pod 定义中执行此操作,例如:
securityContext:
runAsUser: 1000
所以你的
securityContext
应该是这样的:
securityContext:
fsGroup: 2000
runAsNonRoot: true
runAsUser: 1000
在官方文档中查看这里
您可以按如下方式添加securityContext:
spec:
runAsUser:
rule: MustRunAsNonRoot
containers:
- name: <container-name>
这可以用Kubernetes代码确认
将此添加到 Dockerfile 解决了我的问题
USER 9000:9000