Docker: darí kọ́ńténírà kan nípasẹ̀ VPN, kí o sì fi òmíràn sí tààrà
Fún òpópónà náà ní kọ́ńténírà tirẹ̀, jẹ́ kí àwọn iṣẹ́ tí ó nílò rẹ̀ nìkan pín ààyè orúkọ yẹn, lẹ́yìn náà ka ohun tí ó tẹ̀lé olówó rẹ̀: àwọn ebute, localhost, DNS.
Olùpèsè kan, ẹrù iṣẹ́ méjì àti ìbéèrè kan tí ó pín wọ́n: ẹ̀rọ ìgbàsílẹ̀ tí ó gbọdọ̀ jáde nípasẹ̀ VPN ìṣòwò, àti ojú-ìwé ìṣàkóso tí ó gbọdọ̀ máa lo ìsopọ̀ olùpèsè náà. Fífi ẹ̀rọ VPN sórí olùpèsè kùnà ìbéèrè náà lẹ́sẹ̀kẹsẹ̀, nítorí nígbà náà ẹrù iṣẹ́ méjèèjì pín ọ̀nà àbájáde kan. Àwòrán tí ó ń ṣiṣẹ́ ní tòótọ́ ni láti gbé òpópónà náà lọ sínú kọ́ńténírà tirẹ̀, kí ó sì jẹ́ kí àwọn ẹrù iṣẹ́ tí ó nílò rẹ̀ nìkan darapọ̀ mọ́ ààyè orúkọ nẹ́tíwọ́kì kọ́ńténírà yẹn. Gbogbo ohun mìíràn máa ń tẹ̀lé ọ̀nà Docker déédéé, àwọn àlàyé tí ó tẹ̀lé sì jẹ́ àbájáde ẹni tí ó ni ààyè orúkọ náà.
Ìdí tí ààyè orúkọ àpínpín fi ń yí àwọn òfin padà
Kọ́ńténírà tí ó darapọ̀ mọ́ ààyè orúkọ ẹlòmíràn kò ní àkójọpọ̀ nẹ́tíwọ́kì tirẹ̀. Ó ń rí àwọn ojú-ìwé kan náà, tábìlì ìtọ́nisọ́nà kan náà àti loopback kan náà gẹ́gẹ́ bí kọ́ńténírà tí ó darapọ̀ mọ́, ìdí náà sì ni àwòrán yìí fi wúlò: ẹrù iṣẹ́ ń yanjú àti so pọ̀ bí ó ti yẹ, òpópónà tí ó wà nísàlẹ̀ sì ń gba ìrìnàjò náà láìjẹ́ kí ẹ̀rọ ìṣe mọ̀. Iye ni pé gbogbo ètò tí ó ní í ṣe pẹ̀lú nẹ́tíwọ́kì ní olówó kan ṣoṣo báyìí, kọ́ńténírà tí ó ń darapọ̀ kì í sì í.
Òfin ìní yìí ń dá àwọn ìbéèrè ìṣètò púpọ̀ lóhùn kí wọ́n tó béèrè wọ́n. Bí ètò kan bá ń gbé inú àkójọpọ̀ nẹ́tíwọ́kì, ó jẹ́ ti kọ́ńténírà ẹ̀gbẹ́. Bí ó bá ń ṣàpèjúwe ìlànà náà, ó máa ń dúró pẹ̀lú ẹrù iṣẹ́ náà.
Loopback ni apá tí ó ń ya àwọn ènìyàn lẹ́nu. Nínú kọ́ńténírà tí ó ń darapọ̀, localhost ni a ń yanjú sí loopback ti kọ́ńténírà ẹ̀gbẹ́, kì í ṣe sí tirẹ̀ tí ó jẹ́ àdáni, nítorí náà iṣẹ́ tí ó so mọ́ 127.0.0.1 pẹ̀lú ìretí ìyàsọ́tọ̀ ń pín àdírẹ́sì yẹn pẹ̀lú kọ́ńténírà òpópónà báyìí.
Tẹ̀ àwọn ebute jáde lórí kọ́ńténírà tí ó ni ààyè orúkọ náà
Ìtọ́ka ebute jẹ́ ti olówó ààyè orúkọ náà, àní nígbà tí ìlànà tí ń gbọ́ ń ṣiṣẹ́ nínú kọ́ńténírà mìíràn. Sọ ìtọ́ka náà ní kọ́ńténírà ẹ̀gbẹ́, kí ẹrù iṣẹ́ sì pa ìṣètò ìlànà tirẹ̀ mọ́ láìkan. Ìtọ́ka lórí iṣẹ́ tí ó ń darapọ̀ kò lè wá sí ipò, yálà ẹ̀rọ náà kọ̀ ọ́ tàbí ó fojú kéré rẹ̀ ní ìdákẹ́jẹ́ẹ́ ní ìbámu pẹ̀lú bí a ṣe bẹ̀rẹ̀ kọ́ńténírà náà, ìdí náà sì ni ojú-ìwé tí ó ṣeéṣe láti dé ní ìṣẹ́jú kan sẹ́yìn fi ń pòórá ní kété tí a bá lo àwòrán náà.
services:
gluetun:
image: qmcgaw/gluetun
cap_add: [NET_ADMIN]
ports: ["8080:8080"]
client-vpn:
image: example/client
network_mode: "service:gluetun"
client-direct:
image: example/client
ports: ["8081:8080"]Ka blọ́ọ̀kì yẹn gẹ́gẹ́ bí ìpinnu mẹ́ta kì í ṣe iṣẹ́ mẹ́ta. Kọ́ńténírà ẹ̀gbẹ́ ni ó ni òpópónà àti ebute tí a tẹ̀ jáde; ẹ̀rọ tí ó ń darapọ̀ kò sọ nẹ́tíwọ́kì kankan; ẹ̀rọ tààrà ń pa ìtọ́ka tirẹ̀ mọ́ lórí nẹ́tíwọ́kì àìlópin. Agbára NET_ADMIN ni ó ń jẹ́ kí kọ́ńténírà ẹ̀gbẹ́ lè dá ojú-ìwé àti yí àwọn ọ̀nà padà, ìdí náà sì ni kọ́ńténírà yìí fi nílò àǹfààní púpọ̀ ju àwọn ẹrù iṣẹ́ tí ó ń sìn lọ.
Iṣẹ́ tí ó dúró tààrà ń pa nẹ́tíwọ́kì tirẹ̀ mọ́
Ẹrù iṣẹ́ tí kò gbọdọ̀ gba inú òpópónà ń pa afárá àìlópin tàbí nẹ́tíwọ́kì tí olùlò ti ṣàlàyé tirẹ̀ mọ́, pẹ̀lú ebute tí a tẹ̀ jáde àti ọ̀nà àbájáde tirẹ̀. Ó máa ń wù ọ́ láti so ó mọ́ nẹ́tíwọ́kì kọ́ńténírà ẹ̀gbẹ́ kí kọ́ńténírà méjèèjì lè bára wọn sọ̀rọ̀ ní orúkọ, ṣùgbọ́n ìgbésẹ̀ kan náà ń gbé ìrìnàjò rẹ̀ lọ sínú òpópónà ní ìdákẹ́jẹ́ẹ́. Bí wọ́n bá nílò láti dé ọ̀dọ̀ ara wọn, kọ́ nẹ́tíwọ́kì ọ̀tọ̀ọ̀tọ̀ tí olùlò ti ṣàlàyé, so àwọn méjèèjì mọ́ ọn, kí o sì fi kọ́ńténírà ẹ̀gbẹ́ sílẹ̀ gẹ́gẹ́ bí ọ̀nà kan ṣoṣo jáde.
Pa ìbéèrè méjèèjì mọ́ ọ̀tọ̀ọ̀tọ̀: kọ́ńténírà wo ni ó lè dé ọ̀dọ̀ ara wọn, àti èwo ni ó ń jáde níbo. Fífi wọ́n pọ̀ ni ọ̀nà tí ó wọ́pọ̀ jùlọ tí àwòrán yìí fi tún di VPN fún gbogbo olùpèsè.
Àkójọpọ̀ ìkùnà fún wákàtí àkọ́kọ́
Ọ̀pọ̀lọpọ̀ ìgbìyànjú àkọ́kọ́ ń kùnà ní ọ̀kan nínú ọ̀nà mẹ́rin, ọ̀kọ̀ọ̀kan sì ní ìdí ọ̀tọ̀ọ̀tọ̀. Ṣàyẹ̀wò wọ́n ní ìtòlẹ́sẹẹsẹ yìí, nítorí àwọn méjì àkọ́kọ́ ń ṣàlàyé fẹ́rẹ̀ẹ́ gbogbo ìròyìn.
| Symptom | Likely cause |
|---|---|
| Web UI unreachable after the change | Port mapping declared on the joining container instead of the sidecar |
| Both containers show the provider's exit address | The direct service was attached to the sidecar network |
| Internal names stop resolving | Resolver settings live on the host, not in the shared namespace |
| Health check fails but the app works | The check probes localhost, which now means the sidecar |
Ìlà kẹrin ni èyí tí àwọn ènìyàn ń ṣe àyẹ̀wò èyí tí kò tọ́ gẹ́gẹ́ bí àṣìṣe ẹ̀rọ ìṣe. Ìdánwò tí a kọ sí loopback tirẹ̀ ẹrù iṣẹ́ náà ń dán kọ́ńténírà òpópónà wò báyìí, nítorí náà yálà ó kùnà tàbí ó jábọ̀ iṣẹ́ tí kò tọ́ rárá.
Nígbà tí orúkọ olùpèsè kan nílò òpópónà náà
Nígbà mìíràn òpópónà kíkún jẹ́ púpọ̀ jù: orúkọ inú kan gbọdọ̀ gba inú VPN ilé-iṣẹ́ nígbà tí sọ́kẹ́tì àdúgbò tàbí ìsopọ̀ àfihàn ń bá a lọ ní ṣíṣẹ́. Òpópónà kíkún nínú kọ́ńténírà ń fọ́ ọ̀nà yẹn àti gbogbo ohun tí a darí sí olùpèsè, nítorí náà darí àkọ́kọ́-ìbẹ̀rẹ̀ tí ó nílò rẹ̀ nìkan. Àwọ̀tún ọ̀nà ìpín tí ó yí ẹ̀rọ náà ká ń ṣe èyí, ó ń fi olùpèsè tí a dárúkọ ránṣẹ́ nípasẹ̀ òpópónà, ó sì ń fi ọ̀nà àtẹ̀yìnwá sílẹ̀ láìkan fún gbogbo ohun mìíràn.
Yan èyí nígbà tí o nílò láti dé iṣẹ́ kan ṣoṣo àti pé o kò ń gbìyànjú láti gbé gbogbo ìrìnàjò kọ́ńténírà náà. Ó jẹ́ irinṣẹ́ mìíràn ju kọ́ńténírà ẹ̀gbẹ́, ó sì ń dá ìbéèrè mìíràn lóhùn.
Ṣàyẹ̀wò, lẹ́yìn náà jẹ́ kí ó lè faradà àtúnbẹ̀rẹ̀
Béèrè lọ́wọ́ kọ́ńténírà kọ̀ọ̀kan irú àdírẹ́sì tí ó fi ń dàbí ẹni tí ó ń wá. Èyí tí ó wà nínú òpópónà gbọdọ̀ tẹ̀ àdírẹ́sì olùpèsè jáde, èyí tààrà sì tẹ̀ ọ̀nà àbájáde olùpèsè jáde. Ìdáhùn tí ó jọra túmọ̀ sí pé iṣẹ́ tààrà jogún ààyè orúkọ tí kò tọ́ tàbí VPN ní ìpele olùpèsè ṣì ń gba gbogbo rẹ̀, àwọn àtúnṣe méjèèjì sì yàtọ̀. Tún ṣe àyẹ̀wò náà lẹ́yìn gbogbo àtúnṣe compose, nítorí blọ́ọ̀kì iṣẹ́ kan tí a dà kó ti tó láti mú ìṣòro náà padà.
Ohun mẹ́ta máa ń bàjẹ́ nígbà tí ó yá. DNS ń tẹ̀lé olówó ààyè orúkọ náà, nítorí náà àwọn ètò olùyẹ̀wò àti agbègbè ìwádìí jẹ́ ti kọ́ńténírà ẹ̀gbẹ́ kì í ṣe ti olùpèsè. VPN tí ó ní ìfiránṣẹ́ ebute ń yí ebute ìgbọ́ rẹ̀ padà nígbà tí ó bá tún so pọ̀, nítorí náà ebute tí olùpèsè fi ránṣẹ́ àti ebute ìgbọ́ ní ẹ̀gbẹ́ kọ́ńténírà gbọdọ̀ tún kọ sínú ìṣètò ẹ̀rọ tàbí ìtọ́ka ebute, ní ọ̀pọ̀ ìgbà nípasẹ̀ ẹ̀rọ ìmúdójúìwọ̀n kékeré tí ó ń ka API olùpèsè. Àti gbogbo ìdánwò tí a kọ sí localhost ń béèrè lọ́wọ́ kọ́ńténírà òpópónà báyìí kì í ṣe ẹrù iṣẹ́ náà.
Kọ àwòrán náà sílẹ̀, pẹ̀lú kọ́ńténírà tí ó ni ààyè orúkọ àti àwọn ebute tí ó jẹ́ tirẹ̀. Ẹni tí ó kàn yóò fi iṣẹ́ kún un, yóò dà blọ́ọ̀kì tí kò tọ́, yóò sì tún ìkùnà àkọ́kọ́ nínú àpilẹ̀kọ yìí ṣe.