kubectl-ට OpenVPN හරහා පෞද්ගලික පොකුරේ API විසඳිය නොහැක
ක්රියාකාරී උමඟ පෞද්ගලික කලාපය විසඳිය හැකි ලෙස නොකරයි. VNet විසඳනය hosts හෝ යොමුකරු සටහන් සමඟ යැවීම සසඳන්න, පසුව API අන්ත ලක්ෂ්යය පරීක්ෂා කරන්න.
උමඟ ක්රියාත්මකව පවතින විට සහ API හි පෞද්ගලික ලිපිනය තවමත් ping වලට පිළිතුරු දෙන විට kubectl නාම සෙවීමේදී අසාර්ථක වේ. මාර්ගය හරි; සේවාදායකය පොකුරේ පෞද්ගලික කලාපය ගැන කිසිදා නොඇසූ විසඳනයකින් අසයි. බහුලව භාවිතා වන සංශෝධන දෙකක් ඇත: අතථ්ය ජාලයේ විසඳනය සෑම VPN සේවාදායකයකුටම යැවීම, නැතහොත් නාමය ස්ථානීයව hosts සටහනක් හෝ කොන්දේසි සහිත යොමුකරුවක් සමඟ ඇමිණීම. දෙකම එකම රෝග ලක්ෂණය වෙනස් වගකීමකින් විසඳයි, ඒවා මිශ්ර කිරීම නිසාම සෑම විටම අන්ත ලක්ෂ්යය නැවත ගොඩනඟන විට කණ්ඩායම් hosts ගොනු සංස්කරණය කරයි.
විසඳීම සහ ළඟාවීම විවිධ ස්තරවල අසාර්ථක වේ
කිසිවක් වෙනස් කිරීමට පෙර සෙවීම ඔබම කරන්න. Linux හි getent hosts හෝ Windows හි nslookup මඟින් සේවාදායකයට පිළිතුරක් ලැබේදැයි කියයි; කාලය ඉකුත් වීම හෝ NXDOMAIN විසඳනයට යොමු කරයි, වැරදි ලිපිනයක් සහිත පිළිතුර පැරණි වාර්තාවකට හෝ පොදු මඟකට යොමු කරයි.
පසුව kubectl සැබවින්ම සම්බන්ධ වන්නේ කුමන සේවාදායකයටදැයි තහවුරු කරන්න. kubeconfig සන්දර්භය URL එකක් ගබඩා කරයි, VPN මාර්ගය එය නැවත නොලියයි: සන්දර්භය පොදු අන්ත ලක්ෂ්යයක් නම් කරන්නේ නම් DNS පරිපූර්ණ විය හැකි අතර විධානය තවමත් අසාර්ථක වේ.
getent hosts api.internal.example
kubectl config view --minify -o jsonpath='{.clusters[0].cluster.server}'
kubectl -v=8 get nodes 2>&1 | head -40
තෙවන සංඥාව සෙවීමෙන් පසු අසාර්ථකත්වයේ හැඩයයි. පෞද්ගලික ලිපිනයට විසඳී පසුව TCP කාලය ඉකුත් වන නාමයක් ගිනිපවුරු හෝ බලයලත් ජාල ගැටලුවකි. පොදු ලිපිනයකට විසඳෙන නාමයක් යනු විමසුම පෞද්ගලික කලාපයෙන් ගැලවී ගිය බවයි. මෙම ප්රතිඵල තුන වෙන් කර තබන්න; එකක් ඔබව වෙනත් වගකිවයෙකු වෙත ගෙන යයි.
විකල්පය A: අතථ්ය ජාලයේ විසඳනය උමඟට යවන්න
VPN සේවාදායකය අතථ්ය ජාලය තුළ ක්රියාත්මක වන විට, සේවාදායකයට සේවාදායක සත්කාරකය භාවිතා කරන එම විසඳනයම භාවිතා කළ හැක. OpenVPN Community හි සේවාදායකය DNS විකල්පයක් යවයි; Access Server එම සැකසුම පරිපාලන අතුරුමුහුණතෙහි පෙන්වයි, සහ DNS නියෝගය එහි තුළ ගමන් කරන නිසා සේවාදායකයට පැතිකඩ නැවත බාගත කළ යුතුය.
# server.conf
push "dhcp-option DNS 10.0.0.4"
push "route 10.0.0.4 255.255.255.255"
මාර්ග පේළිය split tunnel පැතිකඩවල වැදගත් වේ. විසඳන ලිපිනයක් යැවීම එය ළඟා විය හැකි කිරීමට සමාන නොවේ: උමඟ හරහා ගමන් කරන්නේ පොකුරේ උපජාලය පමණක් නම්, 10.0.0.4 වෙත විමසුම දේශීය LAN හරහා පිටවී මිය යයි. විසඳනය සඳහා සත්කාරක මාර්ගයක් යවන්න, නැතහොත් එහි උපජාලය උමඟට ඇතුළත් කරන්න.
ලබන්නා පැත්තටද ප්රතිපත්තියක් ඇත. සේවාදායකයේ ලිපින පරාසයෙන් ළඟා විය හැකි විසඳනයක් තවමත් එතැනින් එන විමසුම් ප්රතික්ෂේප කළ හැක, සහ අතථ්ය ජාලයට සම්බන්ධ පෞද්ගලික කලාපයක් පිළිතුරු දෙන්නේ එම ජාලයේ DNS මාර්ගයෙන් පැමිණෙන සේවාදායකවලට පමණි. යැවීමෙන් පසු සෙවීම කාලය ඉකුත් වුවහොත්, සේවාදායකය නැවත ස්පර්ශ කිරීමට පෙර විසඳනයේම ලොග බලන්න.
සේවාදායකයේ යෙදුණේ කුමක්දැයි තහවුරු කරන්න: systemd-resolved Linux හි resolvectl status, macOS හි scutil --dns, Windows හි ipconfig /all. යවන ලද DNS සේවාදායකය කිසිදා නොපෙනේ නම් යනු පැතිකඩ නැවත පූරණය නොවූ බවයි.
විකල්පය B: hosts සටහන් සහ කොන්දේසි සහිත යොමු කිරීම
hosts සටහන කුඩාම හැකි සංශෝධනය සහ වඩාත්ම බිඳෙන සුළු එකයි. එය එක් නාමයක් එක් යන්ත්රයක එක් ලිපිනයකට සිතියම් කරයි, එබැවින් නිරූපණයකට ක්රියා කරන අතර පෞද්ගලික අන්ත ලක්ෂ්යය හෝ එහි IP නැවත ගොඩනඟන විට බිඳේ. එය සැබෑ පරතරය අනෙක් කණ්ඩායමෙන් සඟවයි.
කොන්දේසි සහිත යොමුකරුවෙකු සෑම සේවාදායකයකුටම DNS නොයවා වඩා හොඳින් පරිමාණය වේ. dnsmasq වෙතින් එක් කලාපයක් VNet විසඳනයට යවා අනෙක් සියල්ල නිහඬව තැබිය හැක: server=/cluster.internal/10.0.0.4. Windows DNS හි කොන්දේසි සහිත යොමුකරුවන් ඇත, සහ Windows සේවාදායකයට එම බෙදීම සඳහා NRPT රීතියක් භාවිතා කළ හැක. යොමුකරුවාට තවමත් VNet විසඳනයට මාර්ගයක් අවශ්යයි.
යොමු කිරීම සාමාන්ය බ්රව්ස් කිරීම දේශීයව තබයි, එය split tunnel හි වැදගත් වේ. එය ඔබට පෞද්ගලික කලාපයේ විමසුම් ලොග් කිරීමට එක් තැනක් සහ යොමුකරු සත්කාරකය මාරු වන විට බිඳෙන එක් තැනක් ලබා දෙයි.
වගකීම අනුව තෝරන්න, පහසුව අනුව නොවේ
VPN පැතිකඩ ඔබ පාලනය කරන අතර සෑම පෞද්ගලික නාමයක්ම ක්රියා කළ යුතු යැයි අවශ්ය නම්, API පමණක් නොව, විසඳනය යවන්න. සේවාදායකයට අනෙක් සියල්ල සඳහා තම දේශීය DNS තබා ගැනීමට සිදු වුවහොත්, නැතහොත් VPN පොකුරට වඩා වෙනත් කණ්ඩායමක් කළමනාකරණය කරන්නේ නම් යොමුකරුවෙකු තෝරන්න.
hosts සටහන් රෝග විනිශ්චයකි, යෙදවීමක් නොවේ. API ළඟා විය හැකි බව ඔප්පු කිරීමට එකක් භාවිතා කරන්න, පසුව එය ඉවත් කර විසඳනයේ මාර්ගය අසුරන්න; එය එහි තැබීම පසුව මාර්ගගත කිරීමේ ප්රශ්නයක් නිධාන සොයා යාමක් බවට පත් කරයි. ඔබ තෝරන විකල්පය කුමක් වුවත්, කලාපය, විසඳන ලිපිනය සහ විමසුම රැගෙන යන මාර්ගය ලියා තබන්න.
API අන්ත ලක්ෂ්යය පරීක්ෂා කරන්න, නාමය පමණක් නොව
සෙවීම සාර්ථක වූ පසු, පොකුරේ CA සමඟ API හි අනුවාද අන්ත ලක්ෂ්යය ලබා ගන්න. curl --cacert ca.crt https://api.internal.example:6443/version TLS සහ අවසර අසාර්ථකතා DNS වලින් වෙන් කරයි. 403 යනු නාමය සහ සම්බන්ධතාවය ක්රියා කරන අතර අනන්යතාවය ක්රියා නොකරන බවයි.
සේවාදායකයේ ලිපින පරාසය පොකුරේ බලයලත් ජාල හෝ ගිනිපවුරු විසින් අනුමත කරන්නේදැයි ද බලන්න. පෞද්ගලික පොකුරු බොහෝ විට API ගමනාගමනය පිළිගන්නේ VNet හෝ peered පරාසවලින් පමණි, එබැවින් වෙනත් තටාකයකින් ලිපින ලබා දෙන උමඟක් ජාල ස්තරයේ සම්බන්ධ වී API හි ඉවත් කරනු ලැබේ.
ඉහළ නංවන විට කරුණු හතරක් ලියන්න: සේවාදායකය භාවිතා කළ විසඳනය, එය ආපසු දුන් ලිපිනය, තෝරාගත් kubeconfig සන්දර්භයේ සේවාදායක URL, සහ අසාර්ථක වූ පළමු මෙහෙයුම. එම වාර්තාව ඊළඟ ඉංජිනේරුවාට DNS, මාර්ගගත කිරීම හෝ ගිනිපවුරු ප්රතිපත්තිය වෙනස් කළ යුතුදැයි කියයි, සහ ඊළඟ hosts ගොනු සංස්කරණය නවත්වයි.
සෙවීමෙන් ආරම්භ කරන්න, කලාපයේ හිමිකරුට ගැළපෙන විසඳන මාර්ගය තෝරන්න, පසුව අන්ත ලක්ෂ්යය තහවුරු කරන්න. තුනම සමත් වුවහොත්, ඉතිරි ගැටලුව අවසරයයි, නාම විසඳීම නොවේ.