குபெர்னெட்டஸுக்கு டிண்டரின் நகர்வு

எழுதியவர்: கிறிஸ் ஓ பிரையன், பொறியியல் மேலாளர் | கிறிஸ் தாமஸ், பொறியியல் மேலாளர் | ஜின்யோங் லீ, மூத்த மென்பொருள் பொறியாளர் | திருத்தியவர்: கூப்பர் ஜாக்சன், மென்பொருள் பொறியாளர்

ஏன்

ஏறக்குறைய இரண்டு ஆண்டுகளுக்கு முன்பு, டிண்டர் அதன் தளத்தை குபர்னெட்டஸுக்கு மாற்ற முடிவு செய்தார். மாற்றமுடியாத வரிசைப்படுத்தல் மூலம் டிண்டர் இன்ஜினியரிங் கொள்கலன் மற்றும் குறைந்த-தொடு செயல்பாட்டை நோக்கி நகர்த்துவதற்கான வாய்ப்பை குபர்னெட்டஸ் எங்களுக்கு வழங்கினார். பயன்பாட்டு உருவாக்கம், வரிசைப்படுத்தல் மற்றும் உள்கட்டமைப்பு ஆகியவை குறியீடாக வரையறுக்கப்படும்.

அளவு மற்றும் ஸ்திரத்தன்மையின் சவால்களை எதிர்கொள்ள நாங்கள் பார்த்துக்கொண்டிருந்தோம். அளவிடுதல் முக்கியமானதாக மாறும்போது, ​​புதிய EC2 நிகழ்வுகள் ஆன்லைனில் வருவதற்கு பல நிமிடங்கள் காத்திருந்தோம். கொள்கலன்களை திட்டமிடுவது மற்றும் நிமிடங்களுக்கு மாறாக சில நொடிகளில் போக்குவரத்தை வழங்குவது என்ற யோசனை எங்களை கவர்ந்தது.

இது எளிதானது அல்ல. 2019 ஆம் ஆண்டின் முற்பகுதியில் நாங்கள் இடம்பெயர்ந்தபோது, ​​எங்கள் குபெர்னெட்ஸ் கிளஸ்டருக்குள் சிக்கலான வெகுஜனத்தை அடைந்தோம், போக்குவரத்து அளவு, கிளஸ்டர் அளவு மற்றும் டிஎன்எஸ் காரணமாக பல்வேறு சவால்களை எதிர்கொள்ளத் தொடங்கினோம். 200 சேவைகளை நகர்த்துவதற்கும், குபர்னெட்டஸ் கிளஸ்டரை 1,000 முனைகள், 15,000 காய்கள் மற்றும் 48,000 இயங்கும் கொள்கலன்களை இயக்குவதற்கும் சுவாரஸ்யமான சவால்களை நாங்கள் தீர்த்தோம்.

எப்படி

ஜனவரி 2018 தொடங்கி, இடம்பெயர்வு முயற்சியின் பல்வேறு கட்டங்களில் நாங்கள் பணியாற்றினோம். எங்கள் எல்லா சேவைகளையும் கட்டுப்படுத்துவதன் மூலமும், அவற்றை தொடர்ச்சியான குபெர்னெட்ஸ் ஹோஸ்டிங் ஸ்டேஜிங் சூழல்களுக்கு அனுப்புவதன் மூலமும் தொடங்கினோம். அக்டோபரில் தொடங்கி, எங்கள் மரபு சேவைகள் அனைத்தையும் முறையாக குபர்னெட்டஸுக்கு நகர்த்தத் தொடங்கினோம். அடுத்த ஆண்டு மார்ச் மாதத்திற்குள், நாங்கள் எங்கள் இடம்பெயர்வுக்கு இறுதி செய்தோம், இப்போது டிண்டர் இயங்குதளம் குபெர்னெட்டஸில் மட்டுமே இயங்குகிறது.

குபெர்னெட்டுகளுக்கான படங்களை உருவாக்குதல்

குபெர்னெட்ஸ் கிளஸ்டரில் இயங்கும் மைக்ரோ சர்வீஸ்களுக்கான 30 க்கும் மேற்பட்ட மூல குறியீடு களஞ்சியங்கள் உள்ளன. இந்த களஞ்சியங்களில் உள்ள குறியீடு வெவ்வேறு மொழிகளில் (எ.கா., Node.js, ஜாவா, ஸ்கலா, கோ) ஒரே மொழியில் பல இயக்க நேர சூழல்களுடன் எழுதப்பட்டுள்ளது.

ஒவ்வொரு மைக்ரோ சர்வீஸுக்கும் முழுமையாக தனிப்பயனாக்கக்கூடிய “உருவாக்க சூழலில்” இயங்குவதற்காக உருவாக்க அமைப்பு வடிவமைக்கப்பட்டுள்ளது, இது பொதுவாக டோக்கர்ஃபைல் மற்றும் தொடர்ச்சியான ஷெல் கட்டளைகளைக் கொண்டுள்ளது. அவற்றின் உள்ளடக்கங்கள் முழுமையாக தனிப்பயனாக்கக்கூடியவை என்றாலும், இந்த உருவாக்க சூழல்கள் அனைத்தும் தரப்படுத்தப்பட்ட வடிவமைப்பைப் பின்பற்றுவதன் மூலம் எழுதப்படுகின்றன. உருவாக்க சூழல்களின் தரப்படுத்தல் அனைத்து மைக்ரோ சர்வீஸ்களையும் கையாள ஒற்றை உருவாக்க அமைப்பை அனுமதிக்கிறது.

படம் 1–1 பில்டர் கொள்கலன் மூலம் தரப்படுத்தப்பட்ட உருவாக்க செயல்முறை

இயக்க நேர சூழல்களுக்கு இடையில் அதிகபட்ச நிலைத்தன்மையை அடைவதற்கு, வளர்ச்சி மற்றும் சோதனைக் கட்டத்தின் போது அதே உருவாக்க செயல்முறை பயன்படுத்தப்படுகிறது. மேடையில் ஒரு நிலையான உருவாக்க சூழலுக்கு உத்தரவாதம் அளிக்க ஒரு வழியை நாங்கள் உருவாக்க வேண்டியபோது இது ஒரு தனித்துவமான சவாலை விதித்தது. இதன் விளைவாக, அனைத்து உருவாக்க செயல்முறைகளும் ஒரு சிறப்பு “பில்டர்” கொள்கலனுக்குள் செயல்படுத்தப்படுகின்றன.

பில்டர் கொள்கலனை செயல்படுத்த பல மேம்பட்ட டோக்கர் நுட்பங்கள் தேவைப்பட்டன. இந்த பில்டர் கொள்கலன் டிண்டர் தனியார் களஞ்சியங்களை அணுக தேவையான உள்ளூர் பயனர் ஐடி மற்றும் ரகசியங்களை (எ.கா., எஸ்எஸ்ஹெச் விசை, ஏ.டபிள்யூ.எஸ் நற்சான்றிதழ்கள் போன்றவை) பெறுகிறது. கட்டடக் கலைப்பொருட்களைச் சேமிக்க இயற்கையான வழியைக் கொண்டிருப்பதற்காக மூலக் குறியீட்டைக் கொண்ட உள்ளூர் கோப்பகங்களை இது ஏற்றும். இந்த அணுகுமுறை செயல்திறனை மேம்படுத்துகிறது, ஏனெனில் இது பில்டர் கொள்கலன் மற்றும் ஹோஸ்ட் இயந்திரத்திற்கு இடையில் கட்டப்பட்ட கலைப்பொருட்களை நகலெடுப்பதை நீக்குகிறது. சேமிக்கப்பட்ட கட்டமைப்புகள் அடுத்த முறை மேலும் உள்ளமைவு இல்லாமல் மீண்டும் பயன்படுத்தப்படுகின்றன.

சில சேவைகளுக்கு, இயங்கும் நேர சூழலுடன் தொகுக்கும் நேர சூழலுடன் பொருந்துவதற்கு பில்டருக்குள் மற்றொரு கொள்கலனை உருவாக்க வேண்டியிருந்தது (எ.கா., Node.js bcrypt நூலகத்தை நிறுவுவது இயங்குதள-குறிப்பிட்ட பைனரி கலைப்பொருட்களை உருவாக்குகிறது). தொகுத்தல் நேர தேவைகள் சேவைகளில் வேறுபடலாம் மற்றும் இறுதி டோக்கர்ஃபைல் பறக்கும்போது அமைக்கப்படுகிறது.

குபர்னெட்டஸ் கிளஸ்டர் கட்டிடக்கலை மற்றும் இடம்பெயர்வு

கொத்து அளவிடுதல்

அமேசான் ஈசி 2 நிகழ்வுகளில் தானியங்கி கிளஸ்டர் வழங்கலுக்காக குபே-ஏவ்ஸைப் பயன்படுத்த முடிவு செய்தோம். ஆரம்பத்தில், நாங்கள் ஒரு பொது முனைக் குளத்தில் எல்லாவற்றையும் இயக்குகிறோம். வளங்களை சிறப்பாகப் பயன்படுத்த, பணிச்சுமையை வெவ்வேறு அளவுகள் மற்றும் நிகழ்வுகளின் வகைகளாக பிரிக்க வேண்டியதன் அவசியத்தை விரைவாக அடையாளம் கண்டோம். குறைவான எண்ணிக்கையிலான திரிக்கப்பட்ட காய்களை ஒன்றாக இயக்குவது, அதிக எண்ணிக்கையிலான ஒற்றை-திரிக்கப்பட்ட காய்களுடன் இணைந்து வாழ அனுமதிப்பதை விட, எங்களுக்கு கணிக்கக்கூடிய செயல்திறன் முடிவுகளை அளித்தது.

நாங்கள் குடியேறினோம்:

  • கண்காணிப்பதற்கான m5.4xlarge (ப்ரோமிதியஸ்)
  • Node.js பணிச்சுமைக்கான c5.4xlarge (ஒற்றை-திரிக்கப்பட்ட பணிச்சுமை)
  • ஜாவா மற்றும் கோவிற்கான c5.2xlarge (பல திரிக்கப்பட்ட பணிச்சுமை)
  • கட்டுப்பாட்டு விமானத்திற்கான c5.4xlarge (3 முனைகள்)

இடம்பெயர்வு

எங்கள் மரபு உள்கட்டமைப்பிலிருந்து குபெர்னெட்டஸுக்கு இடம்பெயர்வதற்கான தயாரிப்பு நடவடிக்கைகளில் ஒன்று, ஒரு குறிப்பிட்ட மெய்நிகர் தனியார் கிளவுட் (விபிசி) சப்நெட்டில் உருவாக்கப்பட்ட புதிய மீள் சுமை இருப்புநிலைகளை (ஈஎல்பி) சுட்டிக்காட்டுவதற்கு ஏற்கனவே உள்ள சேவைக்கு சேவை தொடர்புகளை மாற்றுவதாகும். இந்த சப்நெட் குபெர்னெட்ஸ் வி.பி.சி. சேவை சார்புகளுக்கான குறிப்பிட்ட வரிசைப்படுத்துதலைப் பொருட்படுத்தாமல் தொகுதிக்கூறுகளை நகர்த்துவதற்கு இது எங்களுக்கு அனுமதித்தது.

ஒவ்வொரு புதிய ELB ஐ சுட்டிக்காட்டும் CNAME ஐக் கொண்ட எடையுள்ள DNS பதிவுத் தொகுப்புகளைப் பயன்படுத்தி இந்த இறுதிப் புள்ளிகள் உருவாக்கப்பட்டன. வெட்டுக்கு, புதிய குபெர்னெட்ஸ் சேவை ELB ஐ 0 எடையுடன் சுட்டிக்காட்டி ஒரு புதிய பதிவைச் சேர்த்துள்ளோம். பின்னர் பதிவுசெய்யப்பட்ட பதிவில் நேரத்திற்கு நேரத்தை (TTL) 0 என அமைத்தோம். பழைய மற்றும் புதிய எடைகள் பின்னர் மெதுவாக சரிசெய்யப்பட்டன இறுதியில் புதிய சேவையகத்தில் 100% உடன் முடிகிறது. கட்டோவர் முடிந்ததும், டி.டி.எல் மிகவும் நியாயமானதாக அமைக்கப்பட்டது.

எங்கள் ஜாவா தொகுதிகள் குறைந்த டிஎன்எஸ் டிடிஎல்லை க honored ரவித்தன, ஆனால் எங்கள் முனை பயன்பாடுகள் இல்லை. எங்கள் பொறியாளர்களில் ஒருவர் இணைப்பு பூல் குறியீட்டின் ஒரு பகுதியை ஒரு மேலாளரிடம் மடிக்க மீண்டும் எழுதினார், அது ஒவ்வொரு 60 களுக்கும் குளங்களை புதுப்பிக்கும். எந்தவொரு செயல்திறன் மிக்க வெற்றியும் இல்லாமல் இது எங்களுக்கு நன்றாக வேலை செய்தது.

கற்றல்

பிணைய துணி வரம்புகள்

ஜனவரி 8, 2019 அதிகாலையில், டிண்டரின் இயங்குதளம் தொடர்ந்து செயலிழந்தது. அன்று காலையில் மேடையில் தாமதத்துடன் தொடர்பில்லாத அதிகரிப்புக்கு பதிலளிக்கும் விதமாக, நெற்று மற்றும் முனை எண்ணிக்கைகள் கொத்து மீது அளவிடப்பட்டன. இதன் விளைவாக எங்கள் எல்லா முனைகளிலும் ARP கேச் சோர்வு ஏற்பட்டது.

ARP தற்காலிக சேமிப்புடன் தொடர்புடைய மூன்று லினக்ஸ் மதிப்புகள் உள்ளன:

கடன்

gc_thresh3 ஒரு கடினமான தொப்பி. நீங்கள் "அண்டை அட்டவணை வழிதல்" பதிவு உள்ளீடுகளைப் பெறுகிறீர்கள் என்றால், ARP தற்காலிக சேமிப்பின் ஒத்திசைவான குப்பை சேகரிப்பு (ஜி.சி) க்குப் பிறகும், அண்டை நுழைவைச் சேமிக்க போதுமான இடம் இல்லை என்பதை இது குறிக்கிறது. இந்த வழக்கில், கர்னல் பாக்கெட்டை முழுவதுமாக கைவிடுகிறது.

குபெர்னெட்டஸில் எங்கள் நெட்வொர்க் துணியாக ஃபிளான்னலைப் பயன்படுத்துகிறோம். பாக்கெட்டுகள் VXLAN வழியாக அனுப்பப்படுகின்றன. VXLAN என்பது ஒரு அடுக்கு 3 நெட்வொர்க்கில் ஒரு அடுக்கு 2 மேலடுக்கு திட்டமாகும். அடுக்கு 2 நெட்வொர்க் பிரிவுகளை விரிவாக்குவதற்கான வழிமுறையை வழங்க இது MAC முகவரி-இன்-பயனர் டேட்டாகிராம் நெறிமுறை (MAC-in-UDP) குறியாக்கத்தைப் பயன்படுத்துகிறது. இயற்பியல் தரவு மைய நெட்வொர்க்கில் போக்குவரத்து நெறிமுறை ஐபி பிளஸ் யுடிபி ஆகும்.

படம் 2–1 ஃபிளான்னல் வரைபடம் (கடன்)

படம் 2–2 VXLAN பாக்கெட் (கடன்)

ஒவ்வொரு குபர்னெட்டஸ் தொழிலாளி முனையும் ஒரு பெரிய / 9 தொகுதிக்கு வெளியே அதன் சொந்த / 24 மெய்நிகர் முகவரி இடத்தை ஒதுக்குகிறது. ஒவ்வொரு கணுக்கும், இது 1 பாதை அட்டவணை நுழைவு, 1 ARP அட்டவணை நுழைவு (flannel.1 இடைமுகத்தில்) மற்றும் 1 பகிர்தல் தரவுத்தள (FDB) நுழைவு ஆகியவற்றில் விளைகிறது. தொழிலாளர் முனை முதலில் தொடங்கும்போது அல்லது ஒவ்வொரு புதிய முனையும் கண்டுபிடிக்கப்படும் போது இவை சேர்க்கப்படும்.

கூடுதலாக, நோட்-டு-பாட் (அல்லது பாட்-டு-பாட்) தொடர்பு இறுதியில் eth0 இடைமுகத்தின் மீது பாய்கிறது (மேலே உள்ள ஃபிளான்னல் வரைபடத்தில் சித்தரிக்கப்பட்டுள்ளது). இது ஒவ்வொரு தொடர்புடைய முனை மூலத்திற்கும் முனை இலக்குக்கும் ARP அட்டவணையில் கூடுதல் நுழைவை ஏற்படுத்தும்.

எங்கள் சூழலில், இந்த வகை தொடர்பு மிகவும் பொதுவானது. எங்கள் குபெர்னெட்ஸ் சேவை பொருள்களுக்கு, ஒரு ELB உருவாக்கப்பட்டது மற்றும் குபர்நெடிஸ் ஒவ்வொரு முனையையும் ELB உடன் பதிவுசெய்கிறது. ELB நெற்று விழிப்புணர்வு இல்லை மற்றும் தேர்ந்தெடுக்கப்பட்ட முனை பாக்கெட்டின் இறுதி இடமாக இருக்காது. ஏனென்றால், கணு ELB இலிருந்து பாக்கெட்டைப் பெறும்போது, ​​அது சேவைக்கான அதன் iptables விதிகளை மதிப்பீடு செய்கிறது மற்றும் தோராயமாக மற்றொரு முனையில் ஒரு நெற்றுத் தேர்ந்தெடுக்கிறது.

செயலிழந்த நேரத்தில், கிளஸ்டரில் மொத்தம் 605 முனைகள் இருந்தன. மேலே குறிப்பிட்டுள்ள காரணங்களுக்காக, இயல்புநிலை gc_thresh3 மதிப்பைக் கிரகிக்க இது போதுமானதாக இருந்தது. இது நடந்தவுடன், பாக்கெட்டுகள் கைவிடப்படுவது மட்டுமல்லாமல், முழு ஃபிளானல் / 24 மெய்நிகர் முகவரி இடமும் ARP அட்டவணையில் இல்லை. போட் தகவல்தொடர்புக்கான முனை மற்றும் டிஎன்எஸ் தேடல்கள் தோல்வியடைகின்றன. (டி.என்.எஸ் கிளஸ்டருக்குள் ஹோஸ்ட் செய்யப்பட்டுள்ளது, பின்னர் இந்த கட்டுரையில் விரிவாக விளக்கப்படும்.)

தீர்க்க, gc_thresh1, gc_thresh2 மற்றும் gc_thresh3 மதிப்புகள் எழுப்பப்படுகின்றன மற்றும் காணாமல் போன நெட்வொர்க்குகளை மீண்டும் பதிவு செய்ய ஃபிளான்னலை மீண்டும் தொடங்க வேண்டும்.

எதிர்பாராத விதமாக டி.என்.எஸ் அளவை இயக்குகிறது

எங்கள் இடம்பெயர்வுக்கு இடமளிப்பதற்காக, எங்கள் சேவைகளுக்காக போக்குவரத்து வடிவமைப்பையும், குபெர்னெட்டஸுக்கு மரபுரிமையிலிருந்து அதிகரிக்கும் வெட்டுக்களையும் எளிதாக்குவதற்கு நாங்கள் டி.என்.எஸ்ஸை பெரிதும் பயன்படுத்தினோம். தொடர்புடைய ரூட் 53 ரெக்கார்ட் செட்களில் ஒப்பீட்டளவில் குறைந்த டி.டி.எல் மதிப்புகளை அமைத்துள்ளோம். EC2 நிகழ்வுகளில் எங்கள் மரபு உள்கட்டமைப்பை நாங்கள் இயக்கும் போது, ​​எங்கள் தீர்வின் உள்ளமைவு அமேசானின் DNS ஐ சுட்டிக்காட்டியது. நாங்கள் இதை ஒரு பொருட்டாக எடுத்துக் கொண்டோம், எங்கள் சேவைகள் மற்றும் அமேசானின் சேவைகளுக்கான (எ.கா. டைனமோடிபி) ஒப்பீட்டளவில் குறைந்த டி.டி.எல் செலவு பெரும்பாலும் கவனிக்கப்படாமல் போனது.

குபெர்னெட்டுக்கு நாங்கள் மேலும் மேலும் சேவையில் நுழைந்தபோது, ​​ஒரு வினாடிக்கு 250,000 கோரிக்கைகளுக்கு பதிலளிக்கும் ஒரு டிஎன்எஸ் சேவையை நாங்கள் இயக்குகிறோம். எங்கள் பயன்பாடுகளுக்குள் இடைப்பட்ட மற்றும் பயனுள்ள டிஎன்எஸ் தேடல் நேரத்தை நாங்கள் சந்தித்தோம். ஒரு முழுமையான சரிப்படுத்தும் முயற்சி மற்றும் ஒரு டி.என்.எஸ் வழங்குநர் ஒரு கோர்டிஎன்எஸ் வரிசைப்படுத்தலுக்கு மாறினாலும் இது நிகழ்ந்தது, ஒரு காலத்தில் 120 கோர்களை உட்கொள்ளும் 1,000 காய்களில் உயர்ந்தது.

பிற சாத்தியமான காரணங்கள் மற்றும் தீர்வுகளை ஆய்வு செய்யும் போது, ​​லினக்ஸ் பாக்கெட் வடிகட்டுதல் கட்டமைப்பின் நெட்ஃபில்டரை பாதிக்கும் ஒரு இனம் நிலையை விவரிக்கும் ஒரு கட்டுரையை நாங்கள் கண்டோம். ஃபிளானல் இடைமுகத்தில் அதிகரிக்கும் செருக_ தோல்வியுற்ற கவுண்டருடன், கட்டுரையின் கண்டுபிடிப்புகளுடன் இணைந்த டி.என்.எஸ் நேரம் முடிந்தது.

மூல மற்றும் இலக்கு நெட்வொர்க் முகவரி மொழிபெயர்ப்பு (SNAT மற்றும் DNAT) மற்றும் கான்ட்ராக் அட்டவணையில் செருகும்போது இந்த சிக்கல் ஏற்படுகிறது. உள்நாட்டில் விவாதிக்கப்பட்ட மற்றும் சமூகத்தால் முன்மொழியப்பட்ட ஒரு பணித்திறன் டி.என்.எஸ்ஸை தொழிலாளர் முனைக்குள் நகர்த்துவதாகும். இந்த வழக்கில்:

  • SNAT தேவையில்லை, ஏனென்றால் போக்குவரத்து உள்நாட்டில் முனையிலேயே உள்ளது. இது eth0 இடைமுகத்தில் கடத்தப்பட தேவையில்லை.
  • DNAT தேவையில்லை, ஏனெனில் இலக்கு ஐபி முனைக்கு உள்ளூர் மற்றும் iptables விதிகளுக்கு தோராயமாக தேர்ந்தெடுக்கப்பட்ட நெற்று அல்ல.

இந்த அணுகுமுறையுடன் முன்னேற முடிவு செய்தோம். கோர்பிஎன்எஸ் குபெர்னெட்டஸில் ஒரு டீமான்செட்டாக பயன்படுத்தப்பட்டது, மேலும் குபேலெட் - க்ளஸ்டர்-டிஎன்எஸ் கட்டளைக் கொடியை உள்ளமைப்பதன் மூலம் முனையின் உள்ளூர் டிஎன்எஸ் சேவையகத்தை ஒவ்வொரு நெற்று தீர்மானம்.கான்ஃபிலும் செலுத்தினோம். டி.என்.எஸ் காலக்கெடுவுக்கு பணித்திறன் பயனுள்ளதாக இருந்தது.

இருப்பினும், கைவிடப்பட்ட பாக்கெட்டுகள் மற்றும் ஃபிளான்னல் இடைமுகத்தின் செருக_ தோல்வியுற்ற எதிர் அதிகரிப்பு ஆகியவற்றை நாங்கள் இன்னும் காண்கிறோம். மேலேயுள்ள பணித்தொகுப்புக்குப் பிறகும் இது தொடரும், ஏனென்றால் நாங்கள் டிஎன்எஸ் போக்குவரத்திற்கான எஸ்என்ஏடி மற்றும் / அல்லது டிஎன்ஏடியை மட்டுமே தவிர்த்தோம். பிற வகை போக்குவரத்திற்கு இனம் நிலை இன்னும் ஏற்படும். அதிர்ஷ்டவசமாக, எங்கள் பாக்கெட்டுகளில் பெரும்பாலானவை டி.சி.பி. மற்றும் நிலை ஏற்பட்டால், பாக்கெட்டுகள் வெற்றிகரமாக மீண்டும் அனுப்பப்படும். எல்லா வகையான போக்குவரத்திற்கும் ஒரு நீண்ட கால தீர்வு என்பது நாம் இன்னும் விவாதித்து வருகிறோம்.

சிறந்த சுமை சமநிலையை அடைய தூதரைப் பயன்படுத்துதல்

நாங்கள் எங்கள் பின்தளத்தில் சேவைகளை குபெர்னெட்டுக்கு மாற்றும்போது, ​​நெற்று முழுவதும் சமநிலையற்ற சுமைகளால் பாதிக்கப்பட ஆரம்பித்தோம். HTTP Keepalive காரணமாக, ELB இணைப்புகள் ஒவ்வொரு உருட்டல் வரிசைப்படுத்தலின் முதல் தயாராக காய்களுடன் ஒட்டிக்கொண்டிருப்பதை நாங்கள் கண்டறிந்தோம், எனவே பெரும்பாலான போக்குவரத்து கிடைக்கக்கூடிய காய்களில் ஒரு சிறிய சதவீதத்தின் வழியாக ஓடியது. மோசமான குற்றவாளிகளுக்கு புதிய வரிசைப்படுத்தல்களில் 100% மேக்ஸ் சர்ஜ் பயன்படுத்துவது நாங்கள் முயற்சித்த முதல் தணிப்புகளில் ஒன்றாகும். இது ஓரளவு பயனுள்ளதாக இருந்தது மற்றும் சில பெரிய வரிசைப்படுத்தல்களுடன் நீண்ட காலத்திற்கு நிலையானதாக இல்லை.

நாங்கள் பயன்படுத்திய மற்றொரு தணிப்பு, முக்கியமான சேவைகளில் வள கோரிக்கைகளை செயற்கையாக உயர்த்துவதாகும், இதனால் கோலோகேட் செய்யப்பட்ட காய்களுக்கு மற்ற கனமான காய்களுடன் அதிக ஹெட்ரூம் இருக்கும். வள கழிவுகள் காரணமாக இது நீண்ட காலத்திற்கு ஏற்றதாக இருக்காது, மேலும் எங்கள் முனை பயன்பாடுகள் ஒற்றை திரிக்கப்பட்டன, இதனால் 1 மையத்தில் திறம்பட மூடப்பட்டன. சிறந்த சுமை சமநிலையைப் பயன்படுத்துவதே தெளிவான தீர்வு.

தூதரை மதிப்பீடு செய்ய நாங்கள் உள்நாட்டில் பார்த்துக்கொண்டிருந்தோம். இது மிகவும் மட்டுப்படுத்தப்பட்ட பாணியில் பயன்படுத்தப்படுவதற்கும் உடனடி பலன்களைப் பெறுவதற்கும் இது எங்களுக்கு வாய்ப்பளித்தது. தூதர் என்பது ஒரு திறந்த மூல, உயர் செயல்திறன் கொண்ட அடுக்கு 7 ப்ராக்ஸி பெரிய சேவை சார்ந்த கட்டமைப்புகளுக்காக வடிவமைக்கப்பட்டுள்ளது. தானியங்கி முயற்சிகள், சுற்று முறிவு மற்றும் உலகளாவிய வீத வரம்பு உள்ளிட்ட மேம்பட்ட சுமை சமநிலை நுட்பங்களை இது செயல்படுத்த முடியும்.

உள்ளூர் கொள்கலன் துறைமுகத்தைத் தாக்க ஒரு வழி மற்றும் கிளஸ்டரைக் கொண்ட ஒவ்வொரு நெற்றுடன் ஒரு தூதர் பக்கவாட்டு வைத்திருப்பதுதான் நாங்கள் கொண்டு வந்த கட்டமைப்பு. சாத்தியமான அடுக்கைக் குறைக்க மற்றும் ஒரு சிறிய குண்டு வெடிப்பு ஆரம் வைத்திருக்க, ஒவ்வொரு சேவைக்கும் ஒவ்வொரு கிடைக்கும் மண்டலத்தில் (AZ) ஒரு வரிசைப்படுத்தல், முன்-ப்ராக்ஸி தூதர் காய்களைப் பயன்படுத்தினோம். இவை எங்கள் பொறியாளர்களில் ஒருவரான ஒரு சிறிய சேவை கண்டுபிடிப்பு பொறிமுறையைத் தாக்கியது, இது ஒரு குறிப்பிட்ட சேவைக்கு ஒவ்வொரு AZ இல் உள்ள காய்களின் பட்டியலை வெறுமனே திருப்பி அளித்தது.

சேவை முன்-தூதர்கள் இந்த சேவை கண்டுபிடிப்பு பொறிமுறையை ஒரு அப்ஸ்ட்ரீம் கிளஸ்டர் மற்றும் பாதை மூலம் பயன்படுத்தினர். நாங்கள் நியாயமான காலக்கெடுவை உள்ளமைத்தோம், அனைத்து சர்க்யூட் பிரேக்கர் அமைப்புகளையும் உயர்த்தினோம், பின்னர் நிலையற்ற தோல்விகள் மற்றும் மென்மையான வரிசைப்படுத்தல்களுக்கு உதவ குறைந்தபட்ச மறுபயன்பாட்டு உள்ளமைவை வைத்தோம். இந்த முன் தூதர் சேவைகளில் ஒவ்வொன்றையும் ஒரு டி.சி.பி ஈ.எல்.பி. எங்கள் பிரதான முன் ப்ராக்ஸி லேயரில் இருந்து வைத்திருத்தல் சில தூதர் காய்களில் பொருத்தப்பட்டிருந்தாலும், அவை சுமைகளை சிறப்பாகக் கையாள முடிந்தது, மேலும் பின்தளத்தில் குறைந்தபட்சம்_ கோரிக்கை வழியாக சமப்படுத்த கட்டமைக்கப்பட்டன.

வரிசைப்படுத்தல்களுக்கு, பயன்பாடு மற்றும் பக்கவாட்டு நெற்று இரண்டிலும் ஒரு ப்ரீஸ்டாப் ஹூக்கைப் பயன்படுத்தினோம். சைட்கார் ஹெல்த் செக் ஃபெயில் அட்மின் எண்ட்பாயிண்ட் என்று அழைக்கப்படும் இந்த கொக்கி, ஒரு சிறிய தூக்கத்துடன், இன்ஃப்லைட் இணைப்புகளை முடிக்க மற்றும் வடிகட்ட அனுமதிக்க சிறிது நேரம் கொடுக்கிறது.

எங்களது இயல்பான ப்ரோமிதியஸ் அமைப்போடு எளிதில் ஒருங்கிணைக்க முடிந்த பணக்கார அளவீடுகள் காரணமாக நாங்கள் இவ்வளவு விரைவாக நகர முடிந்தது. உள்ளமைவு அமைப்புகளில் நாங்கள் மறுபடியும் மறுபடியும் போக்குவரத்தை குறைக்கும்போது என்ன நடக்கிறது என்பதைக் காண இது எங்களுக்கு அனுமதித்தது.

முடிவுகள் உடனடியாகவும் வெளிப்படையாகவும் இருந்தன. நாங்கள் மிகவும் சமநிலையற்ற சேவைகளுடன் தொடங்கினோம், இந்த நேரத்தில் இது எங்கள் கிளஸ்டரில் மிக முக்கியமான பன்னிரண்டு சேவைகளுக்கு முன்னால் இயங்குகிறது. இந்த ஆண்டு நாங்கள் ஒரு முழுமையான சேவை கண்ணிக்குச் செல்ல திட்டமிட்டுள்ளோம், மேலும் மேம்பட்ட சேவை கண்டுபிடிப்பு, சுற்று உடைத்தல், வெளிப்புறக் கண்டறிதல், விகிதத்தைக் கட்டுப்படுத்துதல் மற்றும் தடமறிதல்.

படம் 3–1 தூதருக்கு வெட்டுக்களின்போது ஒரு சேவையின் CPU குவிதல்

முடிவு முடிவு

இந்த கற்றல் மற்றும் கூடுதல் ஆராய்ச்சி மூலம், பெரிய குபெர்னெட்ஸ் கிளஸ்டர்களை எவ்வாறு வடிவமைப்பது, வரிசைப்படுத்துவது மற்றும் இயக்குவது என்பதில் அதிக பரிச்சயத்துடன் வலுவான உள்-உள்கட்டமைப்பு குழுவை உருவாக்கியுள்ளோம். டிண்டரின் முழு பொறியியல் அமைப்பும் இப்போது குபெர்னெட்டஸில் தங்கள் பயன்பாடுகளை எவ்வாறு கட்டுப்படுத்துவது மற்றும் பயன்படுத்துவது என்பது பற்றிய அறிவையும் அனுபவத்தையும் கொண்டுள்ளது.

எங்கள் மரபு உள்கட்டமைப்பில், கூடுதல் அளவு தேவைப்படும்போது, ​​புதிய EC2 நிகழ்வுகள் ஆன்லைனில் வருவதற்கு பல நிமிடங்கள் காத்திருந்தோம். கொள்கலன்கள் இப்போது நிமிடங்களுக்கு மாறாக சில நொடிகளில் போக்குவரத்தை திட்டமிட்டு சேவை செய்கின்றன. ஒற்றை EC2 நிகழ்வில் பல கொள்கலன்களை திட்டமிடுவது மேம்பட்ட கிடைமட்ட அடர்த்தியை வழங்குகிறது. இதன் விளைவாக, முந்தைய ஆண்டை ஒப்பிடும்போது 2019 இல் EC2 இல் கணிசமான செலவு சேமிப்புகளை நாங்கள் திட்டமிடுகிறோம்.

இது கிட்டத்தட்ட இரண்டு ஆண்டுகள் ஆனது, ஆனால் நாங்கள் மார்ச் 2019 இல் எங்கள் இடம்பெயர்வுக்கு இறுதி செய்தோம். டிண்டர் இயங்குதளம் 200 சேவைகள், 1,000 முனைகள், 15,000 காய்கள் மற்றும் 48,000 இயங்கும் கொள்கலன்களைக் கொண்ட ஒரு குபெர்னெட்ஸ் கிளஸ்டரில் பிரத்தியேகமாக இயங்குகிறது. உள்கட்டமைப்பு என்பது இனி எங்கள் செயல்பாட்டுக் குழுக்களுக்கு ஒதுக்கப்பட்ட பணி அல்ல. அதற்கு பதிலாக, அமைப்பு முழுவதிலும் உள்ள பொறியியலாளர்கள் இந்த பொறுப்பில் பங்கு கொள்கிறார்கள் மற்றும் அவர்களின் பயன்பாடுகள் எவ்வாறு குறியீடாக கட்டமைக்கப்படுகின்றன மற்றும் பயன்படுத்தப்படுகின்றன என்பதில் கட்டுப்பாட்டைக் கொண்டுள்ளன.