It feroarjen fan default-address-pools nûmeret de netwurken dy't jo al hawwe net opnij, en dat ferwachtsje is krekt hoe't in soarchfâldich plan in ûnferwachte útfal wurdt. De ynstelling regelet de automatyske tawizing foar netwurken dy't makke wurde neidat de daemon mei de nije konfiguraasje opnij start. Alles wat al rint behâldt it subnet dat it krige, om't dat subnet diel is fan 'e bewarre definysje fan it netwurk. De myte is handich om't er suggerearret dat ien bewurking elk oerlap oplost, en de realiteit is wurk yn twa dielen: kies in berik dat wier frij is, en migrearje dan de netwurken dy't dat net binne.

De myte: ien poolferoaring lost it oerlap op

De myte hat in beskate foarm. Ien lêst dat de standertpool fan Docker feroare wurde kin, feroaret him, start de daemon opnij en konkludearret dat it kontenernetwurk net mear botset mei it kantoar-VPN. It âlde netwurk is der noch, noch ferbûn, en hâldt noch it adres dat botset.

Wat feroare is it takomstige gedrach fan 'e taskenner, dat wier nuttich en wier beheind is. Nije netwurken makke sûnder in eksplisyt --subnet wurde út 'e nije pool snien; de besteande wiene nea yn dy pool. In werstart bout netwurken net opnij en ferpleatst konteners net tusken har. As it symptoom nei de feroaring oanhâldt, wie de feroaring wier en wie de diagnoaze ûnfolslein.

Basisberik en tawiisd foarheaksel

De konfiguraasje hat twa fjilden dy't maklik trochinoar helle wurde. base is it berik dêr't de taskenner út snijt, en size is de foarheaksel lingte fan elk tawiisd netwurk, dus in basis fan 10.10.0.0/16 mei grutte 24 dielt /24 binnen dat /16 út. It omkearen fan 'e rollen jout in tawizingspatroan dat jo net bedoelden, meast ien enoarm netwurk of in útputte pool.

In pool is in reservearring, net in bewiis. Docker mijt konflikten dy't er yn 'e routeringstabel fan 'e host sjocht, en hy kin in VPN net sjen dêr't jo noch net mei ferbûn binne.

Dy beheining is de hiele reden om bewust te kiezen. De berikken om mei te fergelykjen binne dy't de host berikke moat: it kantoar-LAN, de ynterne subnetten fan it bedriuws-VPN, de foarheaksels fan laboratoarium of staging en elk oar kontenerhost op deselde overlay. Skriuw se as CIDR op foardat jo de daemon oanreitsje, want in list yn 'e holle sil krekt dy iene misse dy't fan belang is. Kies dan in basis dy't mei gjinien fan har oerlapet, en hâld de list by de útrôl, sadat de folgjende persoan de oefening net út 'e holle werhellet.

Ynventarissearje foardat jo kieze

Ynventarissearje earst wat bestiet. docker network ls listet de netwurken, en docker network inspect bridge -f '{{.IPAM.Config}}' prints it subnet dat in beskaat netwurk brûkt. Werhelje dat foar elk troch de brûker definiearre netwurk, want Compose-projekten meitsje har eigen en in eksplisyt --subnet yn in compose-triem giet folslein om 'e pool hinne.

Dat lêste punt is it punt dat de migraasje oerlibbet. In poolferoaring stopet in kollega net om 172.18.0.0/16 yn in compose-triem fêst te setten, en it konflikt komt werom mei in oare auteur.

Migrearje wat al bestiet

Besteande netwurken migrearje is in aparte, stipe operaasje. Elk troffen netwurk moat mei it nije subnet opnij makke wurde, wat betsjut dat de konteners dy't it brûke loskeppele en wer ferbûn wurde moatte, en it opnij meitsjen fan in netwurk ferwideret syn kontenerbefestigingen ynstee fan se te ferpleatsen. Bewarje folumes en konfiguraasje, en behannelje it opnij meitsjen as in útrôl en net as in datareset. Doch it wurk yn in ûnderhâldsfinsters, want de konteners op in opnij makke netwurk starte opnij, oft jo dat pland hawwe of net.

Folgje de dokumintearre daemonkonfiguraasje en werstartproseduere, en koördinearje de ûnderbrekking. Op in host mei ien daemon start systemctl restart docker konteners opnij neffens har werstartbelied, en dat is gedrach dat it wurdich is om foarôf te witten, net efterôf.

Kontrolearje dan de twa dingen dy't de feroaring reparearje moast. Undersykje it nije subnet mei docker network inspect en befêstigje dat it binnen de keazen basis leit, kontrolearje dan de rûte nei in represintatyf VPN-doel mei ip route get 10.20.30.40 en befêstigje dat it giet dêr't jo ferwachtsje, en net yn in brêge. Test ek tsjinstûntdekking en kommunikaasje tusken konteners, want in netwurk dat mei oare adressearring opnij makke is, kin namme-oplossing brekke op manieren dy't op in applikaasjeflater lykje.

Wat dêrnei noch brekt

It duorsume diel is de registraasje. Hâld de tawizingslist, de keazen basis en grutte, en de opnij makke netwurken op itselde plak as de útrôl.

Dat in berik privee is, makket it net feilich om wer te brûken. 10.0.0.0/8 is privee en ek it meast wierskynlike ding dat al earne op it paad brûkt wurdt, dêrom is it antwurd in beskate reservearring en net in foarkar foar ien blok. De Docker-netwurkdokumintaasje beskriuwt automatyske subnetting en de poolfjilden. Kies it berik út wat jo berikke moatte, net út wat der oardelik útsjocht.

Relatearre artikelen