У нас есть установка Docker Swarm на четырех машинах aws ec2 ubuntu.
Двое из них исполняют обязанности менеджеров.
Теперь вместо того, чтобы управлять собой, мы хотим портировать на управляемый сервис, такой как aks/eks для kubernetes.
Я пока ничего не могу найти, поэтому решил перенести наши рабочие нагрузки в kubernetes.
В рамках этого мы запускаем команду службы docker для разных баз данных, поэтому всякий раз, когда требуется тестовая база данных (postgres, oracle, mysql и т. д.), мы запускаем команду в docker swarm для создания службы и получаем случайный порт, который мы подключиться с помощью публичного ip менеджера.
Пример:
для постгреса:
служба docker create --name postgres_31 -p target=5432 -e POSTGRES_PASSWORD=mysecretpassword -e POSTGRES_USER=admin -e POSTGRES_DB=testdb -d postgres:9.6.18
Вышеуказанное создаст случайный порт для postgres для порта 5432.
как показано ниже, он сгенерировал 30048
Таким образом, пользователь подключается к общедоступному IP-адресу узла менеджера и порту 30048, который будет перенаправляться на порт 5432 базы данных.
докер сервис лс
p45fazswicxc postgres_31 реплицировано 1/1 postgres:13 *:30048->5432/tcp
Таким образом, мы использовали для создания нескольких баз данных postgres (или других баз данных) в рое (в целях тестирования для команды разработчиков).
Как воспроизвести эту среду в kubernetes?
В kubernetes кажется, что он генерирует отдельный общедоступный IP-адрес для службы типа балансировщика нагрузки для каждого развертывания, но нам нужен один.
Я думал о том, чтобы сохранить лазурный балансировщик нагрузки извне и перенаправить все, но я думаю, что конфигурация предназначена только для http и может быть только для одного порта, а не для нескольких случайных портов, поправьте меня, если я ошибаюсь.