GKE පොඩ් VPN හරහා දේශීය සත්කාරක වෙත නොපැමිණෙන්නේ ඇයි
නෝඩය දේශීය ජාලයට ළඟා වේ, පොඩ් නොවේ. GKE හි masquerade ව්යතිරේක 10.x ගමනාන්ත සඳහා පොඩ් ලිපින පරිවර්තනය නොකර තබයි.
නෝඩයෙන් පිංග් ක්රියා කරන අතර පොඩ් එකෙන් එය අසාර්ථක වේ, දේශීය පැත්තට කිසිවක් ළඟා නොවේ. උමං මාර්ගය සහ මාර්ගය හරි; කම්බියේ ඇති මූලාශ්ර ලිපිනය නොවේ. මෙම අවස්ථා දෙක අතර වෙනස වන්නේ ක්ලස්ටරයෙන් පිටවන විට පැකට් එක තමා කවරෙක් ලෙස ප්රකාශ කරයිද යන්නයි, GKE ඒ ගැන අදහසක් දරයි. යාන්ත්රණය වන්නේ masquerade ව්යතිරේක ලැයිස්තුවක් වන අතර එය කියවීමට එක් විධානයක් ප්රමාණවත්ය.
කිසිවක් වෙනස් කිරීමට පෙර බලපවත්නා ලැයිස්තුව කියවන්න
GKE එක් එක් ගමනාන්ත පරාසය සඳහා පොඩ් රථවාහනය පිටවීමේදී නෝඩයේ ලිපිනයට නැවත ලියනවාද නැද්ද යන්න තීරණය කරන නියෝජිතයෙකු සපයයි. එහි සපයන ලද වින්යාසය RFC1918 කොටස් තුන, 10.0.0.0/8, 172.16.0.0/12 සහ 192.168.0.0/16, ව්යතිරේක ගමනාන්ත ලෙස නම් කරයි. එබැවින් පොඩ් එකකින් දේශීය 10.x සත්කාරකයකට ඔබ යවන සෑම දෙයක්ම පොඩ් එකේම ලිපිනය තවම ඇමිණී ලෙස නෝඩය හැර යයි. නෝඩයේම රථවාහනය නැවත ලියන්නේ නැත, එහි පිංග් ක්රියා කරන්නේ ඒ නිසාමය.
අපේක්ෂිත වින්යාසය සහ ස්ථාපිත නීති කියවන්න, ඒවා නොගැලපිය හැක. kubectl -n kube-system get configmap ip-masq-agent -o yaml නියෝජිතයාට පැවසූ දේ පෙන්වයි, kubectl -n kube-system get pods -l k8s-app=ip-masq-agent එය යෙදීමට යමක් ධාවනය වන්නේද පෙන්වයි. නෝඩයක iptables-save | grep -i masq කර්නලයේ සැබවින්ම ඇති නීති පෙන්වයි. ConfigMap එකක් පවසන විට නීති තවක් පවසන්නේ නම්, සැකකරු ජාලය නොව නියෝජිතයාය.
ඇල්ලීමකින් මූලාශ්ර ලිපිනය තහවුරු කරන්න
ලැයිස්තුවක් වෙනස් කිරීමට පෙර ඇල්ලීමක් කරන්න. එක් ගමනාන්තයක් මත පෙරහනක් ප්රතිදානය කියවිය හැකි ලෙස තබයි: tcpdump -ni any host 10.20.30.40.
එය අනෙක් පැත්ත වාර්තා කරන දෙය සමඟ සසඳන්න. දේශීය පැත්තේ පොඩ් ලිපිනය පෙන්වා පිළිතුරක් නොමැති ඇල්ලීමක් රවුම වසයි: ව්යතිරේක ලැයිස්තුව උමං දෝෂයකින් තොරව අසමමිතිය පැහැදිලි කරයි. එක් මූලාශ්ර ලිපිනයක නිරීක්ෂණ දෙකක් CNI ගැන අනුමාන කිරීම නැවැත්වීමට ප්රමාණවත්ය.
ව්යතිරේකය පොඩ් CIDR දක්වා පටු කරන්න
සහාය දක්වන අලුත්වැඩියාව ව්යතිරේකය ඉවත් කරනවාට වඩා පටු කරයි: පොඩ් CIDR ව්යතිරේකව තබා 10.x අවකාශයේ ඉතිරිය අත්හරින්න. එම ලැයිස්තුව නියෝජිතයාගේ ConfigMap තුළ nonMasqueradeCIDRs යටතේ පවතී, එය වෙනස් කිරීම සංස්කරණයක් වන අතර ඉන් පසු ප්රකාශනයක්. පළල් සටහන ක්ලස්ටරයේ සැබෑ පොඩ් පරාසය සමඟ ප්රතිස්ථාපනය කරන්න, ක්ලස්ටරය තුළ රථවාහනයට තවමත් අවශ්ය නම් අනෙක් පෞද්ගලික කොටස් තබන්න, හේතුවක් නොමැති නම් resyncInterval එලෙසම තබන්න. යොදන්න, නියෝජිතයාගේ පොඩ් නැවත ආරම්භ වූ බව තහවුරු කරන්න, සහ කර්නල නීති වෙනස් වූ බව තහවුරු කරන්න.
මෙය සැබෑ බලපෑම් අරයක් සහිත මුළු ක්ලස්ටරයේම වෙනසකි. එය ක්රියාත්මක වූ පසු, කලින් තම පොඩ් මූලාශ්රය රඳවා ගත් රථවාහනය දැන් නෝඩයට නැවත ලියා එයි, එබැවින් එම පොඩ් ලිපින මත රඳා පැවති සියල්ලට වෙනස් යවන්නෙකු පෙනේ. ගොදුරු වන්නේ පොඩ් ලිපින නම් කරන ලොග, අවසර ලැයිස්තු සහ දේශීය ෆයර්වෝල් නීති වන අතර ඒවා නිහඬව අසාර්ථක වේ. වෙනස අලුත්වැඩියාවක් ලෙස නොව හැසිරීම් වෙනසක් ලෙස නිවේදනය කරන්න.
නෝඩ් තටාක කිහිපයක් ඇති ක්ලස්ටරයක, බලපෑමට ලක් වූ පොඩ් සැබවින්ම ධාවනය වන නෝඩ් මත නියෝජිතයා නියම කර ඇත්දැයි පරීක්ෂා කරන්න. DaemonSet නොමැති තටාකයක් එහි පැරණි නීති රඳවා ගනී, ConfigMap තුළ එය පෙන්වන කිසිවක් නොමැත.
විකල්පය සහ එහි පිරිවැය
අනෙක් විකල්පය පොඩ් ලිපින නොසැලී තබා මාර්ගයට ඒවා ගැන උගන්වයි. පොඩ් CIDR Cloud VPN රථවාහන තේරීම්කරුවන්ට යයි, දේශීය පැත්තට පිළිතුරු කොහේ යා යුතුදැයි දැනගැනීමට ඒ සඳහා ආපසු මාර්ගයක් අවශ්යය. මෙය සමහර ආරක්ෂක ආකෘතිවලට අවශ්ය පොඩ් අනන්යතාව රක්ෂා කරන අතර අනෙක් පැත්ත පිළිගත යුතු මාර්ගගතකරණ සහ ෆයර්වෝල් විෂය පථය දෙකම පුළුල් කරයි.
වෙළඳාම වන්නේ කියවීමේ හැකියාව පථයට එරෙහිවය. පරිවර්තනය දේශීය පැත්තට එක් නෝඩයකට එක් ලිපිනයක් පෙන්වයි, එය අවසර ලැයිස්තුවකට ඇතුළත් කිරීම පහසු වන අතර කුමන පොඩ් කුමක් යැව්වාද යන්න සඟවයි. පරිවර්තනය නොමැතිව පොඩ් ලිපිනය කෙළවරේ සිට කෙළවර දක්වා රැඳේ, එය ආරෝපණයට හොඳ සහ නව පරාසයක් ඉගෙන ගත යුතු මාර්ගයේ සෑම උපාංගයකටම නරකය. කිසිදු විකල්පයක් Docker හෝ CNI දෝෂයක් නොවේ; දෙකම මෙහෙයුම් බිල්පතක් සහිත මාර්ගගතකරණ තීරණ වේ. ඔබේ කණ්ඩායමට ගෙවිය හැකි බිල්පත ඇති එක තෝරන්න, ඇයි කියා ලියන්න.
සත්යාපනය කර ආපසු හරවන්න
එම ඇල්ලීමම නැවත ධාවනය කරන්න. ඔබේ සංස්කරණයෙන් පසුවත් නෝඩ් මට්ටමේ ඇල්ලීම පොඩ් ලිපිනය මුද්රණය කරන්නේ නම්, ConfigMap කුමක් කීවත් නීති කිසිදා වෙනස් වී නැත. කම්බිය යනු කරුණයි; ඉතිරි සියල්ල අනුමානයි.
පසුව ප්රතිවිරුද්ධ දිශාව පරීක්ෂා කරන්න, මක්නිසාද යත් මෙම වෙනස්කම්වලින් අඩක් පිටතට පමණක් සත්යාපනය වේ. පිළිතුර ඉල්ලීම යැවූ නෝඩයට හෝ පොඩ් එකට ළඟා වන බව සහ යෙදුම SYN ලැබීම පමණක් නොව අවසන් වූ බව තහවුරු කරන්න. පිළිතුරක් නොමැති ඉල්ලීමක් පෙන්වන ඇල්ලීම අනෙක් පැත්තේ මාර්ගගතකරණ ගැටලුවක්, මෙපිට masquerade ගැටලුවක් නොවේ.
ආපසු හැරවීම යනු පෙර ConfigMap, එලෙසම යොදා, නියෝජිතයා නැවත ආරම්භ වූ සහ නීති වෙනස් වූ බවට එම තහවුරු කිරීම සමඟය. වෙනස්කම් වාර්තාවේ එක් දන්නා ඉල්ලීමක මූලාශ්ර ලිපිනය පෙර සහ පසු තබන්න, මක්නිසාද යත් එම එක් පේළියම වෙනස ඔබ කී දේ කළ බව ඔප්පු කරයි. GKE IP masquerade නියෝජිත මාර්ගෝපදේශය පෙරනිමි සහ ConfigMap ක්ෂේත්ර ලේඛනගත කරයි. ප්රකාශනයෙන් පසු මූලාශ්ර ලිපිනය වෙනස් නොවුණේ නම්, එම නෝඩයේ නියෝජිතයා ධාවනය නොවන අතර කොපමණ YAML සංස්කරණයකින්වත් එය නොහරිනු ඇත.