gpt4 book ai didi

mysql - 使用具有 mysql 和 minikube 的本地 docker 镜像

转载 作者:行者123 更新时间:2023-11-29 16:50:25 24 4
gpt4 key购买 nike

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

Mint version 19, 
Code name : Tara,
PackageBase : Ubuntu Bionic
Cinnamon (64-bit)
  1. 我有使用 spring boot 和 mysql 编写的 webservice。

  2. 它在本地运行良好。-经过验证和测试...使用 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-standalone 中拥有 mysql 镜像。

  • 我启动了 minikube 并检查了 pod 和部署
  • xxxxxxxxx:~$ pwd
    /home/sj
    xxxxxxxxxx:~$ minikube start
    xxxxxxxxxx:~$ kubectl get pods
    xxxxxxxxxx:~$ kubectl get deployments
    xxxxxxxxxx:~$ eval $(minikube docker-env)

    现在,当我检查 docker 镜像时,看起来像 README描述,它重用了 Minikube 的 Docker 守护进程 eval $(minikube docker-env) .

  • 根据this链接 我在 minikube 上设置了 mysql。这就是我在 Pod、部署和服务中看到的内容
  • xxxxxxxxxx:~$ kubectl get pods
    NAME READY STATUS RESTARTS AGE
    mysql-6c57cd4d76-gxb7g 1/1 Running 1 9d

    xxxxxxxxxx:~$ kubectl get deployments
    NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
    mysql 1 1 1 1 8d

    xxxxxxxxxx:~$ kubectl get services
    NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
    kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 9d
    mysql ClusterIP None <none> 3306/TCP 8d
  • 现在我想将第 1 步中的相同 Web 服务部署到 kubernetes(minikube)。我转到有 dockerfile 的目录并运行构建命令,如下所示:
  • xxxxxxxxx:/directory$ docker build . -t users-mysql-kube:V1

    验证我是否可以在 minikube 内的 deamon docker 中看到图像。

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

    以下步骤我只是出于测试目的进行了尝试。我可能错了。请就此提出您的建议

  • 正如第 2 步中提到的,我运行 docker 镜像并将其链接到 mysql 的方式,我们如何在 minikube 内运行第 5 步中创建的镜像并将其链接到已部署的 mysql?是不是类似:
  • xxxxxxxxxxx:~$ kubectl run umk-01 --image=users-mysql-kube:V1 --image-pull-policy=Never
  • 部署镜像后,如何公开它?我应该这样做:
  • xxxxxxxxxxxxx:~$ kubectl expose deployment umk-01 --type=NodePort --port=8086

    xxxxxxxxxxxxx:~$ kubectl get services
    NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
    kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 9d
    mysql ClusterIP None <none> 3306/TCP 8d
    umk-01 NodePort 10.100.105.58 <none> 8086:30004/TCP 6s
  • 我已尝试第 6 步和第 7 步,然后尝试了以下命令,但没有成功。
  • xxxxxxxxxxxxx:~$ minikube service umk-01 --url
    Waiting, endpoint for service is not ready yet...

    这意味着步骤#6 和 7 中有问题。有人可以帮忙吗?

    最佳答案

    我不确定您是否通过 Minikube 获得了 NodePort 服务的服务 URL。您可以直接访问 Minikube IP 和端口 30004 上的服务。只要确保您没有防火墙阻止该端口即可。

    关于mysql - 使用具有 mysql 和 minikube 的本地 docker 镜像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52846587/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com