default-address-pools-asetuksen muuttaminen ei numeroi uudelleen verkkoja, jotka sinulla jo on, ja sen odottaminen on juuri se, miten huolellinen suunnitelma muuttuu odottamattomaksi katkokseksi. Asetus ohjaa automaattista jakoa verkoille, jotka luodaan sen jälkeen, kun daemon käynnistyy uudelleen uudella kokoonpanolla. Kaikki jo käynnissä oleva säilyttää saamansa aliverkon, koska se aliverkko on osa verkon tallennettua määritelmää. Myytti on kätevä, koska se vihjaa, että yksi muutos korjaa kaikki päällekkäisyydet, ja todellisuus on kaksiosainen työ: valitse alue, joka on todella vapaa, ja migroi sitten verkot, jotka eivät ole.

Myytti: yksi allasmuutos korjaa päällekkäisyyden

Myytillä on tietty muoto. Joku lukee, että Dockerin oletusallasta voi muuttaa, muuttaa sitä, käynnistää daemonin uudelleen ja päättelee, ettei konttiverkko enää törmää toimiston VPN:ään. Vanha verkko on yhä siellä, yhä liitettynä ja pitää yhä osoitteen, joka törmää.

Muuttui jakajan tuleva käyttäytyminen, joka on todella hyödyllistä ja todella rajattua. Uudet verkot, jotka luodaan ilman nimenomaista --subnet-määrettä, leikataan uudesta altaasta; olemassa olevat eivät koskaan olleet siinä altaassa. Uudelleenkäynnistys ei rakenna verkkoja uudelleen eikä siirrä kontteja niiden välillä. Jos oire jatkuu muutoksen jälkeen, muutos oli todellinen ja diagnoosi puutteellinen.

Perusalue ja jaettu etuliite

Kokoonpanossa on kaksi kenttää, jotka on helppo sekoittaa. base on alue, josta jakaja leikkaa, ja size on kunkin jaetun verkon etuliitteen pituus, joten perusta 10.10.0.0/16 koolla 24 jakaa /24-verkkoja sen /16-alueen sisällä. Roolien vaihtaminen tuottaa jakokuvion, jota et tarkoittanut, yleensä yhden valtavan verkon tai ehtyneen altaan.

Allas on varaus, ei todiste. Docker välttää ristiriidat, jotka se näkee isännän reititystaulussa, eikä se näe VPN:ää, johon et ole vielä yhdistänyt.

Tämä rajoitus on koko syy valita harkiten. Vertailtavat alueet ovat niitä, joihin isännän on päästävä: toimiston LAN, yrityksen VPN:n sisäiset aliverkot, laboratorion tai stagingin etuliitteet ja mikä tahansa muu kontti-isäntä samassa overlayssä. Kirjoita ne CIDR-muotoon ennen kuin kosket daemoniin, koska päässä oleva luettelo jättää pois juuri sen, jolla on merkitystä. Valitse sitten perusta, joka ei ole päällekkäinen minkään kanssa, ja pidä luettelo käyttöönoton yhteydessä, jotta seuraava henkilö ei toista harjoitusta muistista.

Inventoi ennen valintaa

Inventoi ensin, mitä on olemassa. docker network ls luettelee verkot, ja docker network inspect bridge -f '{{.IPAM.Config}}' tulostaa aliverkon, jota tietty verkko käyttää. Toista jokaiselle käyttäjän määrittämälle verkolle, koska Compose-projektit luovat omansa ja compose-tiedoston nimenomainen --subnet ohittaa altaan kokonaan.

Viimeinen kohta on se, joka selviää migraatiosta. Altaan muutos ei estä kollegaa kiinnittämästä 172.18.0.0/16-osoitetta compose-tiedostoon, ja ristiriita palaa toisen tekijän kanssa.

Jo olemassa olevan migrointi

Olemassa olevien verkkojen migrointi on erillinen, tuettu toimenpide. Jokainen vaikutettu verkko on luotava uudelleen uudella aliverkolla, mikä tarkoittaa sitä käyttävien konttien irrottamista ja uudelleen liittämistä, ja verkon uudelleenluonti poistaa sen konttiliitokset sen sijaan, että siirtäisi ne. Säilytä taltiot ja kokoonpano ja kohtele uudelleenluontia käyttöönottona, älä tietojen nollauksena. Tee työ huoltokatkossa, koska uudelleen luodun verkon kontit käynnistyvät uudelleen riippumatta siitä, suunnittelitko sitä.

Noudata dokumentoitua daemonin kokoonpanoa ja uudelleenkäynnistysmenettelyä ja koordinoi keskeytys. Isännässä, jossa on yksi daemon, systemctl restart docker käynnistää kontit uudelleen niiden uudelleenkäynnistyskäytäntöjen mukaisesti, ja se on käyttäytyminen, joka kannattaa tuntea ennen kuin jälkeen.

Tarkista sitten ne kaksi asiaa, jotka muutoksen oli tarkoitus korjata. Tarkastele uusi aliverkko komennolla docker network inspect ja vahvista, että se on valitun perustan sisällä, tarkista sitten reitti edustavaan VPN-kohteeseen komennolla ip route get 10.20.30.40 ja vahvista, että se menee sinne, minne odotat, eikä siltaan. Testaa myös palvelujen löytäminen ja konttien välinen viestintä, koska eri osoitteistuksella uudelleen luotu verkko voi rikkoa nimien selvityksen tavalla, joka näyttää sovellusvirheeltä.

Mikä vielä hajoaa jälkeenpäin

Kestävä osa on kirjaus. Pidä jakoluettelo, valittu perusta ja koko sekä uudelleen luodut verkot samassa paikassa kuin käyttöönotto.

Se, että alue on yksityinen, ei tee siitä turvallista uudelleenkäyttöön. 10.0.0.0/8 on yksityinen ja samalla todennäköisin asia, joka on jo jossain polulla käytössä, siksi vastaus on tietty varaus eikä mieltymys yhteen lohkoon. Dockerin verkkojen dokumentaatio kuvaa automaattisen aliverkkojaon ja altaan kentät. Valitse alue sen mukaan, mihin sinun on päästävä, ei sen mukaan, mikä näyttää siistiltä.

Aiheeseen liittyvät artikkelit