ImagePullBackOff Kubernetes from Google Cloud Container Registry

Стандартное приложение Hello-World, доступное на https://cloud.google.com/kubernetes-engine/docs/tutorials/hello-app, не работает. По-видимому, существует какая-то проблема с доступом, несмотря на то, что при работе с Kubernetes на GCP в сочетании с Google Cloud все должно работать как надо.

Для примера: https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod

где упоминается:

"Использование Google Container Registry Kubernetes имеет встроенную поддержку Google Container Registry (GCR) при работе на Google Compute Engine (GCE). Если вы запускаете свой кластер на GCE или Google Kubernetes Engine, просто используйте полное имя образа (например, gcr.io/my_project/image:tag). Все стручки в кластере будут иметь доступ на чтение к образам в этом реестре.

Я дважды проверил, что использовал правильное имя образа (скопировал его из реестра контейнеров).

Error message:

C:\Users\rober>kubectl get pods
NAME                         READY     STATUS             RESTARTS   AGE
hello-web-694bc87958-rcdvg   0/1       ImagePullBackOff   0          7s

  Type     Reason          Age               From                                                   Message
  ----     ------          ----              ----                                                   -------
  Normal   Scheduled       7m                default-scheduler                                      Successfully assigned default/hello-web-694bc87958-rcdvg to gke-hello-cluster-default-pool-9cbfb505-588j
  Normal   SandboxChanged  7m (x3 over 7m)   kubelet, gke-hello-cluster-default-pool-9cbfb505-588j  Pod sandbox changed, it will be killed and re-created.
  Normal   BackOff         7m (x6 over 7m)   kubelet, gke-hello-cluster-default-pool-9cbfb505-588j  Back-off pulling image "gcr.io/data-platform-tst/hello-app:v1"
  Normal   Pulling         6m (x3 over 7m)   kubelet, gke-hello-cluster-default-pool-9cbfb505-588j  pulling image "gcr.io/data-platform-tst/hello-app:v1"
  Warning  Failed          6m (x3 over 7m)   kubelet, gke-hello-cluster-default-pool-9cbfb505-588j  Failed to pull image "gcr.io/data-platform-tst/hello-app:v1": rpc error: code = Unknown desc = Error response from daemon: repository gcr.io/data-platform-tst/hello-app not found: does not exist or no pull access
  Warning  Failed          6m (x3 over 7m)   kubelet, gke-hello-cluster-default-pool-9cbfb505-588j  Error: ErrImagePull
  Warning  Failed          2m (x24 over 7m)  kubelet, gke-hello-cluster-default-pool-9cbfb505-588j  Error: ImagePullBackOff
0
задан 18 April 2019 в 15:05
1 ответ

Убедитесь, что в вашем кластере настроены правильные области действия, чтобы учетная запись службы могла получать образ. Пожалуйста, следуйте официальной документации, в которой приведены пошаговые инструкции о том, как предоставить пользователям разрешение на извлечение образа из контейнерного реестра.

Насколько я понимаю, вы используете Google Container Registry, поэтому в этом случае узлы GKE уже имеют доступ к образам Google Container Registry в том же проекте Google Cloud Platform, что и кластер. .

Пожалуйста, проверьте область действия, которую вы указали для своего кластера.

Выполните следующие шаги или официальную документацию:

  • Создайте кластер
  • Создайте образ из исходного кода
  • Отправьте его в Google Container Registry
  • Разверните в ]ГКЕ.
1
ответ дан 25 March 2021 в 21:32

Теги

Похожие вопросы