
我已經安裝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 實例上。你不應該發現任何東西。
答案2
你有兩個 mysql 資料庫:一個在你的 Ubuntu 機器上,另一個在 kubernetes 上但 如果你想要在 Ubuntu 機器上的 kubernetes 上使用 mysql,你需要建立一個 Nodeport。如果您不公開 mysql 服務,您的 Ubuntu 電腦上的本機應用程式將無法連線到 kubernetes mysql pod。如果暴露 mysql pod,請使用另一個連接埠以避免 mysql 問題。