【发布时间】:2019-06-17 16:06:00
【问题描述】:
我正在尝试在我的 v1.13.6-gke.6 k8s 集群中部署一个 Pod。
我使用的图片非常简单:
FROM scratch
LABEL maintainer "Bitnami <containers@bitnami.com>"
COPY rootfs /
USER 1001
CMD [ "/chart-repo" ]
如您所见,用户设置为1001。
我在其中部署 Pod 的集群具有 PSP 设置。
spec:
allowPrivilegeEscalation: false
allowedCapabilities:
- IPC_LOCK
fsGroup:
ranges:
- max: 65535
min: 1
rule: MustRunAs
runAsUser:
rule: MustRunAsNonRoot
所以基本上按照rule: MustRunAsNonRoot 规则,上面的图像应该运行。
但是当我运行图像时,我随机遇到:
Error: container has runAsNonRoot and image will run as root
所以进一步挖掘,我得到了这个模式:
每次我使用imagePullPolicy: IfNotPresent 运行映像时,我总是会遇到问题。这意味着每次我拾取缓存的图像时,都会出现container has runAsNonRoot 错误。
Normal Pulled 12s (x3 over 14s) kubelet, test-1905-default-pool-1b8e4761-fz8s Container image "my-repo/bitnami/kubeapps-chart-repo:1.4.0-r1" already present on machine
Warning Failed 12s (x3 over 14s) kubelet, test-1905-default-pool-1b8e4761-fz8s Error: container has runAsNonRoot and image will run as root
但是
每次我以imagePullPolicy: Always 运行图像时,图像都会成功运行:
Normal Pulled 6s kubelet, test-1905-default-pool-1b8e4761-sh5g Successfully pulled image "my-repo/bitnami/kubeapps-chart-repo:1.4.0-r1"
Normal Created 5s kubelet, test-1905-default-pool-1b8e4761-sh5g Created container
Normal Started 5s kubelet, test-1905-default-pool-1b8e4761-sh5g Started container
所以我不太确定这一切是关于什么的。我的意思是因为 ImagePullPolicy 不同,为什么它错误地设置了 PSP 规则?
【问题讨论】:
标签: kubernetes google-kubernetes-engine kubernetes-pod