Модули Kubernetes не могут извлекать изображения из реестра контейнеров (gcp) - PullRequest
0 голосов
/ 02 марта 2019

Я хочу обновить свое развертывание в kubernetes новым образом, который существует на eu.gcr.io (тот же проект), я делал это раньше.Но теперь стручки не могут получить изображение, потому что они не имеют права делать это.Это ошибка, которую мы получаем в журналах pod.

Failed to pull image "eu.gcr.io/my-gcp-project/my-image:v1.009": 
rpc error: code = Unknown desc = Error response from daemon: 
unauthorized: You don't have the needed permissions to perform this operation,
and you may have invalid credentials.

Учетная запись службы в кластере имеет kubernetes admin и роли администратора хранилища роли, которые должны быть достаточно .Но даже когда я создаю учетную запись службы редактор проекта (для отладки), она все равно не работает (та же ошибка).

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

Я не уверен, что я могу попробовать больше.

Любая помощь или предложения очень ценятся.

РЕДАКТИРОВАТЬ:

Я только что узнал, что я все еще могу тянуть и развертывать старые образы.Но каждое новое изображение, которое я создаю, не может быть получено стручками kubernetes.

Ответы [ 2 ]

0 голосов
/ 05 марта 2019

Согласно вашему описанию

Я только что узнал, что все еще могу извлекать и развертывать старые образы.Но каждое новое изображение, которое я создаю, не может быть извлечено модулями kubernetes.

Я предполагаю, что вы можете извлекать образ докера по команде, но не kubectl.

docker pull eu.gcr.io/my-gcp-project/my-image:v1.009 

Так что ссылка на этоarticle Используя Google Container Registry с Kubernetes , аутентификация между образом pull-докера различается на docker pull и kubectl .

Вы дали токен доступа в GKE?

kubectl create secret docker-registry gcr-access-token \
--docker-server=eu.gcr.io \
--docker-username=oauth2accesstoken \
--docker-password="$(gcloud auth print-access-token)" \
--docker-email=any@valid.email
0 голосов
/ 02 марта 2019

Вам нужно будет создать секрет реестра Docker и использовать imagePullSecrets в определении вашего модуля:

kubectl create secret docker-registry regcred --docker-server=<your-registry-server> --docker-username=<your-name> --docker-password=<your-pword> --docker-email=<your-email>

apiVersion: v1
kind: Pod
metadata:
  name: private-reg
spec:
  containers:
  - name: private-reg-container
    image: <your-private-image>
  imagePullSecrets:
  - name: regcred

см. Это руководство для получения дополнительной информации

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...