
Я установил 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.