Как настроить докер для ограничения диапазона портов для раскручивания контейнеров
Мы используем Jenkins и докер для создания CI/CD. Наш Jenkins настроен как главный / подчиненный, где подчиненные распределены по разным центрам обработки данных. когда должна произойти новая сборка, мастер Jenkins идентифицирует раба в одном из DC, раскручивает эфемерный контейнер и срывает его, как только это будет сделано.
Из-за ограничений брандмауэра у нас только около 10 портов, открытых для ведомых в некоторых DC. например, Port Range: 8000 - 8010. Обычно Docker использует диапазоны портов Linux от 32768 до 61000. Проблема в том, что Jenkins master не может общаться с контейнерами, если хост-порт связан с 8000 - 8010. У подключаемого модуля Jenkins есть ограничение, где Вы не можете связать несколько портов (может быть, я ошибаюсь здесь). Я хотел бы знать, можем ли мы каким-либо образом настроить это в конце докера или в плагине док-станции Jenkins.
1 ответ
После исследований на многих форумах и общения с людьми, это невозможно или даже не рекомендуется делать. Рекомендуемая реализация для преодоления этой проблемы - перейти на Docker Swarm,
- где у вас есть только одно виртуальное облако докера
- которая заботится о том, чтобы закрутить контейнеры за кулисами и держать их готовыми к употреблению даже до того, как возникнет такая необходимость Варианты конфигурации являются гибкими.
Узнайте больше о Swarm здесь https://docs.docker.com/swarm/