Docker Swarm kupitia VPN: kazi zinaenda, miito ya huduma inashindikana
Kazi zinaenda kwenye tovuti zote mbili na miito kati ya huduma inaisha muda. Overlay inahitaji njia za nodi-hadi-nodi, anwani zisizotafsiriwa na nafasi ya baiti 50 za VXLAN.
Mameneja watatu na wafanyakazi watano katika tovuti mbili, waliounganishwa kwa handaki, na docker service ls inaonyesha kazi zinazoenda pande zote mbili huku miito kati ya huduma ikiisha muda. Hakuna kinachoonekana kibaya katika kumbukumbu za Swarm. Mchanganyiko huo ni alama ya tatizo katika tabaka la data: tabaka la udhibiti lilipata nodi, na fremu zilizofungwa hazikufanya safari kamwe.
Mtandao lazima uwepo kabla ya overlay
Overlay ya Swarm inasukuma fremu zilizofungwa moja kwa moja kati ya anwani za nodi, ambayo inamaanisha kila nodi inahitaji anwani ambayo kila nodi nyingine inaweza kufikia bila tafsiri, kwenye kiolesura kinachotolewa na handaki. Handaki inayobeba wateja pekee hadi bandari iliyochapishwa haitoshi. Tabaka la chini lazima lieleke kutoka nodi hadi nodi pande zote mbili.
Jaribu hilo kabla ya kugusa Swarm. Kutoka kila nodi, angalia njia hadi anwani ya handaki ya mwenzako, ipigie ping, kisha jaribu bandari ya udhibiti. Ikiwa ping inafanya kazi na bandari haifanyi, handaki ni sawa na kichujio kiko njiani.
ip -brief address
ip route get 10.20.0.12
ping -c3 10.20.0.12
nc -vz 10.20.0.12 2377
Ikiwa njia inaelekeza kwenye kiolesura cha kimwili badala ya tun0 au wg0, overlay itafunga kwenye anwani ambayo tovuti ya mbali haiwezi kufikia, na dalili itaonekana kama upotevu wa pakiti.
Angalia ni anwani gani kila nodi inatangaza
Daemon inatangaza anwani moja, na wenzake wanaitumia kwa tabaka la data. Kwenye mwenyeji mwenye mitandao mingi ni rahisi kutangaza anwani ya LAN au ya umma wakati handaki inabeba kitu kingine. Iikague badala ya kudhania, na iimarishe wakati wa kujiunga kwa --advertise-addr wakati chaguo-msingi ni mbaya. Nodi inayotangaza anwani ambayo ni yenyewe pekee inaweza kufikia bado inajiunga na swarm, na hitilafu inaonekana baadaye kama huduma ambazo haziwezi kuwasiliana kati ya tovuti.
Kubadilisha anwani iliyotangazwa baadaye si uhariri wa usanidi, kwa sababu nodi lazima iondoke na ijiunge tena.
Andika anwani iliyotangazwa kwa kila nodi kwenye madokezo yako, kwa sababu inaeleza hitilafu nyingi zisizo na usawa.
Masquerade ndiye mtuhumiwa wa kawaida
Wakati lango likikaa kati ya nodi na handaki, kosa la kawaida ni kutumia masquerade kwa kila kitu kinachotoka kwenye kiolesura cha kimwili. Hiyo pia inaandika upya anwani za ndani za overlay, kwa hivyo kila mwenza anaonekana kutoka kwenye lango na wenzi wa VXLAN wanaacha kutambuana. Matokeo ni trafiki iliyofungwa inayokosekana au ya upande mmoja wakati ping za kawaida bado zinafanya kazi.
Elekeza kiambishi cha overlay kupitia lango na ukiache bila tafsiri. Ikiwa tafsiri inahitajika kweli kwa kiambishi kingine, iweke hapo tu na kamwe usiitumie kwa masafa ambayo overlay inatumia.
ip route add 172.16.0.0/22 via 10.20.0.1
iptables -t nat -I POSTROUTING -o tun0 -s 172.16.0.0/22 -j ACCEPT
Angalia mpangilio wa kanuni na pia maandishi yake, kwa sababu MASQUERADE pana mapema kwenye mnyororo inashinda isipokuwa nyembamba baadaye.
VXLAN inahitaji nafasi ndani ya pakiti
VXLAN inaongeza baiti 50 kwa fremu inazobeba. Tabaka la chini la baiti 1500 linalobeba fremu ya ndani ya baiti 1500 hutoa pakiti iliyofungwa ambayo hakuna njia itakayowasilisha, na hitilafu inaonekana kama ugunduzi wa huduma wa vipindi badala ya tatizo la ukubwa. Ama punguza MTU ya handaki pande zote mbili au weka MTU ya overlay ili kiendeshi kitangaze mzigo unaotoshea.
docker network create --driver overlay --attachable --opt com.docker.network.driver.mtu=1400 swarm-overlay
Mtandao wa ingress huundwa kiotomatiki, kwa hivyo kuubadilisha kunamaanisha kuuondoa na kuunda upya badala ya kuuhariri mahali pake.
Ikiwa utarekebisha upande mmoja wa handaki pekee, MTU ndogo bado ni ile inayojalisha.
Angalia tabaka la data, sio kumbukumbu
Nasa bandari ya VXLAN pande zote mbili. Fremu zinazotoka upande mmoja na kufika upande mwingine zinamaanisha tabaka la chini ni sawa na tatizo liko ndani ya overlay. Fremu zinazotoka na kamwe hazifiki zinamaanisha njia au kichujio. Fremu zisizotoka kabisa zinamaanisha anwani ya chanzo si sahihi.
Hitilafu za ugunduzi wa huduma zinazotoweka baada ya sekunde chache kwa kawaida zinaelekeza kwenye bajeti ya pakiti au njia inayoyumba, sio kwenye kworum ya raft.
Hifadhi nakala ya kipindi kinachofanya kazi, kwa sababu kuilinganisha na iliyovunjika ni haraka kuliko kusoma usanidi tena.