Saját hálózati cím a konténernek: mit ad, és mi az ára
A konténer portszám helyett saját címen is közzétehető. A nyereség valódi, az ára is az, és az árára többnyire csak a kész felállás után derül fény.
AtlasPVE ·
A bejegyzés ezekre válaszol
- docker konténer saját ip cím
- docker macvlan mi az
- macvlan gazdagép nem éri el a konténert
- docker konténer nem látszik a hálózaton
- docker konténer ip cím port helyett
Az alapértelmezett felállás a következő: a konténer a gazdagép címén osztozik, és portszámon keresztül érhető el. Egyszerű, biztonságos, és a munka nagy részéhez elegendő.
Van, amikor mégsem elég, és ezek az esetek előre láthatók.
Amikor a portszám kevés
Két alkalmazás ugyanazt a számot kéri. Az egyik átkerül másik számra, aztán az alkalmazás által előállított hivatkozások nem viszik magukkal ezt a számot, és összekuszálódik a dolog.
Az alkalmazás hirdeti magát a hálózaton. A nyomtatók, a médialejátszók és az okosotthon eszközök megtalálása önhirdető üzenetekkel működik. Ezek az üzenetek nem élik túl a portleképezést. Az alkalmazás bejelenti magát, de a hirdetett cím a gazdagép címe, és a túloldal nem éri el.
Az alkalmazásnak szerepelnie kell a router eszközlistájában. Azért, hogy fix címet kapjon, hogy külön tűzfalszabály készüljön rá, hogy a forgalma önmagában látszódjon. Portleképezéssel az az alkalmazás a hálózat szemszögéből nem létezik, csak a gazdagép.
A másik út: saját azonosság a konténernek
A konténer saját hardvercímmel jelenik meg a hálózaton, saját címet kap a routertől, és úgy ül az eszközlistában, mint egy fizikai eszköz.
Ezt hallva az első reakció rendszerint az, hogy "akkor miért nem így csinálja mindenki". A válasz az árban van.
Első ár: a gazdagép nem éri el a saját konténerét
Ez lepi meg a legtöbbeket, és rendszerint akkor derül ki, amikor a munka már készen van.
A hálózat minden eszköze eléri azt a konténert. Az a gazdagép, amelyik futtatja, nem.
Az ok logikus: mindkettő ugyanazt a fizikai csatolót használja, és a forgalom nem jön vissza a switchről. A gazdagép kiküldi a csomagot, és a csomag nem tér vissza a saját kártyájára.
A következmények hétköznapiak: a gazdagépen futó állapotellenőrzés nem éri el az alkalmazást, ugyanazon a gépen egy másik konténer nem tud csatlakozni hozzá, egy megírt szkript nem működik. Mindez úgy, hogy kívülről a hálózat hibátlannak látszik.
Van rá megoldás, de az egy külön darab: a gazdagépen nyitni kell egy második virtuális csatolót ugyanarra a kártyára, és a konténer címére szóló forgalmat ezen keresztül kell irányítani. Telepítés után a gond eltűnik, de mivel ráadás elem, ha kimarad, senki nem érti, miért.
Második ár: elfogy egy valódi cím
Minden konténer elhasznál egy címet a hálózatból. Tíz alkalmazás tíz címet jelent. Kis hálózaton gyorsan elfogynak a címek.
Ráadásul ha a cím bérelt, meg is változhat. Változáskor minden, ami rá hivatkozik, köztük egy korábban megírt szabály is, csendben rossz helyre mutat.
Harmadik ár: a hálózati kártya és a tűzfal
A kártyának egynél több hardvercímet kell elfogadnia. A vezeték nélküli kapcsolatok többsége nem fogad el, és néhány virtuális környezetben ez alapból tiltott. Döntés csak tesztelés után.
A tűzfal pedig mostantól olyan eszközt lát a hálózaton, amelyet nem ismer fel. Az üzemeltetőnek ez egy konténer, a szabályokat író embernek egy hétköznapi eszköz. Ez önmagában nem baj, de ha kimondatlan marad, egy nap valakit összezavar.
A cím kevés, név is kell
A címmel rendelkező, de név nélküli alkalmazás csak fél siker. Címet senki nem akar fejben tartani.
Ahhoz, hogy a név megjelenjen a hálózaton, valaminek el kell végeznie ezt a munkát. Az alkalmazás saját image-e általában nem tartalmaz ilyen részt, és nincs is rá ok: egy adatbázis image-e nem arra való, hogy a hálózaton hirdesse magát.
A szabály
A portleképezés számot ad egy ajtónak. A hálózati azonosság állampolgárságot ad.
Állampolgárság csak akkor jár, ha a hálózatnak valóban eszközként kell kezelnie azt az alkalmazást. Ha nem kell, a portszám egyszerűbb is, biztonságosabb is.
Mit csinál az Atlas
Amikor az Atlas ezt beállítja, nem nyúl az alkalmazás saját image-éhez. Az alkalmazás mellé nyit egy kis segédet, és a segéd az alkalmazás hálózati vermén osztozik. A címet a segéd kéri el a routertől, és a nevet is a segéd hirdeti a hálózaton.
Ez az összekapcsolás szándékos, és két dolgot ad. Az alkalmazás image-ének nem kell tartalmaznia sem címkérő klienst, sem névhirdetőt. És mivel a hálózati verem az alkalmazásé, az alkalmazás leállásakor a segéd is vele együtt szűnik meg, így nem marad árva konténer.
A gazdagép nem éri el a saját konténerét problémára a fent leírt híd települ, méghozzá szolgáltatásként, így a gazdagép újraindulása után magától újraépül.
Amit igazán érdemes elmondani, az egy hiba, amely élő tesztelés közben derült ki ebben a hídban.
A híd útvonalat nyitott a konténer címére. De nem törölte az eltűnt konténer útvonalát. Egy újraindítás után egy ideiglenes cím útvonala ottmaradt. A következmény: ha később egy másik eszköz kapja meg azt a címet, az annak szánt forgalom a hídba terelődik. A hiba tehát nem a konténert érinti, hanem a hálózat egy ártatlan harmadik szereplőjét.
A javítás az volt, hogy a híd ne csak útvonalakat hozzáadó elem legyen, hanem olyan is, amely törli azokat az útvonalakat, amelyekhez már nem tartozik élő konténer.
Az általános tanulság, és ez a hálózatokon kívül is áll: a hozzáadás a könnyebbik fele. Egy útvonal, egy szabály, egy leképezés állítás a világról. Ha a világ megváltozik, a vissza nem vont állításból hazugság lesz, és rendszerint nem azt sújtja, aki tette, hanem valakit, akinek semmi köze hozzá.
Források
A Proxmox saját dokumentációja. Angol nyelvű, és ebben a kérdésben az övé az utolsó szó.