我已经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 问题。