Я безуспешно пытался создать развертывание образа docker в кластере Kubernetes, мой файл deploy.yaml выглядит так:
apiVersion: v1
kind: Pod
metadata:
name: application-deployment
labels:
app: application
spec:
serviceAccountName: gitlab
automountServiceAccountToken: false
containers:
- name: application
image: example.org:port1/foo/bar:latest
ports:
- containerPort: port2
volumes:
- name: foo
secret:
secretName: regcred
Но не удается получить образ.
Не удалось получить изображение "example.org:port1/foo/bar:latest": rp c error: code = Unknown des c = Ответ об ошибке от демона: Получить https://example.org : port1 / v2 / foo / bar / manifest / latest : отказано: доступ запрещен
Секрет, используемый в deployment.yaml
, был создан следующим образом:
kubectl create secret docker-registry regcred --docker-server=${CI_REGISTRY} --docker-username=${CI_REGISTRY_USER} --docker-password=${CI_REGISTRY_PASSWORD} --docker-email=${GITLAB_USER_EMAIL}
Попытка # 1: добавление imagePullSecrets
...
imagePullSecrets:
- name: regcred
приводит к:
Не удалось получить изображение "example.org:port1/foo/bar:latest ": rp c error: code = Unknown des c = Ошибка ответа от демона: Get https://example.org: port1 / v2 / foo / bar / manifest / latest : неавторизовано: HTTP Basi c: Доступ запрещен
Решение:
Я создал токен развертывания в Настройки> Репозиторий> Развертывание токенов> (создан с областью read_registry )
И добавил заданные значения в переменные окружения, и теперь соответствующая строка выглядит следующим образом:
kubectl create secret docker-registry regcred --docker-server=${CI_REGISTRY} --docker-username=${CI_DEPLOY_USER} --docker-password=${CI_DEPLOY_PASSWORD}
У меня есть проблемная строка c из учебников и документации Gitlab, где они ' мы описали токены развертывания, но в дальнейшем использовали проблемную строку c в примерах.