(Kubernetes + Minikube) no puede obtener la imagen acoplable del registro local
Tengo docker de configuración en mi máquina y también minikube que tiene docker dentro, por lo que probablemente tenga dos instancias de docker ejecutándose en VM diferentes
Construyo una imagen y la etiqueto, luego la empujo al registro local y la empujó con éxito y también puedo extraerla del registro y también cuando ejecuto curl para obtener la lista de etiquetas obtuve el resultado, y esto es lo que hice
1- docker build -t 127.0.0.1:5000/eliza/console:0.0.1 .
2- docker run -d -p 5000:5000 --name registry registry:2
3- docker tag a3703d02a199 127.0.0.1:5000/eliza/console:0.0.1
4- docker push 127.0.0.1:5000/eliza/console:0.0.1
5- curl -X GET http://127.0.0.1:5000/v2/eliza/console/tags/list
Todos los pasos anteriores funcionan bien sin ningún problema.
Mi problema es cuando ejecuto minikube e intento acceder a esta imagen en el registro local dentro de ella
Entonces cuando ejecuto los siguientes comandos
1- sudo minikube start --insecure-registry 127.0.0.1:5000
2- eval $(minikube docker-env)
3- minikube ssh
4- curl -X GET http://127.0.0.1:5000/v2/eliza/console/tags/list
en el último paso (punto 4) me dio el siguiente mensaje
curl: (7) Error al conectar con el puerto 5000 de 127.0.0.1: conexión rechazada
Por lo tanto, puedo acceder al registro de imágenes desde mi máquina, pero no desde minikube, lo que, por supuesto, me causa problemas cuando implemento esta imagen usando Kubernetes en minikube y la implementación falla debido a que no puedo conectarme ahttp://127.0.0.1:5000
¿Me pueden ayudar a configurar minikube para ver mi registro local para que mi problema se resuelva y luego pueda implementar la imagen en minikube usando kubernetes con éxito?
ACTUALIZAR
Estoy usando este archivo yaml (lo llaméConsolePre.yaml) para desplegar mi imagen usando kubernetes
apiVersion: v1
kind: Service
metadata:
name: tripbru-console
labels:
app: tripbru-console
spec:
ports:
- port: 9080
targetPort: 9080
nodePort: 30181
selector:
app: tripbru-console
tier: frontend
type: NodePort
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: tripbru-console
labels:
app: tripbru-console
spec:
strategy:
type: Recreate
template:
metadata:
labels:
app: tripbru-console
tier: frontend
spec:
containers:
- image: docker.local:5000/eliza/console:0.0.1
name: tripbru-console
ports:
- containerPort: 9080
name: tripbru-console
y cuando ejecuto el siguiente comando para aplicar cambios
sudo kubectl apply -f /PATH_TO_YAML_FILE/ConsolePre.yaml
el resultado es
NAME READY STATUS RESTARTS AGE
po/tripbru-console-1655054400-x3g87 0/1 ErrImagePull 0 1m
y cuando ejecuto el comando describe
sudo kubectl describe pod tripbru-console-1655054400-x3g87
encontré el siguiente mensaje en el resultado de la descripción
Respuesta de error del daemon: {"mensaje": "Obtenerhttps: //docker.local: 5000 / v1 / _ping: marque tcp: lookup docker.local en 10.0.2.3:53: lea udp 10.0.2.15:57792-\u003e10.0.2.3:53: tiempo de espera de E / S "}
y configurédocker.local xxx.xxx.xx.4 en minikube / etc / hosts, así que no sé de dónde provienen 10.0.2.3:53 y 10.0.2.15:57792.
Entonces, ¿cómo puedo resolver este problema también?
Gracias :)