පසුගිය වතාවේ අපි ස්ථිතික සහ ගතික මාර්ගගත කිරීම් අනුව NSX Edge හි හැකියාවන් ගැන කතා කළ අතර අද අපි load balancer සමඟ කටයුතු කරන්නෙමු.
අපි පිහිටුවීම ආරම්භ කිරීමට පෙර, සමතුලිත කිරීමේ ප්රධාන වර්ග පිළිබඳව කෙටියෙන් ඔබට මතක් කිරීමට මම කැමැත්තෙමි.
න්යාය
අද පවතින සියලුම ගෙවීම් සමතුලිත විසඳුම් බොහෝ විට කාණ්ඩ දෙකකට බෙදා ඇත: ආකෘතියේ සිව්වන (ප්රවාහනය) සහ හත්වන (යෙදුම්) මට්ටම්වල සමතුලිත කිරීම
- බැලන්සර් L4 බොහෝ විට එය සේවාලාභියා සහ පවතින පසුබිම් කට්ටලයක් අතර මධ්යම ප්රොක්සියක් වන අතර, එය TCP සම්බන්ධතා අවසන් කරයි (එනම්, ස්වාධීනව SYN වෙත ප්රතිචාර දක්වයි), පසුබිමක් තෝරා එහි දිශාවට නව TCP සැසියක් ආරම්භ කරයි, ස්වාධීනව SYN යවයි. මෙම වර්ගයේ මූලික එකක් වේ; වෙනත් විකල්ප හැකි ය.
- බැලන්සර් L7 L4 balancer වලට වඩා "වඩා සංකීර්ණ" පවතින පසුපෙළ හරහා ගමනාගමනය බෙදා හරියි. උදාහරණයක් ලෙස, HTTP පණිවිඩයේ අන්තර්ගතය (URL, කුකී, ආදිය) මත පදනම්ව තෝරාගත යුත්තේ කුමන පසුබිමද යන්න තීරණය කළ හැක.
වර්ගය කුමක් වුවත්, සමතුලිතයට පහත කාර්යයන් සඳහා සහාය විය හැකිය:
- සේවා සොයාගැනීම යනු පවතින පසුබිම් කට්ටලය (ස්ථිතික, DNS, කොන්සල්, Etcd, ආදිය) තීරණය කිරීමේ ක්රියාවලියයි.
- අනාවරණය කරගත් පසුපෙළවල ක්රියාකාරීත්වය පරීක්ෂා කිරීම (HTTP ඉල්ලීමක් භාවිතයෙන් පසු අන්තයේ සක්රිය "ping", TCP සම්බන්ධතා වල ගැටළු නිෂ්ක්රීයව හඳුනා ගැනීම, ප්රතිචාරවල HTTP කේත 503 ක් තිබීම යනාදිය).
- සමතුලිත වීම (රවුන්ඩ් රොබින්, අහඹු තේරීම, මූලාශ්ර IP හැෂ්, URI).
- TLS අවසන් කිරීම සහ සහතික සත්යාපනය.
- ආරක්ෂාවට අදාළ විකල්ප (සත්යාපනය, DoS ප්රහාර වැළැක්වීම, වේග සීමා කිරීම) සහ තවත් බොහෝ දේ.
NSX Edge බර සමතුලිත යෙදවුම් මාතයන් දෙකක් සඳහා සහය දක්වයි:
ප්රොක්සි මාදිලිය, හෝ එක් අතක්. මෙම ප්රකාරයේදී, NSX Edge එක පසුබිම් එකකට ඉල්ලීමක් යවන විට මූලාශ්ර ලිපිනය ලෙස එහි IP ලිපිනය භාවිතා කරයි. මේ අනුව, සමතුලිතය එකවරම ප්රභවය සහ ගමනාන්තය NAT හි කාර්යයන් ඉටු කරයි. පසුපෙළ සමතුලිතයෙන් යවන ලද සියලුම තදබදය දකින අතර එයට සෘජුවම ප්රතිචාර දක්වයි. එවැනි යෝජනා ක්රමයක් තුළ, සමතුලිතය අභ්යන්තර සේවාදායකයන් සමඟ එකම ජාල කොටසෙහි තිබිය යුතුය.
එය සිදුවන ආකාරය මෙන්න:
1. පරිශීලකයා Edge මත වින්යාස කර ඇති VIP ලිපිනයට (balancer address) ඉල්ලීමක් යවයි.
2. Edge විසින් පසුබිම්වලින් එකක් තෝරාගෙන ගමනාන්ත NAT සිදු කරයි, VIP ලිපිනය තෝරාගත් පසුපෙළේ ලිපිනය සමඟ ප්රතිස්ථාපනය කරයි.
3. Edge විසින් ප්රභව NAT සිදු කරයි, ඉල්ලීම එවූ පරිශීලකයාගේ ලිපිනය තමන්ගේම ලිපිනයෙන් ප්රතිස්ථාපනය කරයි.
4. පැකේජය තෝරාගත් පසුපෙළ වෙත යවනු ලැබේ.
5. පරිශීලකයාගේ මුල් ලිපිනය සමතුලිතයාගේ ලිපිනයට වෙනස් කර ඇති බැවින් පසුපෙළ පරිශීලකයාට සෘජුවම ප්රතිචාර නොදක්වයි, නමුත් Edge වෙත.
6. Edge සේවාදායකයේ ප්රතිචාරය පරිශීලකයාට සම්ප්රේෂණය කරයි.
රූප සටහන පහතින්.
විනිවිද පෙනෙන, හෝ පේළිගත, මාදිලිය. මෙම අවස්ථාවෙහිදී, සමතුලිතයට අභ්යන්තර සහ බාහිර ජාල වල අතුරු මුහුණත් ඇත. ඒ සමගම, බාහිර ජාලයෙන් අභ්යන්තර ජාලයට සෘජු ප්රවේශයක් නොමැත. බිල්ට් ලෝඩ් බැලන්සර් අභ්යන්තර ජාලයේ අථත්ය යන්ත්ර සඳහා NAT ද්වාරයක් ලෙස ක්රියා කරයි.
යාන්ත්රණය පහත පරිදි වේ:
1. පරිශීලකයා Edge මත වින්යාස කර ඇති VIP ලිපිනයට (balancer address) ඉල්ලීමක් යවයි.
2. Edge විසින් පසුබිම්වලින් එකක් තෝරාගෙන ගමනාන්ත NAT සිදු කරයි, VIP ලිපිනය තෝරාගත් පසුපෙළේ ලිපිනය සමඟ ප්රතිස්ථාපනය කරයි.
3. පැකේජය තෝරාගත් පසුපෙළ වෙත යවනු ලැබේ.
4. පසුපෙළ පරිශීලකයාගේ මුල් ලිපිනය සමඟ ඉල්ලීමක් ලබා ගනී (මූලාශ්ර NAT සිදු කර නැත) සහ එයට සෘජුවම ප්රතිචාර දක්වයි.
5. මාර්ගගත යෝජනා ක්රමයකදී එය සාමාන්යයෙන් සේවාදායක ගොවිපල සඳහා පෙරනිමි ද්වාරය ලෙස ක්රියා කරන බැවින්, ගමනාගමනය නැවත භාර ශේෂය විසින් පිළිගනු ලැබේ.
6. Edge විසින් ප්රභූ IP ලිපිනය ලෙස භාවිතා කරමින් පරිශීලකයා වෙත ගමනාගමනය යැවීමට මූලාශ්ර NAT සිදු කරයි.
රූප සටහන පහතින්.
පුහුණු වන්න
මගේ පරීක්ෂණ බංකුවට Apache ධාවනය වන සේවාදායක 3ක් ඇත, එය HTTPS හරහා ක්රියා කිරීමට වින්යාස කර ඇත. Edge විසින් HTTPS ඉල්ලීම් වල රවුන්ඩ් රොබින් තුලනය සිදු කරනු ඇත, සෑම නව ඉල්ලීමක්ම නව සේවාදායකයකට ප්රොක්සි කරයි.
ආරම්භ කරමු.
NSX Edge විසින් භාවිතා කරනු ලබන SSL සහතිකයක් උත්පාදනය කිරීම
ඔබට වලංගු CA සහතිකයක් ආයාත කිරීමට හෝ ස්වයං අත්සන් කළ එකක් භාවිතා කිරීමට හැකිය. මෙම පරීක්ෂණය සඳහා මම ස්වයං අත්සන් භාවිතා කරමි.
- vCloud අධ්යක්ෂක අතුරුමුහුණත තුළ, Edge සේවා සැකසුම් වෙත යන්න.
- සහතික පටිත්ත වෙත යන්න. ක්රියා ලැයිස්තුවෙන්, නව ආයතනික සමාජ වගකීමක් එකතු කිරීම තෝරන්න.
- අවශ්ය ක්ෂේත්ර පුරවා Keep ක්ලික් කරන්න.
- අලුතින් සාදන ලද CSR තෝරන්න සහ ස්වයං-අත්සන් CSR විකල්පය තෝරන්න.
- සහතිකයේ වලංගු කාලය තෝරන්න සහ තබා ගන්න ක්ලික් කරන්න
- ස්වයං අත්සන් කරන ලද සහතිකය පවතින අයගේ ලැයිස්තුවේ දිස්වේ.
යෙදුම් පැතිකඩ සැකසීම
යෙදුම් පැතිකඩ ඔබට ජාල ගමනාගමනය පිළිබඳ වඩාත් සම්පූර්ණ පාලනය ලබා දෙන අතර එය කළමනාකරණය කිරීම සරල හා ඵලදායී කරයි. විශේෂිත රථවාහන වර්ග සඳහා හැසිරීම් නිර්වචනය කිරීමට ඒවා භාවිතා කළ හැක.
- Load Balancer ටැබ් එකට ගිහින් balancer එක enable කරන්න. මෙහි ඇති Acceleration enabled විකල්පය මගින් balancer හට L4 වෙනුවට වේගවත් L7 තුලනය භාවිතා කිරීමට ඉඩ සලසයි.
- යෙදුම් පැතිකඩ සැකසීමට යෙදුම් පැතිකඩ පටිත්ත වෙත යන්න. + ක්ලික් කරන්න.
- පැතිකඩෙහි නම සකසන්න සහ පැතිකඩ යෙදිය යුතු ගමනාගමන වර්ගය තෝරන්න. මට පරාමිතීන් කිහිපයක් පැහැදිලි කිරීමට ඉඩ දෙන්න.
නොපසුබට උත්සාහය - සැසි දත්ත ගබඩා කිරීම සහ ලුහුබැඳීම, උදාහරණයක් ලෙස: සංචිතයේ ඇති විශේෂිත සේවාදායකය පරිශීලක ඉල්ලීමට සේවය කරයි. පරිශීලක ඉල්ලීම් සැසියේ ජීවිත කාලය සඳහා හෝ පසුව සැසි සඳහා එකම සංචිත සාමාජිකයෙකු වෙත යොමු කරන බව මෙය සහතික කරයි.
SSL passthrough සබල කරන්න - මෙම විකල්පය තෝරාගත් විට, NSX Edge SSL අවසන් කිරීම නවත්වයි. ඒ වෙනුවට, අවසන් කිරීම සමතුලිත වන සේවාදායකයන් මත කෙලින්ම සිදු වේ.
X-Forwarded-For HTTP ශීර්ෂකය ඇතුළු කරන්න - load balancer හරහා වෙබ් සේවාදායකයට සම්බන්ධ වන සේවාදායකයාගේ මූලාශ්ර IP ලිපිනය තීරණය කිරීමට ඔබට ඉඩ සලසයි.
තටාක පැති SSL සබල කරන්න - තෝරාගත් සංචිතය HTTPS සේවාදායකයන්ගෙන් සමන්විත බව සඳහන් කිරීමට ඔබට ඉඩ සලසයි.
- මම HTTPS ගමනාගමනය තුලනය කරන බැවින්, මට Pool Side SSL සක්රිය කිරීමට සහ අතථ්ය සේවාදායක සහතික -> සේවා සහතික පටිත්තෙහි කලින් ජනනය කළ සහතිකය තෝරා ගැනීමට අවශ්ය වේ.
- සංචිත සහතික සඳහාද -> සේවා සහතිකය.
අපි සේවාදායක සංචිතයක් සාදන්නෙමු, ගමනාගමනය සමතුලිත වනු ඇත
- තටාක පටිත්ත වෙත යන්න. + ක්ලික් කරන්න.
- අපි තටාකයේ නම සකසන්නෙමු, ඇල්ගොරිතම (මම රවුන්ඩ් රොබින් භාවිතා කරමි) සහ සෞඛ්ය පිරික්සුම් පසුබිම සඳහා අධීක්ෂණ වර්ගය තෝරන්න. විනිවිද පෙනෙන විකල්පය මඟින් සේවාලාභීන්ගේ ආරම්භක මූලාශ්ර IP අභ්යන්තර සේවාදායකයන්ට දෘශ්යමාන වේද යන්න දක්වයි.
- විකල්පය අක්රිය කර ඇත්නම්, අභ්යන්තර සේවාදායකයන් සඳහා ගමනාගමනය පැමිණෙන්නේ සමතුලිතයේ ප්රභව IP මගිනි.
- විකල්පය සක්රීය කර ඇත්නම්, අභ්යන්තර සේවාදායකයන් සේවාලාභීන්ගේ මූලාශ්ර IP බලන්න. මෙම වින්යාසය තුළ, ආපසු එන පැකට් NSX Edge හරහා ගමන් කරන බව සහතික කිරීම සඳහා NSX Edge පෙරනිමි ද්වාරය ලෙස ක්රියා කළ යුතුය.
NSX පහත සමතුලිත ඇල්ගොරිතම සඳහා සහය දක්වයි:
- IP_HASH - එක් එක් පැකට්ටුවේ මූලාශ්රය සහ ගමනාන්ත IP සඳහා හැෂ් ශ්රිතයක ප්රතිඵල මත පදනම්ව සේවාදායක තේරීම.
- ලීස්කන් - යම් සේවාදායකයක දැනටමත් පවතින අංකයට අනුව පැමිණෙන සම්බන්ධතා සමතුලිත කිරීම. නව සම්බන්ධතා අඩුම සම්බන්ධතා ඇති සේවාදායකය වෙත යොමු කෙරේ.
- ROUND_ROBIN - එක් එක් සේවාදායකයට පැවරී ඇති බරට අනුකූලව නව සම්බන්ධතා යවනු ලැබේ.
- URI - URI හි වම් කොටස (ප්රශ්නාර්ථ ලකුණට පෙර) හැෂ් කර සංචිතයේ ඇති සේවාදායකයන්ගේ මුළු බරින් බෙදනු ලැබේ. ප්රතිඵලය මඟින් ඉල්ලීම ලැබෙන්නේ කුමන සේවාදායකයද යන්න පෙන්නුම් කරයි, සියලුම සේවාදායකයන් පවතින තාක්, ඉල්ලීම සෑම විටම එකම සේවාදායකය වෙත යොමු කෙරෙන බව සහතික කරයි.
- HTTPHEADER - පරාමිතියක් ලෙස සඳහන් කළ හැකි විශේෂිත HTTP ශීර්ෂයක් මත පදනම්ව තුලනය කිරීම. ශීර්ෂකය අස්ථානගත වී ඇත්නම් හෝ කිසිදු අගයක් නොමැති නම්, ROUND_ROBIN ඇල්ගොරිතම යොදනු ලැබේ.
- URL එක - එක් එක් HTTP GET ඉල්ලීමක් තර්කයක් ලෙස දක්වා ඇති URL පරාමිතිය සඳහා සෙවුම් කරයි. පරාමිතියට සමාන ලකුණක් සහ අගයක් අනුගමනය කරන්නේ නම්, එම අගය හැෂ් කර ක්රියාත්මක වන සේවාදායකයන්ගේ මුළු බරින් බෙදනු ලැබේ. ප්රතිඵලය මඟින් ඉල්ලීම ලැබෙන්නේ කුමන සේවාදායකයටද යන්න දක්වයි. මෙම ක්රියාවලිය ඉල්ලීම්වල පරිශීලක හැඳුනුම්පත් නිරීක්ෂණය කිරීමට සහ සියලුම සේවාදායකයන් පවතින තාක් එකම පරිශීලක හැඳුනුම්පත සෑම විටම එකම සේවාදායකයට යවන බව සහතික කිරීමට භාවිතා කරයි.
- සාමාජිකයින් අවහිරය තුළ, සංචිතයට සේවාදායකයන් එක් කිරීමට + ක්ලික් කරන්න.
මෙන්න ඔබ සඳහන් කළ යුතුය:- සේවාදායක නම;
- සේවාදායක IP ලිපිනය;
- සේවාදායකයට ගමනාගමනය ලැබෙන වරාය;
- සෞඛ්ය පරීක්ෂාව සඳහා වරාය (අධීක්ෂණ සෞඛ්ය පරීක්ෂාව);
- බර - මෙම පරාමිතිය භාවිතා කිරීමෙන් ඔබට විශේෂිත සංචිත සාමාජිකයෙකු සඳහා ලැබුණු රථවාහන ප්රමාණය සමානුපාතිකව සකස් කළ හැකිය;
- උපරිම සම්බන්ධතා - සේවාදායකයට උපරිම සම්බන්ධතා සංඛ්යාව;
- අවම සම්බන්ධතා - ඊළඟ සංචිත සාමාජිකයා වෙත ගමනාගමනය යැවීමට පෙර සේවාදායකය විසින් සැකසිය යුතු අවම සම්බන්ධතා ගණන.
සේවාදායක තුනක අවසාන සංචිතය පෙනෙන්නේ මෙයයි.
Virtual Server එකතු කිරීම
- Virtual Servers ටැබ් එකට යන්න. + ක්ලික් කරන්න.
- අපි Virtual Server Enable Virtual Server භාවිතයෙන් සක්රිය කරමු.
අපි එයට නමක් ලබා දී, කලින් සාදන ලද යෙදුම් පැතිකඩ, සංචිතය තෝරන්න සහ අතථ්ය සේවාදායකයට පිටතින් ඉල්ලීම් ලැබෙන IP ලිපිනය දක්වන්න. අපි HTTPS ප්රොටෝකෝලය සහ වරාය 443 සඳහන් කරමු.
විකල්ප පරාමිතීන් මෙහි:
සම්බන්ධතා සීමාව - අතථ්ය සේවාදායකයට සැකසිය හැකි උපරිම සමගාමී සම්බන්ධතා සංඛ්යාව;
සම්බන්ධතා ගාස්තු සීමාව (CPS) - තත්පරයකට නව එන ඉල්ලීම් උපරිම ගණන.
මෙය සමතුලිතයේ වින්යාසය සම්පූර්ණ කරයි; ඔබට එහි ක්රියාකාරිත්වය පරීක්ෂා කළ හැකිය. සේවාදායකයන්ට සරල වින්යාසයක් ඇති අතර එමඟින් ඉල්ලීම සකසා ඇත්තේ සංචිතයෙන් කුමන සේවාදායකයද යන්න තේරුම් ගැනීමට ඔබට ඉඩ සලසයි. සැකසුම අතරතුර, අපි රවුන්ඩ් රොබින් සමතුලිත ඇල්ගොරිතම තෝරා ගත් අතර, එක් එක් සේවාදායකය සඳහා බර පරාමිතිය එකකට සමාන වේ, එබැවින් සෑම පසු ඉල්ලීමක්ම සංචිතයෙන් ඊළඟ සේවාදායකය විසින් සකසනු ලැබේ.
අපි බ්රවුසරයේ සමතුලිතයේ බාහිර ලිපිනය ඇතුළත් කර බලන්න:
පිටුව නැවුම් කිරීමෙන් පසු, ඉල්ලීම පහත සේවාදායකය විසින් සකසනු ලැබේ:
නැවතත් - තටාකයෙන් තෙවන සේවාදායකය පරීක්ෂා කිරීමට:
පරීක්ෂා කිරීමේදී, Edge අපට එවන සහතිකය අපි ආරම්භයේදීම උත්පාදනය කළ සහතිකයම බව ඔබට පෙනෙනු ඇත.
Edge gateway console වෙතින් balancer තත්ත්වය පරීක්ෂා කිරීම. මෙය සිදු කිරීම සඳහා, ඇතුල් කරන්න සේවා loadbalancer සංචිතය පෙන්වන්න.
සංචිතයේ ඇති සේවාදායකයන්ගේ තත්ත්වය පරීක්ෂා කිරීමට සේවා මොනිටරය වින්යාස කිරීම
සේවා මොනිටරය භාවිතයෙන් අපට පසුපෙළ සංචිතයේ සේවාදායකයන්ගේ තත්ත්වය නිරීක්ෂණය කළ හැකිය. ඉල්ලීමකට ප්රතිචාරය අපේක්ෂා කළ පරිදි නොමැති නම්, සේවාදායකයට නව ඉල්ලීම් නොලැබෙන පරිදි සංචිතයෙන් පිටතට ගත හැක.
පෙරනිමියෙන්, සත්යාපන ක්රම තුනක් වින්යාස කර ඇත:
- TCP-මොනිටරය,
- HTTP මොනිටරය,
- HTTPS-මොනිටරය.
අපි අලුත් එකක් හදමු.
- සේවා අධීක්ෂණ පටිත්ත වෙත යන්න, + ක්ලික් කරන්න.
- තෝරා:
- නව ක්රමය සඳහා නම;
- ඉල්ලීම් එවන කාල පරතරය,
- ප්රතිචාරයක් බලාපොරොත්තුවෙන් කල් ඉකුත්වීම,
- අධීක්ෂණ වර්ගය - GET ක්රමය භාවිතයෙන් HTTPS ඉල්ලීම, අපේක්ෂිත තත්ත්ව කේතය - 200(OK) සහ URL ඉල්ලන්න.
- මෙය නව සේවා මොනිටරයේ සැකසුම සම්පූර්ණ කරයි; දැන් අපට එය සංචිතයක් නිර්මාණය කිරීමේදී භාවිතා කළ හැක.
යෙදුම් රීති සැකසීම
යෙදුම් රීති යනු ඇතැම් ප්රේරක මත පදනම්ව ගමනාගමනය හැසිරවීමේ ක්රමයකි. මෙම මෙවලම සමඟින් අපට යෙදුම් පැතිකඩ හෝ Edge Gateway හි ඇති වෙනත් සේවාවන් හරහා කළ නොහැකි උසස් භාර සමතුලිත නීති නිර්මාණය කළ හැකිය.
- රීතියක් සෑදීමට, සමතුලිතයේ යෙදුම් රීති පටිත්ත වෙත යන්න.
- රීතිය භාවිතා කරන නමක්, ස්ක්රිප්ට් එකක් තෝරන්න, සහ Keep ක්ලික් කරන්න.
- රීතිය නිර්මාණය කිරීමෙන් පසුව, අපි දැනටමත් වින්යාස කර ඇති අථත්ය සේවාදායකය සංස්කරණය කළ යුතුය.
- උසස් පටිත්තෙහි, අප විසින් සාදන ලද රීතිය එක් කරන්න.
ඉහත උදාහරණයේදී අපි tlsv1 සහාය සක්රීය කළෙමු.
තවත් උදාහරණ කිහිපයක්:
ගමනාගමනය වෙනත් තටාකයකට හරවා යවන්න.
මෙම ස්ක්රිප්ටය සමඟ ප්රධාන සංචිතය පහත වැටී ඇත්නම් අපට වෙනත් සමතුලිත තටාකයකට ගමනාගමනය හරවා යැවිය හැක. රීතිය ක්රියා කිරීම සඳහා, සමතුලිතය මත බහු තටාක වින්යාසගත කළ යුතු අතර ප්රධාන සංචිතයේ සියලුම සාමාජිකයින් පහළ තත්ත්වයේ සිටිය යුතුය. ඔබ සංචිතයේ නම සඳහන් කළ යුතු අතර, එහි හැඳුනුම්පත නොවේ.
acl pool_down nbsrv(PRIMARY_POOL_NAME) eq 0
use_backend SECONDARY_POOL_NAME if PRIMARY_POOL_NAME
ගමනාගමනය බාහිර සම්පතකට හරවා යවන්න.
මෙහිදී අපි ප්රධාන සංචිතයේ සියලුම සාමාජිකයින් අඩු නම් බාහිර වෙබ් අඩවියට ගමනාගමනය හරවා යවන්නෙමු.
acl pool_down nbsrv(NAME_OF_POOL) eq 0
redirect location http://www.example.com if pool_down
ඊටත් වඩා උදාහරණ
මට බැලන්සර් ගැන එච්චරයි. ඔබට කිසියම් ප්රශ්නයක් ඇත්නම්, අසන්න, මම පිළිතුරු දීමට සූදානම්.
මූලාශ්රය: www.habr.com