如果我在本地 Kubernetes 上运行的 pod 旁边安装了数据库,那么我的应用程序将使用什么数据库?

如果我在本地 Kubernetes 上运行的 pod 旁边安装了数据库,那么我的应用程序将使用什么数据库?

我已经mysql在我的 Ubuntu 机器上安装了。我还在本地运行Kubernetes并部署了一个mysql部署Kubernetes,可以使用命令访问它kubectl exec -it mysql-b4769786-5hf4m sh,然后mysql -p

我现在有点困惑。我不知道我是否有两个独立的数据库,一个在我的操作系统上本地运行,另一个也在本地运行,但在我的 Kubernetes 集群上?如果是这样,我如何访问它们?我怎么知道我正在使用的 shell 连接到 Kubernetes mysql 还是我的操作系统 mysql?

或者当我编写 NodeJS 应用程序时,它会连接到安装在 Ubuntu 上的 mysql 还是在本地 Kubernetes 上运行的 mysql pod?

答案1

你确实有两个不同的数据库。容器甚至可以有完全不同的操作系统(基础镜像)。

您可以通过运行一个简单的测试来仔细检查:

  • 在 MySQL 容器内创建一个“容器”数据库

  • 在另一个 MySQL 实例上运行 SHOW DATABASES;。你不应该找到任何东西。

答案2

你有两个 mysql 数据库:一个在你的 Ubuntu 机器上,另一个在 kubernetes 中 如果您想从 Ubuntu 机器上使用 kubernetes 上的 mysql,则需要创建一个 Nodeport。如果您不公开 mysql 服务,则 Ubuntu 机器上的本地应用程序将无法连接到 kubernetes mysql pod。如果您公开 mysql pod,请使用另一个端口来避免 mysql 问题。

相关内容