Я пытаюсь развернуть Pod в моем v1.13.6-gke.6
k8s кластере.
Изображение, которое я использую, довольно просто:
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?