Konteynere ağda kendi adresini vermek: ne kazanırsınız, ne ödersiniz

Bir konteyneri kapı numarasıyla değil kendi adresiyle yayınlamak mümkün. Kazancı gerçek, bedeli de gerçek ve ikincisi genelde kurduktan sonra keşfediliyor.

AtlasPVE ·

Bu madde şunları karşılıyor

  • docker konteyner kendi ip adresi
  • docker macvlan nedir
  • docker macvlan host erişemiyor
  • docker konteyner ağda görünmüyor
  • docker port yerine ip adresi vermek

Varsayılan düzen şudur: konteyner makinenin adresini paylaşır, siz ona bir kapı numarası üzerinden ulaşırsınız. Basit, güvenli ve çoğu iş için yeterlidir.

Yetmediği durumlar da var ve bunlar tahmin edilebilir.

Kapı numarası ne zaman yetmez

İki uygulama aynı numarayı istiyordur. Birini başka bir numaraya taşırsınız, sonra o uygulamanın kendi ürettiği bağlantılarda o numara yoktur ve iş karışır.

Uygulama kendini ağda duyuruyordur. Yazıcı bulma, medya oynatıcı bulma, akıllı ev cihazı bulma gibi işler kendi kendini tanıtan mesajlarla çalışır. Bu mesajlar kapı eşlemesinden sağ çıkmaz: uygulama kendini duyurur ama duyurduğu adres makinenin adresidir ve karşı taraf ona ulaşamaz.

Uygulamanın yönlendirici listesinde görünmesini istiyorsunuzdur. Sabit adres vermek, ayrı bir güvenlik duvarı kuralı yazmak, trafiğini ayrı görmek için. Kapı eşlemesiyle o uygulama ağ için yoktur; sadece makine vardır.

Diğer yol: konteynere kendi kimliğini vermek

Konteyner ağda kendi donanım adresiyle görünür, yönlendiriciden kendi adresini alır, cihaz listesinde fiziksel bir aygıt gibi durur.

Bunu duyunca ilk tepki genelde "neden herkes böyle yapmıyor" oluyor. Cevabı bedelinde.

Bedel bir: makine kendi konteynerine ulaşamaz

En çok şaşırtan kısım bu ve kuranlar genelde iş bittikten sonra keşfediyor.

Ağdaki bütün cihazlar o konteynere ulaşır. Onu barındıran makine ulaşamaz.

Sebebi mantıklı: ikisi de aynı fiziksel arayüzü kullanıyor ve trafik anahtardan geri dönmüyor. Makine paketi dışarı yolluyor, paket kendi kartına geri gelmiyor.

Sonuçları gündelik: makine üzerinde çalışan bir sağlık kontrolü uygulamaya erişemez, aynı makinedeki başka bir konteyner ona bağlanamaz, yazdığınız bir betik çalışmaz. Hepsi ağ dışarıdan bakınca kusursuz görünürken olur.

Çözümü var ama ek bir parça: makinede aynı karta bağlı ikinci bir sanal arayüz açmak ve konteynerin adresine giden yolu oradan geçirmek. Kurulunca sorun kapanır, ama bu bir eklenti olduğu için unutulursa kimse anlamaz.

Bedel iki: gerçek adres harcarsınız

Her konteyner ağınızdan bir adres tüketir. On uygulama on adres demektir. Küçük bir ağda bu sınıra çabuk gelirsiniz.

Ayrıca adres bir kira ise değişebilir. Değişince ona sabitlenmiş her şey, yazdığınız kural da dahil, sessizce yanlış yere bakar.

Bedel üç: ağ kartı ve güvenlik duvarı

Kartın birden çok donanım adresini kabul etmesi gerekir. Kablosuz bağlantıların çoğu bunu yapmaz, bazı sanal ortamlar da kapalı gelir. Denemeden karar vermeyin.

Ve güvenlik duvarınız artık ağda tanımadığı bir cihaz görüyor. Sizin için o bir konteyner, kural yazan için sıradan bir aygıt. Bu bir sorun değil ama bilmeden bırakılırsa bir gün birinin kafasını karıştırır.

Adres yetmez, ad da gerekiyor

Adresi olan ama adı olmayan bir uygulama kazancın yarısıdır. Kimse adresi ezberlemek istemez.

Adın ağda duyurulması için bir şeyin o işi yapması gerekir. Uygulamanın kendi imajında böyle bir parça çoğu zaman yoktur ve olması da beklenmez: bir veritabanı imajının ağda kendini tanıtması gerekmez.

Kural

Kapı eşlemesi bir kapıya numara vermektir. Ağ kimliği ise vatandaşlık vermektir.

Vatandaşlığı yalnızca ağın o uygulamayı gerçekten bir cihaz gibi görmesi gerektiğinde verin. Gerekmiyorsa kapı numarası hem daha basit hem daha güvenlidir.

Atlas ne yapıyor

Atlas bu düzeni kurarken uygulamanın kendi imajına dokunmuyor. Uygulamanın yanına küçük bir yardımcı açıyor ve yardımcı, uygulamanın ağ yığınını paylaşıyor. Adresi yönlendiriciden yardımcı istiyor, adı ağda yardımcı duyuruyor.

Bu bağlanma bilinçli ve iki şey kazandırıyor. Uygulamanın imajında adres istemci ya da ad duyurucu bulunması gerekmiyor. Ve ağ yığını uygulamaya ait olduğu için uygulama durunca yardımcı da kendiliğinden düşüyor, arkada öksüz bir konteyner kalmıyor.

Makinenin kendi konteynerine ulaşamaması sorunu için yukarıda anlatılan köprü kuruluyor ve bir servis olarak kuruluyor, yani makine yeniden başlayınca kendini geri kuruyor.

Asıl anlatmaya değer olan, o köprüde canlı testte bulunan bir hata.

Köprü, konteynerin adresine giden yolu açıyordu. Ama kapanan bir konteynerin yolunu silmiyordu. Yeniden başlatmada geçici bir adresin yolu asılı kalmıştı. Sonucu şu: o adresi bir süre sonra başka bir cihaz alırsa, o cihaza gitmesi gereken trafik köprüye sapar. Yani hata konteyneri değil, ağdaki masum bir üçüncü tarafı vurur.

Düzeltme, köprüyü yalnızca yol ekleyen bir şey olmaktan çıkarıp artık bir konteynere karşılık gelmeyen yolları silen bir şey yapmak oldu.

Buradan çıkan genel ders, ağ dışında da geçerli: eklemek kolay yarıdır. Bir yol, bir kural, bir eşleme, dünya hakkında kurduğunuz bir iddiadır. Dünya değiştiğinde geri alınmamış iddia bir yalana dönüşür, ve çoğu zaman sizi değil sizinle hiç ilgisi olmayan birini vurur.

Kaynaklar

Proxmox'un kendi belgeleri. İngilizce, ve bu konuda son sözü onlar söyler.

İlgili maddeler

Bu iş Atlas’ta nasıl görünüyor?

Ürün sayfasına git