ローカル Kubernetes で実行されているポッドの横にローカルにインストールされたデータベースがある場合、アプリケーションはどのデータベースを使用するのでしょうか?

ローカル Kubernetes で実行されているポッドの横にローカルにインストールされたデータベースがある場合、アプリケーションはどのデータベースを使用するのでしょうか?

mysqlUbuntu マシンにインストールしました。また、ローカルで実行しKubernetesてデプロイしたmysqlデプロイメントもあり、コマンドKubernetesを使用してアクセスできます。kubectl exec -it mysql-b4769786-5hf4m shmysql -p

ちょっと混乱しています。2 つの別々のデータベースがあるかどうかわかりません。1 つは OS 上でローカルに実行され、もう 1 つは Kubernetes クラスター上でローカルに実行されます。ある場合、それぞれにアクセスするにはどうすればよいでしょうか。使用しているシェルが Kubernetes mysql に接続されているのか、それとも OS mysql に接続されているのか、どうすればわかるのでしょうか。

または、NodeJS アプリを作成すると、Ubuntu にインストールされている mysql に接続されますか、それともローカル Kubernetes で実行されている mysql ポッドに接続されますか?

答え1

確かに、2 つの異なるデータベースがあります。コンテナにはまったく異なるオペレーティング システム (ベース イメージ) が存在する可能性もあります。

簡単なテストを実行して再確認できます:

  • MySQLコンテナ内に「コンテナ」データベースを作成する

  • 他の MySQL インスタンスで SHOW DATABASES; を実行します。何も見つからないはずです。

答え2

2つのMySQLデータベースがあります。1つはUbuntuマシン上に、もう1つはKubernetesにあります。しかし Ubuntu マシンから Kubernetes 上の mysql を使用する場合は、Nodeport を作成する必要があります。mysql サービスを公開しないと、Ubuntu マシン上のローカル アプリケーションは Kubernetes mysql pod に接続できません。mysql pod を公開する場合は、mysql の問題を回避するために別のポートを使用します。

関連情報