Kubernetes не извлекает изображение из частного реестра JFrog

#docker #kubernetes #jfrog-container-registry

#docker #kubernetes #jfrog-контейнер-реестр

Вопрос:

Я использую репозиторий JFrog в качестве своего частного реестра. И я указал секрет для аутентификации с помощью JFrog. Но в нем говорится

 Failed to pull image "private_registry/image_name": rpc error: code = Unknown desc = failed to pull and unpack image "private_registry/image_name": failed to resolve reference "": failed to authorize: failed to fetch oauth token: unexpected status: 401 Unauthorized
  Warning  Failed     2s (x2 over 14s)  kubelet, worker-0  Error: ErrImagePull
  

Pod-Def.yml

Я тоже создал секретный файл. Но все же он не извлекает изображение. Когда я делаю docker image pull private_registry/image_name , изображение извлекается.

Комментарии:

1. Из сообщения ясно, что он не может пройти проверку подлинности. можете ли вы предоставить секрет. yaml, который вы создали? (маскировка URL-адреса артефакта и creds)

2. Модуль должен находиться в том же пространстве имен, что и секрет. Проверьте также оба пространства имен.

3. Вы получите ошибки, если отправите подобный файл PNG в Kubernetes. Можете ли вы отредактировать вопрос, чтобы заменить изображение фактическим текстовым содержимым отправляемого вами файла YAML?

4. Привет, ребята, произошла ошибка с секретом. Я исправил ошибку. Теперь это работает, спасибо

5. @SaikatChakrabortty поскольку вы были тем человеком, который выявил проблему в этом вопросе, пожалуйста, предоставьте свой комментарий в качестве ответа для лучшей наглядности.

Ответ №1:

Из вопроса ясно, что по какой-то причине он не может пройти проверку подлинности, это может быть неправильная настройка секрета, также возможно, что используемые учетные данные являются / недействительными.

Поскольку secret.yaml файл отсутствует, он не знает о формате.

В этом случае я бы посоветовал рассмотреть 2 вещи

  1. Проверьте правильность учетных данных. (В этом случае, вероятно, вы можете использовать docker pull after docker login с теми же учетными данными)

Если вам удастся успешно извлечь изображение, взгляните на следующий пункт.

  1. При этом у вас есть проверка правильности способа настройки или передачи учетных данных на диаграмме.

Существуют разные способы передачи учетных данных в разных случаях, вы можете взглянуть на этот официальный документ. и здесь, в devops exchange, ответ также может помочь получить некоторое представление.

и вот как secret.yaml выглядит мой:

 ---
apiVersion: v1
kind: Secret
metadata:
  name: {{ .Chart.Name }}-docker-credentials
  namespace: {{ .Release.Namespace }}
  labels:
    app: {{ .Chart.Name }}
    chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
    release: "{{ .Release.Name }}"
type: kubernetes.io/dockercfg
data:
  .dockercfg: {{ "{".Values.REGISTRY.URL>>/":{"username":".Values.REGISTRY.USER_NAME>>","password":".Values.REGISTRY.PASSWORD>>","email":".Values.REGISTRY.EMAIL>>","auth":".Values.REGISTRY.AUTH_TOKEN>>"}}" | b64enc | quote }}


  

в развертываниях, которые я делаю:

 spec:
   imagePullSecrets:
      - name: {{ .Chart.Name }}-docker-credentials
  

Поскольку вы уже решили, надеюсь, это поможет кому-то еще.😃

Комментарии:

1. сработало для меня, я добавил imagePullSecrets 🙂