用minikube使用具有mysql的本地docker映像

t2a7ltrp  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(427)

在我的笔记本电脑上,我有linux mint操作系统。详情如下:

  1. Mint version 19,
  2. Code name : Tara,
  3. PackageBase : Ubuntu Bionic
  4. Cinnamon (64-bit)

我使用springboot和mysql编写了webservice。
在当地运作良好。-经过验证和测试。。。使用dockerfile我创建了docker图像。从dockerfile的目录运行命令- docker build . -t users-mysql-docker 运行创建的docker映像(users mysql docker)。 docker run -p 8086:8086 --name users-mysql-app --link mysql-standalone:mysql -d users-mysql-docker (在这个命令中,我们将自己的图像与独立的mysql链接起来。)
我已经在docker和容器mysql独立的mysql图像。
我启动了minikube,检查了吊舱和部署

  1. xxxxxxxxx:~$ pwd
  2. /home/sj
  3. xxxxxxxxxx:~$ minikube start
  4. xxxxxxxxxx:~$ kubectl get pods
  5. xxxxxxxxxx:~$ kubectl get deployments
  6. xxxxxxxxxx:~$ eval $(minikube docker-env)

现在,当我检查docker映像时,就像自述文件所描述的那样,它使用 eval $(minikube docker-env) .
根据这个链接,我在minikube上安装了mysql。这就是我在pods、部署和服务中看到的

  1. xxxxxxxxxx:~$ kubectl get pods
  2. NAME READY STATUS RESTARTS AGE
  3. mysql-6c57cd4d76-gxb7g 1/1 Running 1 9d
  4. xxxxxxxxxx:~$ kubectl get deployments
  5. NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
  6. mysql 1 1 1 1 8d
  7. xxxxxxxxxx:~$ kubectl get services
  8. NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
  9. kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 9d
  10. mysql ClusterIP None <none> 3306/TCP 8d

现在我想从步骤1部署相同的webservice到kubernetes(minikube)。我去了dockerfile所在的目录,运行了构建命令,如下所示:
:/directory$docker生成-t用户mysql-kube:v1
验证了我是否可以在minikube内的deamon docker中看到图像。

  1. xxxxxxxxxx:~$ docker images
  2. REPOSITORY TAG IMAGE ID CREATED SIZE
  3. users-mysql-kube V1 53152583b2b8 2 seconds ago 652MB
  4. openjdk 8 81f83aac57d6 5 weeks ago 624MB
  5. mysql 5.7 563a026a1511 5 weeks ago 372MB
  6. k8s.gcr.io/coredns 1.2.2 367cdc8433a4 6 weeks ago 39.2MB
  7. k8s.gcr.io/kubernetes-dashboard-amd64 v1.10.0 0dab2435c100 7 weeks ago 122MB
  8. k8s.gcr.io/kube-proxy-amd64 v1.10.0 bfc21aadc7d3 6 months ago 97MB
  9. k8s.gcr.io/kube-apiserver-amd64 v1.10.0 af20925d51a3 6 months ago 225MB
  10. k8s.gcr.io/kube-scheduler-amd64 v1.10.0 704ba848e69a 6 months ago 50.4MB
  11. k8s.gcr.io/kube-controller-manager-amd64 v1.10.0 ad86dbed1555 6 months ago 148MB
  12. k8s.gcr.io/etcd-amd64 3.1.12 52920ad46f5b 7 months ago 193MB
  13. k8s.gcr.io/kube-addon-manager v8.6 9c16409588eb 7 months ago 78.4MB
  14. k8s.gcr.io/k8s-dns-dnsmasq-nanny-amd64 1.14.8 c2ce1ffb51ed 9 months ago 41MB
  15. k8s.gcr.io/k8s-dns-sidecar-amd64 1.14.8 6f7f2dc7fab5 9 months ago 42.2MB
  16. k8s.gcr.io/k8s-dns-kube-dns-amd64 1.14.8 80cc5ea4b547 9 months ago 50.5MB
  17. k8s.gcr.io/pause-amd64 3.1 da86e6ba6ca1 9 months ago 742kB
  18. gcr.io/k8s-minikube/storage-provisioner v1.8.1 4689081edb10 11 months ago 80.8MB

下面的步骤我就试着作为测试目的。我可能错了。请提供你的建议
如第2步所述,我运行docker映像并将其链接到mysql的方式是,如何在minikube内部运行第5步中创建的映像并将其链接到部署的mysql?是不是有点像:

  1. xxxxxxxxxxx:~$ kubectl run umk-01 --image=users-mysql-kube:V1 --image-pull-policy=Never

图像部署后,如何曝光?我应该这样做吗:

  1. xxxxxxxxxxxxx:~$ kubectl expose deployment umk-01 --type=NodePort --port=8086
  2. xxxxxxxxxxxxx:~$ kubectl get services
  3. NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
  4. kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 9d
  5. mysql ClusterIP None <none> 3306/TCP 8d
  6. umk-01 NodePort 10.100.105.58 <none> 8086:30004/TCP 6s

我尝试了第6步和第7步,然后尝试下面的命令,但没有工作。

  1. xxxxxxxxxxxxx:~$ minikube service umk-01 --url
  2. Waiting, endpoint for service is not ready yet...

这意味着第6步和第7步出了问题。有人能帮忙吗?

zbsbpyhn

zbsbpyhn1#

我不知道你是否得到一个服务的网址为nodeport服务与minikube。您可以直接访问minikube ip和端口30004上的服务。只要确保你没有防火墙阻止端口。

相关问题