Какую базу данных будут использовать мои приложения, если у меня есть локально установленная база данных, а ее модуль работает на локальном Kubernetes?

Какую базу данных будут использовать мои приложения, если у меня есть локально установленная база данных, а ее модуль работает на локальном Kubernetes?

Я установил mysqlна своей машине Ubuntu. У меня также есть локально запущенное Kubernetesи развернутое mysqlразвертывание на Kubernetesи я могу получить к нему доступ с помощью kubectl exec -it mysql-b4769786-5hf4m shкоманды, затем mysql -p.

Я немного запутался. Я не знаю, у меня две отдельные базы данных, одна из которых работает локально на моей ОС, а другая тоже работает локально, но на моем кластере Kubernetes? Если так, как мне добраться до каждой из них? Как мне узнать, что оболочка, с которой я работаю, подключена к Kubernetes mysql или к моей ОС mysql?

Или когда я пишу приложение NodeJS, будет ли оно подключаться к MySQL, установленному в Ubuntu, или к модулю MySQL, работающему в локальном Kubernetes?

решение1

У вас действительно есть две разные базы данных. Контейнер может даже иметь совершенно другую операционную систему (базовый образ).

Вы можете проверить это еще раз, выполнив простой тест:

  • создать «контейнерную» базу данных внутри контейнера MySQL

  • запустите SHOW DATABASES; на другом экземпляре MySQL. Вы ничего не должны найти.

решение2

У вас есть две базы данных MySQL: одна на машине Ubuntu и другая в Kubernetes.НО Если вы хотите использовать mysql на kubernetes с вашего компьютера Ubuntu, вам нужно создать Nodeport. Если вы не выставите службу mysql, ваше локальное приложение на вашем компьютере Ubuntu не сможет подключиться к kubernetes mysql pod. Если вы выставите mysql pod, используйте другой порт, чтобы избежать проблем с mysql.

Связанный контент