Я пытаюсь развернуть приложение через kubectl, используя образ, хранящийся в Codefresh. У меня он отлично работает, когда я помещаю образ в общедоступный реестр.
Проблема в том, что когда я применяю файл deployment.yaml, я получаю сообщение об ошибке «ImagePullBackOff» в модулях. Я предполагаю, я думаю правильно, что это потому, что мне нужен секрет, чтобы иметь доступ к моему образу Codefresh.
Это контейнерная часть моего текущего развертывания.yaml:
spec:
containers:
- name: dockapp
#States the image that will be put inside the pod. Secret to get access is declared below
#registry.hub.docker.com/jamiedovu/dockapp:latest
image: r.cfcr.io/jamiew87/my-app-image:master
ports:
- containerPort: 8080
name: http
imagePullSecrets:
- name: regcred
Мой вопрос в том, что мне нужно указать в секрете «regcred», чтобы иметь возможность подключиться к этому частному реестру. Документация Kubernetes демонстрирует только то, как это сделать для докера.
Я думаю это объясняется в документах.
export DOCKER_REGISTRY_SERVER=r.cfcr.io
export DOCKER_USER=YOUR_USERNAME
export DOCKER_PASSWORD=YOUR_REGISTRY_PASSWORD
export DOCKER_EMAIL=YOUR_EMAIL
kubectl create secret docker-registry cfcr\
--docker-server=$DOCKER_REGISTRY_SERVER\
--docker-username=$DOCKER_USER\
--docker-password=$DOCKER_PASSWORD\
--docker-email=$DOCKER_EMAIL
Для людей в будущем с проблемами, Репозиторий codefresh — это настоящий репозиторий докеров. Незнание этого доставляло мне проблемы. Таким образом, в местах docker-username и т. д. вы указываете свои учетные данные для обновления кода, а вместо пароля вы указываете секрет, который вы генерируете в коде. Это дает вам доступ к репозиторию r.cfcr.io.
ОК, эта часть помогает. Я не вхожу в codefresh напрямую, я использую Oauth через Google, что означает, что у меня нет пароля для codefresh, так что бы я вставил в это поле?