Що таке Docker App Containerization і як використовувати оверлейні мережі для зв'язку контейнерів на різних хостах?
Коли інфраструктура виростає за межі одного фізичного або віртуального сервера, стандартної мостової мережі Docker стає недостатньо. Для забезпечення безпечної та стабільної взаємодії між контейнерами, запущеними на зовсім різних фізичних машинах, застосовуються оверлейні мережі. Ця технологія створює віртуальний мережевий шар поверх наявної фізичної інфраструктури за допомогою інкапсуляції трафика.
Оверлейні мережі працюють на базі вбудованих механізмів оркестрації, таких як Docker Swarm, або сторонніх мережевих плагінів, включаючи Calico і Flannel. Вони використовують протокол VXLAN для загортання пакетів даних контейнерів у звичайні UDP-пакети, які безперешкодно передаються між фізичними хостами через стандартні мережеві інтерфейси.
Процес налаштування розподіленої взаємодії виглядає таким чином:
Головною перевагою оверлейних мереж є повна прозорість для розробників. Додатку не потрібно знати, на якому саме фізичному сервері запущено суміжний мікросервіс, оскільки мережевий шар бере на себе всю роботу з інкапсуляції, маршрутизації та шифрування трафика. Це дозволяє масштабувати складні розподілені системи на будь-яку кількість машин без зміни вихідного коду програмного забезпечення.