我在我的机器上设置了docker,还有minikube,里面有docker,所以我可能在不同的VM上运行了两个docker实例
我构建一个图像并标记它,然后将其推送到本地注册表,它成功推送,我也可以从注册表中拉出它也是当我运行curl得到标签列表我得到结果,这是我做的
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
Run Code Online (Sandbox Code Playgroud)
以上所有步骤都运行正常,没有任何问题.
我的问题是当我运行minikube并尝试在其中的本地注册表中访问此图像
所以,当我运行下一个命令
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
Run Code Online (Sandbox Code Playgroud)
在最后一步(第4点),它给了我下一条消息
curl:(7)无法连接到127.0.0.1端口5000:连接被拒绝
因此,我可以从我的机器访问图像注册表,但不能从minikube访问,当我在minikube上使用Kubernetes部署此图像时,我当然会遇到问题,并且由于无法连接到http://127.0.0.1:5000而导致部署失败
你能帮我配置minikube来查看我的本地注册表,这样我的问题就能解决,然后我可以成功地使用kubernetes将图像部署到minikube吗?
UPDATE
我正在使用这个yaml文件(我命名为ConsolePre.yaml)来使用kubernetes部署我的图像
apiVersion: v1
kind: Service
metadata:
name: tripbru-console
labels:
app: tripbru-console
spec:
ports:
- port: 9080
targetPort: 9080
nodePort: …Run Code Online (Sandbox Code Playgroud) 我正在尝试运行我用Kubernetes在本地构建的docker镜像.
这是我的命令行:
kubectl run myImage --image=myImage --port 3030 --image-pull-policy=IfNotPresent
Run Code Online (Sandbox Code Playgroud)
我见过很多人说我们需要添加--image-pull-policy=IfNotPresent标志,这样Kubernetes可以在本地查找图像而不是Docker Hub,但我仍然会收到此错误(来自pod,服务和部署的Minikube仪表板).
无法提取图像"myImage":rpc错误:code = Unknown desc =来自守护程序的错误响应:对myImage拉取访问权限,存储库不存在或者可能需要"docker login"
但看起来这里还有另一个问题,我也尝试过--image-pull-policy=Never,它也不起作用.
任何的想法?
Net Core 应用程序映像,我正在尝试在本地 kubernetes 中创建部署。我创建了 docker 镜像,如下所示。
docker tag microservicestest:dev microservicestest .
docker build -t microservicestest .
docker run -d -p 8080:80 --name myapp microservicetest
Run Code Online (Sandbox Code Playgroud)
然后我创建了部署,如下所示。
kubectl run microservicestest-deployment --image=microservicestest:latest --port 80 --replicas=3
kubectl expose deployment microservicestest-deployment --type=NodePort
Run Code Online (Sandbox Code Playgroud)
然后当我看到 Kubectl get pods 时,我看到以下错误
以下是我运行 docker images 时的输出
下面是输出
apiVersion: apps/v1
kind: Deployment
metadata:
annotations:
deployment.kubernetes.io/revision: "1"
creationTimestamp: "2020-09-22T04:29:14Z"
generation: 1
labels:
run: microservicestest-deployment
name: microservicestest-deployment
namespace: default
resourceVersion: "17282"
selfLink: /apis/apps/v1/namespaces/default/deployments/microservicestest-deployment
uid: bf75410a-d332-4016-9757-50d534114599
spec:
progressDeadlineSeconds: 600
replicas: 3
revisionHistoryLimit: 10 …Run Code Online (Sandbox Code Playgroud)