kubectl ń kùnà ní wíwá orúkọ nígbà tí tọ́ọ̀bù wà lórí ẹ̀rọ̀ tí àdírẹ́sì aládàáni API ṣì ń dáhùn ping. Ọ̀nà náà dára; alábàárà ń béèrè lọ́wọ́ olùyanjú tí kò tíì gbọ́ nípa agbègbè aládàáni ẹgbẹ́ náà. Àwọn àtúnṣe méjì ni a ń lò jù: fífi olùyanjú nẹ́tíwọ́kù ẹ̀rọ ránṣẹ́ sí gbogbo alábàárà VPN, tàbí fífi orúkọ náà mọ̀ níbílẹ̀ pẹ̀lú àkọsílẹ̀ hosts tàbí olùtúnjá onípò. Wọ́n ń yanjú àmì kan náà pẹ̀lú ẹ̀tọ́-ìní tí ó yàtọ̀, àti pípọ̀ wọ́n pọ̀ ni bí àwọn ẹgbẹ́ ṣe ń parí ní ṣíṣàtúnṣe fáìlì hosts ní gbogbo ìgbà tí a bá tún ibi-ìparí kọ́.

Ìyanjú àti ìwọlé kùnà ní àwọn ìpele ọ̀tọ̀ọ̀tọ̀

Ṣe ìwádìí náà fúnra rẹ kí o tó yí ohunkóhun padà. getent hosts lórí Linux tàbí nslookup lórí Windows sọ fún ọ bóyá alábàárà ń gba ìdáhùn rárá; àkókò pípẹ́ tàbí NXDOMAIN ń tọ́ka sí olùyanjú, nígbà tí ìdáhùn pẹ̀lú àdírẹ́sì tí kò tọ́ ń tọ́ka sí àkọsílẹ̀ àtijọ́ tàbí ọ̀nà àbáyọ gbangba.

Lẹ́yìn náà jẹ́rìí sí ọ̀dọ̀ ẹrọ ìsìn wo ni kubectl ń pè ní tòótọ́. Àgbékalẹ̀ kubeconfig ń tọ́jú URL, ọ̀nà VPN kò sì tún un kọ: bí àgbékalẹ̀ bá dárúkọ ibi-ìparí gbangba, DNS lè jẹ́ pípé tí àṣẹ yóò sì kùnà.

getent hosts api.internal.example
kubectl config view --minify -o jsonpath='{.clusters[0].cluster.server}'
kubectl -v=8 get nodes 2>&1 | head -40

Àmì kẹta ni ìrísí ìkùnà lẹ́yìn ìwádìí. Orúkọ tí ó yanjú sí àdírẹ́sì aládàáni tí àkókò pípẹ́ TCP sì tẹ̀lé e jẹ́ ìṣòro ògiri-ina tàbí nẹ́tíwọ́kù aláṣẹ. Orúkọ tí ó yanjú sí àdírẹ́sì gbangba túmọ̀ sí pé ìbéèrè náà bọ́ kúrò ní agbègbè aládàáni. Yà àwọn àbájáde mẹ́ta yẹn sọ́tọ̀; ọ̀kọ̀ọ̀kan ń darí rẹ sí olówó ẹ̀tọ́ mìíràn.

Àṣàyàn A: fi olùyanjú nẹ́tíwọ́kù ẹ̀rọ ránṣẹ́ sínú tọ́ọ̀bù

Nígbà tí ẹrọ ìsìn VPN bá ń ṣiṣẹ́ nínú nẹ́tíwọ́kù ẹ̀rọ, alábàárà lè lo olùyanjú kan náà pẹ̀lú ẹrọ-àlejò ìsìn. Nínú OpenVPN Community ẹrọ ìsìn ń fi àṣàyàn DNS ránṣẹ́; Access Server ń fi ètò kan náà hàn nínú ojú-ìwé ìṣàkóso, alábàárà sì gbọdọ̀ tún ojú-ìwé náà gbà sílẹ̀ nítorí pé ìtọ́nisọ́nà DNS ń rìn nínú rẹ̀.

# server.conf
push "dhcp-option DNS 10.0.0.4"
push "route 10.0.0.4 255.255.255.255"

Ìlà ọ̀nà ṣe pàtàkì nínú àwọn àgbékalẹ̀ split tunnel. Fífi àdírẹ́sì olùyanjú ránṣẹ́ kì í ṣe bákan náà pẹ̀lú mímú kí ó lè wọlé: bí ó bá jẹ́ pé ẹ̀ka-ìsopọ̀ ẹgbẹ́ nìkan ló ń gba inú tọ́ọ̀bù, ìbéèrè sí 10.0.0.4 yóò jáde gba LAN àdúgbò yóò sì kú. Fi ọ̀nà ẹrọ-àlejò ránṣẹ́ fún olùyanjú, tàbí kí o kó ẹ̀ka-ìsopọ̀ rẹ̀ sínú tọ́ọ̀bù.

Ẹ̀gbẹ́ tí ń gbà náà tún ní ìlànà. Olùyanjú tí ó lè wọlé láti ibi-ìlà àdírẹ́sì alábàárà ṣì lè kọ àwọn ìbéèrè láti ibẹ̀, agbègbè aládàáni tí ó so mọ́ nẹ́tíwọ́kù ẹ̀rọ sì ń dáhùn fún àwọn alábàárà tí wọ́n gbà ọ̀nà DNS nẹ́tíwọ́kù yẹn wọlé nìkan. Bí ìwádìí bá pẹ́ lẹ́yìn fífi ránṣẹ́, wo àwọn àkọsílẹ̀ olùyanjú fúnra rẹ̀ kí o tó fọwọ́ kan alábàárà lẹ́ẹ̀kan sí.

Lórí alábàárà, jẹ́rìí ohun tí a lò: resolvectl status lórí Linux systemd-resolved, scutil --dns lórí macOS, ipconfig /all lórí Windows. Ẹrọ ìsìn DNS tí a fi ránṣẹ́ tí kò farahàn rárá túmọ̀ sí pé a kò tún ojú-ìwé náà gbà.

Àṣàyàn B: àwọn àkọsílẹ̀ hosts àti gbígbékalẹ̀ onípò

Àkọsílẹ̀ hosts ni àtúnṣe tí ó kéré jùlọ tí ó ṣeé ṣe àti èyí tí ó rọ́ jùlọ. Ó ń so orúkọ kan mọ́ àdírẹ́sì kan lórí ẹ̀rọ kan, nítorí náà ó ń ṣiṣẹ́ fún àfihàn yóò sì já nígbà tí a bá tún ibi-ìparí aládàáni tàbí IP rẹ̀ kọ́. Ó tún ń fi àlàfo gidi pamọ́ fún ìyókù ẹgbẹ́ náà.

Olùtúnjá onípò ń gbòòrò dáadáa láìfi DNS ránṣẹ́ sí gbogbo alábàárà. dnsmasq lè fi agbègbè kan ránṣẹ́ sí olùyanjú VNet kí ó sì fi gbogbo ohun mìíràn sílẹ̀: server=/cluster.internal/10.0.0.4. DNS Windows ní àwọn olùtúnjá onípò, àwọn alábàárà Windows sì lè lo ìlànà NRPT fún pípín kan náà. Olùtúnjá náà ṣì nílò ọ̀nà sí olùyanjú VNet.

Gbígbékalẹ̀ ń pa ìwò-ẹ̀rọ deede mọ́ níbílẹ̀, èyí tí ó ṣe pàtàkì lórí split tunnel. Ó tún fún ọ ní ibi kan láti ṣàkọsílẹ̀ àwọn ìbéèrè fún agbègbè aládàáni, àti ibi kan tí yóò já nígbà tí ẹrọ-àlejò olùtúnjá bá ṣí kúrò.

Yan nípasẹ̀ ẹ̀tọ́-ìní, kì í ṣe ìrọ̀rùn

Fi olùyanjú ránṣẹ́ nígbà tí o bá ń ṣàkóso àgbékalẹ̀ VPN tí o sì fẹ́ kí gbogbo orúkọ aládàáni ṣiṣẹ́, kì í ṣe API nìkan. Yan olùtúnjá nígbà tí àwọn alábàárà gbọdọ̀ pa DNS àdúgbò mọ́ fún gbogbo ohun mìíràn, tàbí nígbà tí ẹgbẹ́ mìíràn yàtọ̀ sí ẹgbẹ́ náà ń ṣàkóso VPN.

Àwọn àkọsílẹ̀ hosts jẹ́ ìwádìí àrùn, kì í ṣe ìmúṣẹ. Lo ọ̀kan láti fi hàn pé API lè wọlé, lẹ́yìn náà yọ ọ́ kúrò kí o sì tún ọ̀nà olùyanjú ṣe; bí o bá fi í sílẹ̀ yóò sọ ìbéèrè ọ̀nà di wíwá ìṣúra nígbà mìíràn. Àṣàyàn tí o bá yan, kọ agbègbè náà, àdírẹ́sì olùyanjú àti ọ̀nà tí ń gbé ìbéèrè náà sílẹ̀.

Dán ibi-ìparí API wò, kì í ṣe orúkọ nìkan

Nígbà tí ìwádìí bá ṣàṣeyọrí, gba ibi-ìparí ẹ̀yà API pẹ̀lú CA ẹgbẹ́ náà. curl --cacert ca.crt https://api.internal.example:6443/version ń ya ìkùnà TLS àti àṣẹ sọ́tọ̀ kúrò nínú DNS. 403 túmọ̀ sí pé orúkọ àti ìsopọ̀ ń ṣiṣẹ́ tí ìdánimọ̀ kò ṣiṣẹ́.

Tún wo bóyá àwọn nẹ́tíwọ́kù aláṣẹ tàbí ògiri-ina ẹgbẹ́ gba ibi-ìlà àdírẹ́sì alábàárà láàyè. Àwọn ẹgbẹ́ aládàáni sábà ń gba ìrìnàjò API láti VNet tàbí àwọn ibi-ìlà peer nìkan, nítorí náà tọ́ọ̀bù tí ń pín àwọn àdírẹ́sì láti adágún mìíràn yóò so mọ́ ìpele nẹ́tíwọ́kù yóò sì di ìgbàlẹ̀sí ní API.

Kọ àwọn òtítọ́ mẹ́rin nígbà tí o bá gbé ìpele sókè: olùyanjú tí alábàárà lò, àdírẹ́sì tí ó dá padà, URL ẹrọ ìsìn nínú àgbékalẹ̀ kubeconfig tí a yàn, àti ìgbésẹ̀ àkọ́kọ́ tí ó kùnà. Àkọsílẹ̀ yẹn ń sọ fún ẹlẹ́rọ̀ ìtẹ̀lé bóyá kí ó yí DNS, ọ̀nà tàbí ìlànà ògiri-ina padà, yóò sì dá àtúnṣe fáìlì hosts tó ń bọ̀ dúró.

Bẹ̀rẹ̀ pẹ̀lú ìwádìí, yan ọ̀nà olùyanjú tí ó bá ẹni tí ó ní agbègbè náà mu, lẹ́yìn náà jẹ́rìí ibi-ìparí. Bí àwọn mẹ́ta bá kọjá, ìṣòro tó kù ni àṣẹ, kì í ṣe ìyanjú orúkọ.

Àwọn àpilẹ̀kọ tó jọra