#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
Я тоже создал секретный файл. Но все же он не извлекает изображение. Когда я делаю docker image pull private_registry/image_name
, изображение извлекается.
Комментарии:
1. Из сообщения ясно, что он не может пройти проверку подлинности. можете ли вы предоставить секрет. yaml, который вы создали? (маскировка URL-адреса артефакта и creds)
2. Модуль должен находиться в том же пространстве имен, что и секрет. Проверьте также оба пространства имен.
3. Вы получите ошибки, если отправите подобный файл PNG в Kubernetes. Можете ли вы отредактировать вопрос, чтобы заменить изображение фактическим текстовым содержимым отправляемого вами файла YAML?
4. Привет, ребята, произошла ошибка с секретом. Я исправил ошибку. Теперь это работает, спасибо
5. @SaikatChakrabortty поскольку вы были тем человеком, который выявил проблему в этом вопросе, пожалуйста, предоставьте свой комментарий в качестве ответа для лучшей наглядности.
Ответ №1:
Из вопроса ясно, что по какой-то причине он не может пройти проверку подлинности, это может быть неправильная настройка секрета, также возможно, что используемые учетные данные являются / недействительными.
Поскольку secret.yaml
файл отсутствует, он не знает о формате.
В этом случае я бы посоветовал рассмотреть 2 вещи
- Проверьте правильность учетных данных. (В этом случае, вероятно, вы можете использовать
docker pull
afterdocker login
с теми же учетными данными)
Если вам удастся успешно извлечь изображение, взгляните на следующий пункт.
- При этом у вас есть проверка правильности способа настройки или передачи учетных данных на диаграмме.
Существуют разные способы передачи учетных данных в разных случаях, вы можете взглянуть на этот официальный документ. и здесь, в 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
🙂