Docker sürü moduyla özel fiziksel ağları kullanma


11

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.

Basitleştirilmiş diyagram görselleştirme kurulumuna bağlantı

Ö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.


1
Aynı veri merkezindeki kardeşlerin hedef iplerini özel ağ ips'lerine yeniden yazmak için iptables'ı kullanabilirsiniz. Ayrıca, bu
sunucuda

Evet, biraz daha kazmak beni aynı sonuca götürdü. Bu bir güçlük olacak, gerçekten bunu benim için otomatik olarak yapmak için bir araca ihtiyacım olacak (bir kümedeki / DC'deki tüm düğümler arasındaki tüm IP'leri yeniden yazın). Sonuçta, N düğümleri için (N-1) ^ 2 iptables kuralına ihtiyacım var.

Yanıtlar:


1

(Muhtemelen bir yorum olmalı, ancak henüz yorum yapamaz)

Kümeyi önyüklemek için ana bilgisayar adlarını ve / veya DNS'yi kullanamayacağınız için, küme değiş tokuş sal verilerini doğru ölçülmemiş ağda zorlamanın bir yolunu göremiyorum, ancak bir arabirim adı kullanabileceğinizi görüyorum. İlginçtir ki, bu belirtilen değil sürüsü dokümanlar ancak sorunu hata mesajı bir IP veya arayüz beklediğini gösteriyor.

Küme üyelerini özel arabirim adını kullanarak reklam verecek şekilde ayarlayıp ayarlayamayacağınızı merak ediyorum, böylece en fazla trafiği istediğiniz şekilde elde edersiniz.

Şu anda kendimi test edemiyorum, ancak önümüzdeki hafta gelecek bir proje için benzer bir sorunla karşılaşacağım.


Teşekkürler, gelecek hafta bir şey bulursanız lütfen bize bildirin. Bağlandığınız sorun, 'eski' Docker sürüsü işlevselliğiyle ilgilidir, oysa yerleşik ve harici bir anahtar / değer deposu gerektirmeyen yeni Docker sürüsü modunu kullanıyorum (ve kullanmanızı öneririm) .
Ede
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.