Dockeri vaikimisi pooli muutmine ei nummerda võrke ümber
default-address-pools muutmine juhib ainult uusi automaatseid võrke. Inventeerige vahemikud, mida juba kasutate, ja seejärel planeerige juba töötava migratsioon.
default-address-pools muutmine ei nummerda teie olemasolevaid võrke ümber ja selle ootamine ongi see, kuidas hoolikas plaan muutub ootamatuks katkestuseks. Säte juhib automaatset eraldamist võrkudele, mis luuakse pärast deemoni taaskäivitamist uue konfiguratsiooniga. Kõik juba töötav säilitab talle antud alamvõrgu, sest see alamvõrk on võrgu salvestatud definitsiooni osa. Müüt on mugav, sest see vihjab, et üks muudatus parandab iga kattuvuse, ja tegelikkus on kaheosaline töö: valige vahemik, mis on tõesti vaba, ja migreerige seejärel võrgud, mis seda ei ole.
Müüt: üks pooli muudatus parandab kattuvuse
Müüdil on kindel kuju. Keegi loeb, et Dockeri vaikimisi pooli saab muuta, muudab seda, taaskäivitab deemoni ja järeldab, et konteinerivõrk ei põrka enam kontori VPN-iga kokku. Vana võrk on endiselt alles, endiselt ühendatud ja hoiab endiselt aadressi, mis põrkab.
Muutus eraldaja tulevane käitumine, mis on tõesti kasulik ja tõesti piiratud. Ilma selgesõnalise --subnet määramiseta loodud uued võrgud lõigatakse uuest poolist; olemasolevad ei olnud kunagi selles poolis. Taaskäivitamine ei taasta võrke ega liiguta konteinereid nende vahel. Kui sümptom püsib pärast muudatust, oli muudatus tegelik ja diagnoos puudulik.
Baasvahemik ja eraldatud prefiks
Konfiguratsioonil on kaks välja, mida on lihtne segi ajada. base on vahemik, millest eraldaja lõikab, ja size on iga eraldatud võrgu prefiksi pikkus, seega baas 10.10.0.0/16 suurusega 24 jagab /24 selle /16 sees. Rollide vahetamine annab eraldusmustri, mida te ei kavatsenud, tavaliselt ühe hiiglasliku võrgu või ammendunud pooli.
Pool on broneering, mitte tõestus. Docker väldib konflikte, mida ta näeb hosti marsruutimistabelis, ega näe VPN-i, millega te pole veel ühendunud.
See piirang on kogu põhjus valida teadlikult. Võrreldavad vahemikud on need, milleni host peab jõudma: kontori LAN, ettevõtte VPN-i sisemised alamvõrgud, labori või stagingu prefiksid ja mis tahes muu konteinerihost samas overlay's. Kirjutage need CIDR-idena üles enne, kui deemonit puutute, sest peas olev nimekiri jätab välja just selle, mis loeb. Seejärel valige baas, mis ei kattu ühegagi neist, ja hoidke nimekirja juurutuse juures, et järgmine inimene ei kordaks harjutust mälu järgi.
Inventeerige enne valimist
Inventeerige esmalt, mis on olemas. docker network ls loetleb võrgud ja docker network inspect bridge -f '{{.IPAM.Config}}' prindib alamvõrgu, mida konkreetne võrk kasutab. Korrake seda iga kasutaja määratud võrgu puhul, sest Compose'i projektid loovad omi ja selgesõnaline --subnet compose-failis möödub poolist täielikult.
See viimane punkt on see, mis migratsiooni üle elab. Pooli muudatus ei takista kolleegi kinnitamast 172.18.0.0/16 compose-failis ja konflikt tuleb tagasi teise autoriga.
Juba olemasoleva migreerimine
Olemasolevate võrkude migreerimine on eraldi, toetatud toiming. Iga mõjutatud võrk tuleb uue alamvõrguga uuesti luua, mis tähendab seda kasutavate konteinerite lahtiühendamist ja uuesti ühendamist, ning võrgu uuesti loomine eemaldab selle konteinerikinnitused, mitte ei liiguta neid. Säilitage mahud ja konfiguratsioon ning käsitlege uuesti loomist juurutusena, mitte andmete lähtestamisena. Tehke töö hooldusaknas, sest uuesti loodud võrgu konteinerid taaskäivituvad olenemata sellest, kas te seda planeerisite.
Järgige dokumenteeritud deemoni konfiguratsiooni ja taaskäivitamise protseduuri ning koordineerige katkestust. Ühe deemoniga hostis taaskäivitab systemctl restart docker konteinereid vastavalt nende taaskäivitamispoliitikatele, ja see on käitumine, mida tasub teada enne, mitte pärast.
Seejärel kontrollige kahte asja, mida muudatus pidi parandama. Kontrollige uut alamvõrku käsuga docker network inspect ja kinnitage, et see asub valitud baasi sees, seejärel kontrollige marsruuti esindusliku VPN-sihtkohani käsuga ip route get 10.20.30.40 ja kinnitage, et see läheb sinna, kuhu ootate, mitte sillale. Testige ka teenuseavastust ja konteineritevahelist suhtlust, sest teistsuguse adresseerimisega uuesti loodud võrk võib nimelahenduse rikkuda viisil, mis näeb välja nagu rakenduse viga.
Mis pärast ikka katki jääb
Püsiv osa on kirje. Hoidke eralduste nimekiri, valitud baas ja suurus ning uuesti loodud võrgud samas kohas kui juurutus.
See, et vahemik on privaatne, ei tee seda taaskasutamiseks turvaliseks. 10.0.0.0/8 on privaatne ja ka kõige tõenäolisemalt juba kuskil teel kasutusel, mistõttu on vastuseks konkreetne broneering, mitte eelistus ühele plokile. Dockeri võrgudokumentatsioon kirjeldab automaatset alamvõrkude eraldamist ja pooli välju. Valige vahemik selle järgi, milleni peate jõudma, mitte selle järgi, mis näeb korras välja.