Docker ile sürü modunda (Docker 17.03.1-ce kullanarak) bir üretim kurulumu üzerinde çalışıyorum. 2 veri merkezi yer alacak. Her iki veri merkezinde de, tüm makinelerin özel bir ağda hem genel bir IP'si hem de özel (yerelden veri merkezine) bir IP'si vardır, bu nedenle 2 özel ağ olacaktır.
Özel ağ arayüzleri üzerindeki ağ trafiği ücretsizken, genel arayüz üzerindeki trafik bir sınırdan (ve daha yavaştır) değil, bu yüzden mümkün olduğunda ağ trafiğinin özel arayüzlerin üzerinden geçmesini tercih ederim.
Şimdi anladığım kadarıyla (sanırım), sürü modunda Docker düğümleri arasındaki tüm trafik, sürü ustaları ile iletişim kurmak için kullanılan aynı ağ arayüzünden geçecek, bu da benim durumumda çoklu DC ağı yapmak için halka açık olanlar olacak mümkün. Bununla birlikte, en çok beklenen trafik aynı DC'lerde düğümler arasında olacaktır ve eğer kaynak ve hedef düğümler aynı özel ağda olursa, Docker trafiği bir şekilde özel ağlarım üzerinden yönlendirebilirse çok iyi olurdu.
Korkarım bu kutunun dışında mümkün olmayabilir çünkü sürüsü ustaları bu özel ağları ve düğümlerin üzerlerindeki IP'leri bilmiyorlar.
Düşünebileceğim bir çözüm, bir VPN kurmak ve bunun üzerine sürüyü dağıtmaktır, ancak bu ekstra karmaşıklık ekler ve saf bir Docker sürüsü çözümünü tercih ederim.
Güncelleme : bir yorumda önerildiği gibi, bir çözümün temeli, giden trafiği genel trafik yerine özel IP'lere yönlendirmek için iptables kullanıyor olabilir. Ancak, bunu yapmak istersem, bir sonraki sorunum tüm bu kuralların nasıl yönetileceği olacaktır. DC'deki 10 sunucuyla, tüm olası yerel trafiği özel ağ üzerinden yönlendirmek için 10 * 9 = 90 tanesine ihtiyacım olurdu. Böyle bir göreve yardımcı olabilecek bazı araçlar olduğunu hayal edebilirim ya da bir tane oluşturabilirim, ama belki de bunu yapmanın çok daha basit bir yolu var.