У меня есть устаревшее кластерное приложение, которое я пытаюсь развернуть в kubernetes. Узлы в кластере находят друг друга с помощью широковещательной рассылки UDP. Я не могу изменить это поведение по разным причинам.
При развертывании на докере это будет сделано путем создания общей сети (т. е. docker network create --internal mynet
, ведущей к подсети, например, 172.18.0.0/16) и подключения контейнеров, содержащих кластерные узлы, к одной и той же сети (docker network connect mynet instance1
и docker network connect mynet instance2
). Затем каждый запуск экземпляра будет периодически транслировать свой IP-адрес в этой сети, используя 172.18.255.255, пока они не сформируют кластер. Несколько таких кластеров могут находиться в одном и том же пространстве имен kubernetes, поэтому я бы предпочел создать свою собственную «частную сеть» только для этих модулей, чтобы избежать конфликтов портов.
Есть ли способ создать такую сеть в kubernetes или иным образом обмануть приложение, заставив его поверить, что оно подключено к такой сети (при условии, что IP-адреса других узлов известны)? Кластер kubernetes, на котором я работаю, использует Calico.