Saya sedang mengerjakan pengaturan produksi dengan Docker dalam mode swarm (menggunakan Docker 17.03.1-ce). Akan ada 2 pusat data yang terlibat. Di kedua pusat data, semua mesin memiliki IP publik dan IP privat (lokal ke data center) di jaringan pribadi, sehingga akan ada 2 jaringan pribadi.
Lalu lintas jaringan melalui antarmuka jaringan pribadi adalah gratis, sedangkan lalu lintas melalui antarmuka publik tidak setelah batas tertentu (dan itu lebih lambat), jadi jika mungkin saya lebih suka lalu lintas jaringan untuk pergi ke antarmuka pribadi.
Sekarang dari apa yang saya mengerti (saya pikir), semua lalu lintas antara node Docker dalam mode swarm akan melalui antarmuka jaringan yang sama yang digunakan untuk berkomunikasi dengan master swarm, yang dalam kasus saya harus menjadi orang publik untuk membuat jaringan multi DC bisa jadi. Namun, sebagian besar lalu lintas yang diharapkan akan berada di antara node di DC yang sama, dan akan sangat menyenangkan jika Docker dapat merutekan lalu lintas melalui jaringan pribadi saya jika node sumber dan target berada di jaringan pribadi yang sama.
Saya khawatir ini mungkin tidak mungkin dilakukan karena para pembuat gerombolan tidak tahu tentang jaringan pribadi ini dan IP yang dimiliki node pada mereka.
Salah satu solusi yang bisa saya pikirkan adalah mengatur VPN dan mengerahkan segerombolan di atas itu, tapi ini menambah kompleksitas tambahan dan saya lebih suka solusi segerombolan Docker murni.
Pembaruan : seperti yang disarankan dalam komentar, dasar untuk solusi mungkin menggunakan iptables untuk merutekan lalu lintas keluar ke IP pribadi, bukan yang publik. Namun, jika saya ingin melakukan ini, masalah saya berikutnya adalah bagaimana mengelola semua aturan ini. Dengan 10 server di DC, saya perlu 10 * 9 = 90 dari mereka untuk merutekan semua lalu lintas lokal yang mungkin melalui jaringan pribadi. Saya bisa membayangkan mungkin ada alat yang bisa membantu dengan tugas seperti itu atau saya bisa membuatnya, tapi mungkin ada cara yang lebih sederhana untuk melakukan ini.