У меня есть приложение Jhipster, которое я хочу развернуть в Kubernetes. Я использовал команду jhipster kubernetes
для создания всех объектов k8s и предоставил репозиторий Docker Hub, в который их можно было отправить. Репозиторий Docker Hub является частным.
Объект развертывания выглядит так:
apiVersion: apps/v1
kind: Deployment
metadata:
name: demodevices
namespace: demo
spec:
replicas: 1
selector:
matchLabels:
app: demodevices
version: 'v1'
template:
metadata:
labels:
app: demodevices
version: 'v1'
spec:
initContainers:
- name: init-ds
image: busybox:latest
command:
- '/bin/sh'
- '-c'
- |
while true
do
rt=$(nc -z -w 1 demodevices-postgresql 5432)
if [ $? -eq 0 ]; then
echo "DB is UP"
break
fi
echo "DB is not yet reachable;sleep for 10s before retry"
sleep 10
done
containers:
- name: demodevices-app
image: myRepo/demo:demodevices-1.0.0
env: ...
resources: ...
ports: ...
readinessProbe: ...
livenessProbe: ...
imagePullSecrets:
- name: regcred
Поскольку я использовал частное репозиторий Docker Hub, я добавил imagePullSecret
. Секрет создается и развертывается в k8s.
При применении файла в стручках я вижу следующие сообщения:
Warning Failed <invalid> (x4 over <invalid>) kubelet, k8node1 Failed to pull image "busybox:latest": rpc error: code = Unknown desc = Error response from daemon: Get https://registry-1.docker.io/v2/library/busybox/manifests/latest: unauthorized: incorrect username or password
Warning Failed <invalid> (x4 over <invalid>) kubelet, k8node1 Error: ErrImagePull
Normal BackOff <invalid> (x6 over <invalid>) kubelet, k8node1 Back-off pulling image "busybox:latest"
Warning Failed <invalid> (x6 over <invalid>) kubelet, k8node1 Error: ImagePullBackOff
Как я понял, он пытается вытащить образ busybox: latest, используя учетные данные для частного репозитория. Ожидаемый результат - вытащить busybox: latest без ошибок и вытащить мой собственный образ из моего личного репо. Как исправить вышеуказанную проблему?