PodSecurityPolicy неисправности с определенным ImagePullPolicy - PullRequest
1 голос
/ 17 июня 2019

Я пытаюсь развернуть 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?

Ответы [ 2 ]

1 голос
/ 17 июня 2019

Обнаружил проблему. Известная проблема с k8s для 2 конкретных версий v1.13.6 & v1.14.2.

https://github.com/kubernetes/kubernetes/issues/78308

0 голосов
/ 17 июня 2019

Трудно сказать, основываясь на описании.У вас есть несколько узлов в кластере?

Сначала, если вы видите ошибку с imagePullPolicy: IfNotPresent и не видите ее с imagePullPolicy: Always, это, скорее всего, связано с наличием разных изображений контейнера на локальном узле.чем в реестре контейнеров.

Возможно, у вас локально установлена ​​более старая версия my-repo/bitnami/kubeapps-chart-repo с тем же тегом?

...