குபெர்னெட்ஸ் என்பது டோக்கர் கொள்கலன்களை கொத்தாக உற்பத்தி செய்யும் சூழலில் இயக்குவதற்கான சிறந்த கருவியாகும். இருப்பினும், குபெர்னெட்டால் தீர்க்க முடியாத பிரச்சினைகள் உள்ளன. அடிக்கடி உற்பத்தி வரிசைப்படுத்தல்களுக்கு, செயல்பாட்டில் வேலையில்லா நேரத்தைத் தவிர்க்க எங்களுக்கு முழு தானியங்கு நீலம்/பச்சை வரிசைப்படுத்தல் தேவை, இது வெளிப்புற HTTP கோரிக்கைகளைக் கையாளவும் மற்றும் SSL ஆஃப்லோடுகளைச் செய்யவும் வேண்டும். இதற்கு ha-proxy போன்ற சுமை சமநிலையுடன் ஒருங்கிணைக்க வேண்டும். மற்றொரு சவாலானது, கிளவுட் சூழலில் இயங்கும் போது, குபெர்னெட்டஸ் கிளஸ்டரையே அரை தானியங்கி அளவீடு செய்வது, உதாரணமாக இரவில் கிளஸ்டரை ஓரளவு குறைப்பது.
Kubernetes இல் இந்த அம்சங்கள் இல்லை என்றாலும், இதே போன்ற சிக்கல்களைத் தீர்க்க நீங்கள் பயன்படுத்தக்கூடிய API ஐ இது வழங்குகிறது. திறந்த மூலத்தை அடிப்படையாகக் கொண்டு உருவாக்கப்பட்ட கிளவுட் ஆர்டிஐ திட்டத்தின் ஒரு பகுதியாக, குபெர்னெட்ஸ் கிளஸ்டரின் தானியங்கு நீலம்/பச்சை வரிசைப்படுத்தல் மற்றும் அளவிடுதலுக்கான கருவிகள் உருவாக்கப்பட்டன.
இந்த கட்டுரை, வீடியோ டிரான்ஸ்கிரிப்ட், பிற திறந்த மூல கூறுகளுடன் குபெர்னெட்ஸை எவ்வாறு அமைப்பது என்பதைக் காட்டுகிறது, இது உற்பத்தியில் வேலையில்லா நேரமின்றி ஒரு கிட் கமிட்டிலிருந்து குறியீட்டை ஏற்றுக்கொள்ளும் உற்பத்தி-தயாரான சூழலை உருவாக்குகிறது.
எனவே, வெளி உலகத்திலிருந்து உங்கள் பயன்பாடுகளுக்கான அணுகலைப் பெற்றவுடன், நீங்கள் முழுமையாக ஆட்டோமேஷனை அமைக்கத் தொடங்கலாம், அதாவது, நீங்கள் ஒரு கிட் கமிட் செய்யக்கூடிய நிலைக்கு கொண்டு வந்து, இந்த கிட் கமிட் தயாரிப்பில் முடிவடைவதை உறுதிசெய்யவும். இயற்கையாகவே, இந்தப் படிகளைச் செயல்படுத்தும்போது, வரிசைப்படுத்தலைச் செயல்படுத்தும்போது, வேலையில்லா நேரத்தைச் சந்திக்க நாங்கள் விரும்பவில்லை. எனவே, குபெர்னெட்ஸில் உள்ள எந்த ஆட்டோமேஷனும் API உடன் தொடங்குகிறது.
குபெர்னெட்ஸ் என்பது பெட்டிக்கு வெளியே உற்பத்தியாகப் பயன்படுத்தக்கூடிய ஒரு கருவி அல்ல. நிச்சயமாக, நீங்கள் அதைச் செய்யலாம், kubectl மற்றும் பலவற்றைப் பயன்படுத்தலாம், ஆனால் இன்னும் API இந்த தளத்தைப் பற்றிய மிகவும் சுவாரஸ்யமான மற்றும் பயனுள்ள விஷயம். API ஐ செயல்பாடுகளின் தொகுப்பாகப் பயன்படுத்துவதன் மூலம், குபெர்னெட்டஸில் நீங்கள் செய்ய விரும்பும் எதையும் அணுகலாம். kubectl ஆனது REST API ஐயும் பயன்படுத்துகிறது.
இது REST, எனவே இந்த API உடன் பணிபுரிய நீங்கள் எந்த மொழி அல்லது கருவியையும் பயன்படுத்தலாம், ஆனால் தனிப்பயன் நூலகங்களால் உங்கள் வாழ்க்கை மிகவும் எளிதாக்கப்படும். எனது குழு இதுபோன்ற 2 நூலகங்களை எழுதியது: ஒன்று Java/OSGi மற்றும் ஒன்று Go க்கு. இரண்டாவது அடிக்கடி பயன்படுத்தப்படுவதில்லை, ஆனால் எந்தவொரு சந்தர்ப்பத்திலும் இந்த பயனுள்ள விஷயங்கள் உங்கள் வசம் உள்ளன. அவை ஓரளவு உரிமம் பெற்ற திறந்த மூல திட்டமாகும். வெவ்வேறு மொழிகளுக்கு இதுபோன்ற பல நூலகங்கள் உள்ளன, எனவே உங்களுக்கு மிகவும் பொருத்தமானவற்றை நீங்கள் தேர்வு செய்யலாம்.
எனவே, உங்கள் வரிசைப்படுத்தலைத் தானியங்குபடுத்தத் தொடங்கும் முன், செயல்முறை எந்த நேரத்திலும் செயல்படாது என்பதை உறுதிப்படுத்திக் கொள்ள வேண்டும். எடுத்துக்காட்டாக, மக்கள் அதிகபட்சமாக பயன்பாடுகளைப் பயன்படுத்தும் போது, எங்கள் குழு நாளின் நடுப்பகுதியில் உற்பத்தி வரிசைப்படுத்தல்களை நடத்துகிறது, எனவே இந்தச் செயல்பாட்டில் தாமதத்தைத் தவிர்ப்பது முக்கியம். வேலையில்லா நேரத்தைத் தவிர்க்க, 2 முறைகள் பயன்படுத்தப்படுகின்றன: நீலம்/பச்சை வரிசைப்படுத்தல் அல்லது உருட்டல் புதுப்பிப்பு. பிந்தைய வழக்கில், பயன்பாட்டின் 5 பிரதிகள் இயங்கினால், அவை ஒன்றன் பின் ஒன்றாக புதுப்பிக்கப்படும். இந்த முறை நன்றாக வேலை செய்கிறது, ஆனால் வரிசைப்படுத்தல் செயல்பாட்டின் போது ஒரே நேரத்தில் இயங்கும் பயன்பாட்டின் வெவ்வேறு பதிப்புகள் உங்களிடம் இருந்தால் அது பொருந்தாது. இந்த வழக்கில், பின்தளத்தில் பழைய பதிப்பில் இயங்கும் போது பயனர் இடைமுகத்தை நீங்கள் புதுப்பிக்கலாம், மேலும் பயன்பாடு வேலை செய்வதை நிறுத்தும். எனவே, ஒரு நிரலாக்கக் கண்ணோட்டத்தில், இத்தகைய நிலைமைகளில் வேலை செய்வது மிகவும் கடினம்.
எங்கள் பயன்பாடுகளின் வரிசைப்படுத்தலை தானியக்கமாக்க, நீலம்/பச்சை வரிசைப்படுத்தலைப் பயன்படுத்த விரும்புவதற்கான காரணங்களில் இதுவும் ஒன்றாகும். இந்த முறையின் மூலம், பயன்பாட்டின் ஒரே ஒரு பதிப்பு மட்டுமே செயலில் இருப்பதை உறுதி செய்ய வேண்டும்.
நீலம்/பச்சை வரிசைப்படுத்தல் வழிமுறை இது போல் தெரிகிறது. எங்கள் பயன்பாடுகளுக்கான ட்ராஃபிக்கை ha-proxy மூலம் பெறுகிறோம், இது அதே பதிப்பின் பயன்பாட்டின் இயங்கும் பிரதிகளுக்கு அதை அனுப்புகிறது.
ஒரு புதிய வரிசைப்படுத்தல் செய்யப்படும் போது, நாங்கள் Deployer ஐப் பயன்படுத்துகிறோம், இது புதிய கூறுகளைக் கொடுத்து புதிய பதிப்பைப் பயன்படுத்துகிறது. பயன்பாட்டின் புதிய பதிப்பைப் பயன்படுத்தினால், புதிய பிரதிகளின் தொகுப்பு "உயர்த்தப்பட்டது", அதன் பிறகு புதிய பதிப்பின் இந்தப் பிரதிகள் தனி, புதிய பாட்களில் தொடங்கப்படும். இருப்பினும், ha-proxy க்கு அவர்களைப் பற்றி எதுவும் தெரியாது மற்றும் இன்னும் அவர்களுக்கு எந்த பணிச்சுமையும் இல்லை.
எனவே, முதலாவதாக, சுகாதாரச் சரிபார்ப்பின் புதிய பதிப்புகளின் செயல்திறனைச் சரிபார்த்து, பிரதிகள் சுமைக்கு சேவை செய்யத் தயாராக உள்ளன என்பதை உறுதிப்படுத்துவது அவசியம்.
அனைத்து வரிசைப்படுத்தல் கூறுகளும் ஏதேனும் ஒரு வகையான சுகாதார சோதனையை ஆதரிக்க வேண்டும். இது மிகவும் எளிமையான HTTP அழைப்புச் சரிபார்ப்பாக இருக்கலாம், நீங்கள் நிலை 200 உடன் குறியீட்டைப் பெறும்போது அல்லது மிகவும் ஆழமான சரிபார்ப்பு, இதில் தரவுத்தளம் மற்றும் பிற சேவைகள், மாறும் சூழல் இணைப்புகளின் ஸ்திரத்தன்மை ஆகியவற்றுடன் பிரதிகளின் இணைப்பைச் சரிபார்க்கலாம். , மற்றும் எல்லாம் சரியாகத் தொடங்குகிறதா மற்றும் செயல்படுகிறதா. இந்த செயல்முறை மிகவும் சிக்கலானதாக இருக்கலாம்.
புதுப்பிக்கப்பட்ட அனைத்து பிரதிகளும் செயல்படுகின்றன என்பதை கணினி சரிபார்த்த பிறகு, வரிசைப்படுத்துபவர் உள்ளமைவைப் புதுப்பித்து சரியான confd ஐ அனுப்புவார், இது ha-ப்ராக்ஸியை மறுகட்டமைக்கும்.
இதற்குப் பிறகுதான் புதிய பதிப்பின் பிரதிகளுடன் ட்ராஃபிக் பாட்க்கு அனுப்பப்படும், மேலும் பழைய பாட் மறைந்துவிடும்.
இந்த பொறிமுறையானது குபெர்னெட்டஸின் அம்சம் அல்ல. நீலம்/பச்சை வரிசைப்படுத்தல் என்ற கருத்து நீண்ட காலமாக இருந்து வருகிறது, அது எப்போதும் சுமை சமநிலையைப் பயன்படுத்துகிறது. முதலில், நீங்கள் எல்லா போக்குவரத்தையும் பயன்பாட்டின் பழைய பதிப்பிற்கு இயக்குகிறீர்கள், மேலும் புதுப்பித்த பிறகு, அதை முழுமையாக புதிய பதிப்பிற்கு மாற்றுவீர்கள். இந்த கொள்கை குபெர்னெட்டஸில் மட்டும் பயன்படுத்தப்படவில்லை.
இப்போது நான் உங்களுக்கு ஒரு புதிய வரிசைப்படுத்தல் கூறுகளை அறிமுகப்படுத்துகிறேன் - டிப்ளோயர், இது சுகாதார சோதனைகளை செய்கிறது, ப்ராக்ஸிகளை மறுகட்டமைக்கிறது மற்றும் பல. இது வெளியுலகிற்குப் பொருந்தாத, குபெர்னெட்டஸுக்குள் இருக்கும் கருத்து. ஓப்பன் சோர்ஸ் கருவிகளைப் பயன்படுத்தி உங்களின் சொந்த டீப்ளோயர் கான்செப்ட்டை எப்படி உருவாக்குவது என்பதை நான் உங்களுக்குக் காண்பிப்பேன்.
எனவே, Deployer செய்யும் முதல் காரியம் Kubernetes API ஐப் பயன்படுத்தி RC ரெப்ளிகேஷன் கன்ட்ரோலரை உருவாக்குவதாகும். இந்த API மேலும் வரிசைப்படுத்துவதற்காக காய்களையும் சேவைகளையும் உருவாக்குகிறது, அதாவது, இது எங்கள் பயன்பாடுகளுக்கு முற்றிலும் புதிய கிளஸ்டரை உருவாக்குகிறது. பிரதிகள் தொடங்கப்பட்டுவிட்டன என்பதை RC உறுதிப்படுத்தியவுடன், அது அவற்றின் செயல்பாடு குறித்த சுகாதாரச் சோதனையை மேற்கொள்ளும். இதைச் செய்ய, Deployer GET/health கட்டளையைப் பயன்படுத்துகிறது. இது பொருத்தமான ஸ்கேன் கூறுகளை இயக்குகிறது மற்றும் கிளஸ்டரின் செயல்பாட்டை ஆதரிக்கும் அனைத்து கூறுகளையும் சரிபார்க்கிறது.
அனைத்து காய்களும் அவற்றின் ஆரோக்கியத்தைப் புகாரளித்த பிறகு, டிப்ளோயர் ஒரு புதிய உள்ளமைவு உறுப்பை உருவாக்குகிறது - etcd விநியோகிக்கப்பட்ட சேமிப்பிடம், இது குபெர்னெட்டஸால் உள்நாட்டில் பயன்படுத்தப்படுகிறது, இதில் சுமை சமநிலை அமைப்புகளை சேமிப்பது உட்பட. நாங்கள் etcd க்கு தரவை எழுதுகிறோம், மேலும் புதிய தரவுகளுக்காக confd Monitors etcd எனப்படும் சிறிய கருவி.
ஆரம்ப கட்டமைப்பில் ஏதேனும் மாற்றங்களைக் கண்டறிந்தால், அது ஒரு புதிய அமைப்புக் கோப்பை உருவாக்கி, அதை ha-proxyக்கு மாற்றும். இந்த வழக்கில், ha-proxy எந்த இணைப்புகளையும் இழக்காமல் மறுதொடக்கம் செய்கிறது மற்றும் எங்கள் பயன்பாடுகளின் புதிய பதிப்பு வேலை செய்ய உதவும் புதிய சேவைகளுக்கான சுமையை நிவர்த்தி செய்கிறது.
நீங்கள் பார்க்க முடியும் என, ஏராளமான கூறுகள் இருந்தபோதிலும், இங்கே சிக்கலான எதுவும் இல்லை. நீங்கள் API மற்றும் முதலியவற்றில் அதிக கவனம் செலுத்த வேண்டும். நாமே பயன்படுத்தும் ஓப்பன் சோர்ஸ் டிப்ளோயரைப் பற்றி நான் உங்களுக்குச் சொல்ல விரும்புகிறேன் - அம்தாடு குபெர்னெட்ஸ் டிப்ளோயர்.
இது குபெர்னெட்ஸ் வரிசைப்படுத்தல்களை ஒழுங்கமைப்பதற்கான ஒரு கருவியாகும் மற்றும் பின்வரும் அம்சங்களைக் கொண்டுள்ளது:
- நீலம்/பச்சை வரிசைப்படுத்தல்;
- வெளிப்புற சுமை சமநிலையை அமைத்தல்;
- வரிசைப்படுத்தல் விளக்க மேலாண்மை;
- உண்மையான வரிசைப்படுத்தலை நிர்வகித்தல்;
- வரிசைப்படுத்தலின் போது சுகாதார சோதனைகளின் செயல்பாட்டைச் சரிபார்த்தல்;
- சூழல் மாறிகளை காய்களாக செயல்படுத்துதல்.
இந்த Deployer ஆனது Kubernetes APIயின் மேல் கட்டமைக்கப்பட்டுள்ளது மற்றும் கைப்பிடிகள் மற்றும் வரிசைப்படுத்தல்களை நிர்வகிப்பதற்கான REST API மற்றும் வரிசைப்படுத்தல் செயல்பாட்டின் போது பதிவுகளை ஸ்ட்ரீமிங் செய்வதற்கான Websocket API ஆகியவற்றை வழங்குகிறது.
இது சுமை பேலன்சர் உள்ளமைவுத் தரவை etcd இல் வைக்கிறது, எனவே நீங்கள் ஹா-ப்ராக்ஸியை அவுட்-ஆஃப்-பாக்ஸ் ஆதரவுடன் பயன்படுத்த வேண்டியதில்லை, ஆனால் உங்கள் சொந்த லோட் பேலன்சர் உள்ளமைவு கோப்பை எளிதாகப் பயன்படுத்தவும். Amdatu Deployer குபெர்னெட்டஸைப் போலவே Go இல் எழுதப்பட்டுள்ளது மற்றும் Apache ஆல் உரிமம் பெற்றது.
வரிசைப்படுத்துபவரின் இந்தப் பதிப்பைப் பயன்படுத்தத் தொடங்கும் முன், பின்வரும் வரிசைப்படுத்தல் விளக்கத்தைப் பயன்படுத்தினேன், இது எனக்குத் தேவையான அளவுருக்களைக் குறிப்பிடுகிறது.
இந்தக் குறியீட்டின் முக்கியமான அளவுருக்களில் ஒன்று “useHealthCheck” கொடியை இயக்குவது. வரிசைப்படுத்தல் செயல்பாட்டின் போது ஒரு நல்லறிவு சோதனை செய்யப்பட வேண்டும் என்பதை நாங்கள் குறிப்பிட வேண்டும். சரிபார்க்கத் தேவையில்லாத மூன்றாம் தரப்பு கொள்கலன்களைப் பயன்படுத்தும்போது இந்த அமைப்பை முடக்கலாம். இந்த விளக்கமானது, பிரதிகளின் எண்ணிக்கை மற்றும் ha-ப்ராக்ஸிக்குத் தேவைப்படும் முன்பக்கம் URL ஆகியவற்றைக் குறிக்கிறது. முடிவில் பாட் விவரக்குறிப்புக் கொடி "பாட்ஸ்ஸ்பெக்" உள்ளது, இது போர்ட் உள்ளமைவு, படம் போன்றவற்றின் தகவல்களுக்கு குபெர்னெட்ஸை அழைக்கிறது. இது மிகவும் எளிமையான JSON விளக்கமாகும்.
ஓப்பன் சோர்ஸ் Amdatu திட்டத்தின் ஒரு பகுதியாக இருக்கும் மற்றொரு கருவி Deploymentctl ஆகும். இது வரிசைப்படுத்தல்களை உள்ளமைப்பதற்கான UI ஐக் கொண்டுள்ளது, வரிசைப்படுத்தல் வரலாற்றைச் சேமிக்கிறது மற்றும் மூன்றாம் தரப்பு பயனர்கள் மற்றும் டெவலப்பர்களிடமிருந்து அழைப்புகளுக்கான வெப்ஹூக்குகளைக் கொண்டுள்ளது. Amdatu Deployer ஒரு REST API என்பதால் நீங்கள் UI ஐப் பயன்படுத்தாமல் இருக்கலாம், ஆனால் இந்த இடைமுகம் எந்த API ஐயும் உள்ளடக்காமல் வரிசைப்படுத்தலை உங்களுக்கு மிகவும் எளிதாக்கும். Deploymentctl என்பது OSGi/Vertx இல் கோண 2 ஐப் பயன்படுத்தி எழுதப்பட்டுள்ளது.
நான் இப்போது மேலே உள்ளதை முன் பதிவு செய்யப்பட்ட பதிவைப் பயன்படுத்தி திரையில் காண்பிப்பேன், எனவே நீங்கள் காத்திருக்க வேண்டியதில்லை. நாங்கள் ஒரு எளிய Go பயன்பாட்டைப் பயன்படுத்துவோம். நீங்கள் இதற்கு முன்பு Go ஐ முயற்சிக்கவில்லை என்றால் கவலைப்பட வேண்டாம், இது மிகவும் எளிமையான பயன்பாடாகும், எனவே நீங்கள் அதைக் கண்டுபிடிக்க முடியும்.
இங்கே நாங்கள் ஒரு HTTP சேவையகத்தை உருவாக்குகிறோம், அது /ஆரோக்கியத்திற்கு மட்டுமே பதிலளிக்கிறது, எனவே இந்த பயன்பாடு சுகாதார சோதனையை மட்டுமே சோதிக்கிறது, வேறு எதுவும் இல்லை. காசோலை கடந்துவிட்டால், கீழே காட்டப்பட்டுள்ள JSON அமைப்பு பயன்படுத்தப்படும். இது வரிசைப்படுத்துபவர் பயன்படுத்தும் பயன்பாட்டின் பதிப்பு, கோப்பின் மேலே நீங்கள் பார்க்கும் செய்தி மற்றும் பூலியன் தரவு வகை - எங்கள் பயன்பாடு செயல்படுகிறதோ இல்லையோ - ஆகியவற்றைக் கொண்டுள்ளது.
கடைசி வரியில் நான் கொஞ்சம் ஏமாற்றிவிட்டேன், ஏனென்றால் நான் கோப்பின் மேல் ஒரு நிலையான பூலியன் மதிப்பை வைத்தேன், இது எதிர்காலத்தில் "ஆரோக்கியமற்ற" பயன்பாட்டைக் கூட வரிசைப்படுத்த உதவும். இதை நாங்கள் பின்னர் சமாளிப்போம்.
எனவே ஆரம்பிக்கலாம். முதலில், ~ kubectl get pods என்ற கட்டளையைப் பயன்படுத்தி இயங்கும் காய்கள் உள்ளதா எனச் சரிபார்ப்போம், மேலும் முன்பக்கம் URL இலிருந்து பதில் இல்லாததன் அடிப்படையில், தற்போது எந்த வரிசைப்படுத்தல்களும் செய்யப்படவில்லை என்பதை உறுதிசெய்கிறோம்.
திரையில் அடுத்து நீங்கள் நான் குறிப்பிட்டுள்ள Deploymentctl இடைமுகத்தைக் காண்பீர்கள், அதில் வரிசைப்படுத்தல் அளவுருக்கள் அமைக்கப்பட்டுள்ளன: பெயர்வெளி, பயன்பாட்டின் பெயர், வரிசைப்படுத்தல் பதிப்பு, பிரதிகளின் எண்ணிக்கை, முன்-இறுதி URL, கொள்கலன் பெயர், படம், ஆதார வரம்புகள், சுகாதார சோதனைக்கான போர்ட் எண், முதலியன வள வரம்புகள் மிகவும் முக்கியம், ஏனெனில் அவை அதிகபட்ச வன்பொருளைப் பயன்படுத்த அனுமதிக்கின்றன. இங்கே நீங்கள் வரிசைப்படுத்தல் பதிவையும் பார்க்கலாம்.
நீங்கள் இப்போது ~ kubectl get pods கட்டளையை மீண்டும் செய்தால், கணினி 20 வினாடிகளுக்கு "உறைகிறது" என்பதை நீங்கள் காணலாம், இதன் போது ha-proxy மறுகட்டமைக்கப்படுகிறது. இதற்குப் பிறகு, பாட் தொடங்குகிறது, மேலும் எங்கள் பிரதியை வரிசைப்படுத்தல் பதிவில் காணலாம்.
வீடியோவில் இருந்து 20 வினாடிகள் காத்திருப்பதை நான் வெட்டிவிட்டேன், இப்போது பயன்பாட்டின் முதல் பதிப்பு பயன்படுத்தப்பட்டதை நீங்கள் திரையில் பார்க்கலாம். இவை அனைத்தும் UI ஐ மட்டுமே பயன்படுத்தி செய்யப்பட்டது.
இப்போது இரண்டாவது பதிப்பை முயற்சிப்போம். இதைச் செய்ய, பயன்பாட்டின் செய்தியை "ஹலோ, குபர்னெட்ஸ்!" என்பதிலிருந்து மாற்றுகிறேன். “Hello, Deployer!” இல், கணினி இந்தப் படத்தை உருவாக்கி அதை Docker பதிவேட்டில் வைக்கிறது, அதன் பிறகு Deploymentctl சாளரத்தில் மீண்டும் “Deploy” பொத்தானைக் கிளிக் செய்க. இந்த வழக்கில், பயன்பாட்டின் முதல் பதிப்பை வரிசைப்படுத்தும்போது நடந்ததைப் போலவே வரிசைப்படுத்தல் பதிவு தானாகவே தொடங்கப்படும்.
~ kubectl get pods என்ற கட்டளையானது, தற்போது 2 பதிப்புகள் இயங்குவதாகக் காட்டுகிறது, ஆனால் நாம் இன்னும் பதிப்பு 1ஐ இயக்கி வருகிறோம் என்பதைக் காட்டுகிறது.
புதிய பதிப்பிற்கு ட்ராஃபிக்கை திருப்பி விடுவதற்கு முன், லோட் பேலன்சர் சுகாதார சோதனை முடிவடையும் வரை காத்திருக்கிறது. 20 வினாடிகளுக்குப் பிறகு, நாங்கள் சுருட்டலுக்கு மாறுகிறோம், இப்போது பயன்பாட்டின் பதிப்பு 2 வரிசைப்படுத்தப்பட்டிருப்பதைக் காண்கிறோம், மேலும் முதலாவது நீக்கப்பட்டது.
இது "ஆரோக்கியமான" பயன்பாட்டின் வரிசைப்படுத்தலாகும். பயன்பாட்டின் புதிய பதிப்பிற்கு ஆரோக்கியமான அளவுருவை உண்மையிலிருந்து தவறு என மாற்றினால் என்ன நடக்கும் என்று பார்ப்போம், அதாவது, ஆரோக்கியச் சோதனையில் தோல்வியுற்ற ஆரோக்கியமற்ற பயன்பாட்டைப் பயன்படுத்த முயற்சிக்கிறேன். வளர்ச்சி கட்டத்தில் பயன்பாட்டில் சில உள்ளமைவு பிழைகள் ஏற்பட்டால், அது இந்த வடிவத்தில் உற்பத்திக்கு அனுப்பப்பட்டால் இது நிகழலாம்.
நீங்கள் பார்க்க முடியும் என, வரிசைப்படுத்தல் மேலே உள்ள அனைத்து படிகளிலும் செல்கிறது மற்றும் ~kubectl get pods இரண்டு காய்களும் இயங்குகின்றன என்பதைக் காட்டுகிறது. ஆனால் முந்தைய வரிசைப்படுத்தல் போலல்லாமல், பதிவு காலாவதி நிலையை காட்டுகிறது. அதாவது, சுகாதார சோதனை தோல்வியடைந்ததால், பயன்பாட்டின் புதிய பதிப்பை பயன்படுத்த முடியாது. இதன் விளைவாக, கணினியானது பயன்பாட்டின் பழைய பதிப்பைப் பயன்படுத்துவதை நீங்கள் காண்கிறீர்கள், மேலும் புதிய பதிப்பு வெறுமனே நிறுவல் நீக்கப்பட்டது.
இதில் உள்ள நல்ல விஷயம் என்னவென்றால், பயன்பாட்டிற்குள் ஒரே நேரத்தில் அதிக எண்ணிக்கையிலான கோரிக்கைகள் வந்தாலும், வரிசைப்படுத்தல் நடைமுறையைச் செயல்படுத்தும் போது அவர்கள் வேலையில்லா நேரத்தைக் கூட கவனிக்க மாட்டார்கள். முடிந்தவரை பல கோரிக்கைகளை அனுப்பும் கேட்லிங் கட்டமைப்பைப் பயன்படுத்தி இந்தப் பயன்பாட்டைச் சோதித்தால், இந்தக் கோரிக்கைகள் எதுவும் கைவிடப்படாது. இதன் பொருள் எங்கள் பயனர்கள் நிகழ்நேரத்தில் பதிப்பு புதுப்பிப்புகளைக் கூட கவனிக்க மாட்டார்கள். அது தோல்வியுற்றால், பழைய பதிப்பில் வேலை தொடரும், அது வெற்றியடைந்தால், பயனர்கள் புதிய பதிப்பிற்கு மாறுவார்கள்.
தோல்வியடையக்கூடிய ஒன்று மட்டுமே உள்ளது - உடல்நலப் பரிசோதனை வெற்றியடைந்தால், ஆனால் பணிச்சுமையைப் பயன்படுத்தியவுடன் விண்ணப்பம் தோல்வியடைகிறது, அதாவது, வரிசைப்படுத்தல் முடிந்த பின்னரே சரிவு ஏற்படும். இந்த வழக்கில், நீங்கள் கைமுறையாக பழைய பதிப்பிற்கு திரும்ப வேண்டும். எனவே, அதற்காக வடிவமைக்கப்பட்ட ஓப்பன் சோர்ஸ் கருவிகளைக் கொண்டு குபெர்னெட்ஸை எவ்வாறு பயன்படுத்துவது என்பதைப் பார்த்தோம். இந்த கருவிகளை உங்கள் பில்ட்/டெப்லோய் பைப்லைன்களில் உருவாக்கினால், வரிசைப்படுத்தல் செயல்முறை மிகவும் எளிதாக இருக்கும். அதே நேரத்தில், வரிசைப்படுத்தலைத் தொடங்க, நீங்கள் பயனர் இடைமுகத்தைப் பயன்படுத்தலாம் அல்லது இந்த செயல்முறையை முழுவதுமாக தானியக்கமாக்கலாம், எடுத்துக்காட்டாக, மாஸ்டர் செய்ய உறுதியளிக்கவும்.
எங்கள் பில்ட் சர்வர் ஒரு டோக்கர் படத்தை உருவாக்கி, அதை டோக்கர் ஹப் அல்லது நீங்கள் பயன்படுத்தும் ரெஜிஸ்ட்ரியில் தள்ளும். Docker Hub webhook ஐ ஆதரிக்கிறது, எனவே மேலே காட்டப்பட்டுள்ள வழியில் Deployer வழியாக தொலைநிலை வரிசைப்படுத்தலைத் தூண்டலாம். இந்த வழியில், சாத்தியமான உற்பத்திக்கு உங்கள் பயன்பாட்டின் வரிசைப்படுத்தலை முழுமையாக தானியங்குபடுத்தலாம்.
அடுத்த தலைப்புக்கு செல்வோம் - குபெர்னெட்ஸ் கிளஸ்டரை அளவிடுதல். kubectl கட்டளை ஒரு அளவிடுதல் கட்டளை என்பதை நினைவில் கொள்க. கூடுதல் உதவியுடன், தற்போதுள்ள நமது கிளஸ்டரில் உள்ள பிரதிகளின் எண்ணிக்கையை எளிதாக அதிகரிக்கலாம். இருப்பினும், நடைமுறையில், பொதுவாக காய்களை விட முனைகளின் எண்ணிக்கையை அதிகரிக்க விரும்புகிறோம்.
அதே நேரத்தில், வேலை நேரத்தில் நீங்கள் அதிகரிக்க வேண்டியிருக்கலாம், மேலும் இரவில், அமேசான் சேவைகளின் விலையைக் குறைக்க, நீங்கள் இயங்கும் பயன்பாட்டு நிகழ்வுகளின் எண்ணிக்கையைக் குறைக்க வேண்டும். காய்களின் எண்ணிக்கையை மட்டும் அளவிடுவது போதுமானது என்று இது அர்த்தப்படுத்துவதில்லை, ஏனென்றால் முனைகளில் ஒன்று செயலற்றதாக இருந்தாலும், அதற்கு நீங்கள் அமேசானுக்கு பணம் செலுத்த வேண்டியிருக்கும். அதாவது, காய்களை அளவிடுவதோடு, பயன்படுத்தப்படும் இயந்திரங்களின் எண்ணிக்கையையும் அளவிட வேண்டும்.
இது சவாலானதாக இருக்கலாம், ஏனென்றால் நாம் Amazon அல்லது வேறொரு கிளவுட் சேவையைப் பயன்படுத்தினாலும், Kubernetes பயன்படுத்தப்படும் இயந்திரங்களின் எண்ணிக்கையைப் பற்றி எதுவும் தெரியாது. கணு மட்டத்தில் கணினியை அளவிட உங்களை அனுமதிக்கும் கருவி இதில் இல்லை.
எனவே நாம் முனைகள் மற்றும் காய்கள் இரண்டையும் கவனித்துக் கொள்ள வேண்டும். குபெர்னெட்ஸ் தொழிலாளர் முனைகளின் எண்ணிக்கையை உள்ளமைக்க AWS API மற்றும் ஸ்கேலிங் குழு இயந்திரங்களைப் பயன்படுத்தி புதிய முனைகளின் வெளியீட்டை நாம் எளிதாக அளவிட முடியும். குபெர்னெட்டஸ் கிளஸ்டரில் முனைகளைப் பதிவு செய்ய நீங்கள் கிளவுட்-இனிட் அல்லது இதே போன்ற ஸ்கிரிப்டையும் பயன்படுத்தலாம்.
புதிய இயந்திரம் ஸ்கேலிங் குழுவில் தொடங்கி, தன்னை ஒரு முனையாகத் தொடங்கி, முதன்மைப் பதிவேட்டில் பதிவுசெய்து வேலை செய்யத் தொடங்குகிறது. இதற்குப் பிறகு, இதன் விளைவாக வரும் முனைகளில் பயன்படுத்துவதற்கான பிரதிகளின் எண்ணிக்கையை அதிகரிக்கலாம். "தேவையற்ற" இயந்திரங்களை முடக்கிய பிறகு, அத்தகைய நடவடிக்கை ஏற்கனவே இயங்கும் பயன்பாடுகளின் அழிவுக்கு வழிவகுக்காது என்பதை உறுதிப்படுத்த வேண்டும் என்பதால், அளவிடுவதற்கு அதிக முயற்சி தேவைப்படுகிறது. அத்தகைய சூழ்நிலையைத் தடுக்க, நீங்கள் முனைகளை "திட்டமிட முடியாத" நிலைக்கு அமைக்க வேண்டும். டெமான்செட் பாட்களை திட்டமிடும் போது, இயல்புநிலை திட்டமிடுபவர் இந்த முனைகளை புறக்கணிப்பார் என்பதே இதன் பொருள். திட்டமிடுபவர் இந்த சேவையகங்களிலிருந்து எதையும் நீக்கமாட்டார், ஆனால் புதிய கொள்கலன்களை அங்கு தொடங்கமாட்டார். அடுத்த கட்டமாக, வடிகால் முனையை வெளியேற்றுவது, அதாவது, இயங்கும் காய்களை அதிலிருந்து மற்றொரு இயந்திரத்திற்கு அல்லது இதற்கு போதுமான திறன் கொண்ட பிற முனைகளுக்கு மாற்றுவது. இந்த முனைகளில் எந்த கொள்கலன்களும் இல்லை என்பதை உறுதிசெய்தவுடன், அவற்றை குபெர்னெட்டிலிருந்து அகற்றலாம். இதற்குப் பிறகு, அவை குபெர்னெட்டஸுக்கு இருப்பதை நிறுத்திவிடும். அடுத்து, தேவையற்ற முனைகள் அல்லது இயந்திரங்களை முடக்க AWS API ஐப் பயன்படுத்த வேண்டும்.
AWS API போன்ற மற்றொரு திறந்த மூல அளவிடுதல் கருவியான Amdatu Scalerd ஐ நீங்கள் பயன்படுத்தலாம். இது ஒரு கிளஸ்டரில் முனைகளைச் சேர்க்க அல்லது அகற்ற CLI ஐ வழங்குகிறது. பின்வரும் json கோப்பைப் பயன்படுத்தி திட்டமிடலை உள்ளமைக்கும் திறன் இதன் சுவாரஸ்யமான அம்சமாகும்.
காட்டப்பட்டுள்ள குறியீடு இரவு நேரத்தில் கிளஸ்டர் திறனை பாதியாக குறைக்கிறது. இது கிடைக்கும் பிரதிகளின் எண்ணிக்கை மற்றும் அமேசான் கிளஸ்டரின் தேவையான திறன் ஆகிய இரண்டையும் கட்டமைக்கிறது. இந்த ஷெட்யூலரைப் பயன்படுத்துவது, இரவில் தானாக நோட்களின் எண்ணிக்கையைக் குறைத்து, காலையில் அவற்றை அதிகரிக்கும், அமேசான் போன்ற கிளவுட் சேவையிலிருந்து நோட்களைப் பயன்படுத்துவதற்கான செலவைச் சேமிக்கும். இந்த அம்சம் Kubernetes இல் கட்டமைக்கப்படவில்லை, ஆனால் Scalerd ஐப் பயன்படுத்தினால், இந்த தளத்தை நீங்கள் எப்படி வேண்டுமானாலும் அளவிட முடியும்.
"அதெல்லாம் நன்றாக இருக்கிறது, ஆனால் பொதுவாக நிலையானதாக இருக்கும் எனது தரவுத்தளத்தைப் பற்றி என்ன?" என்று பலர் என்னிடம் சொல்வதை நான் சுட்டிக்காட்ட விரும்புகிறேன். குபெர்னெட்டஸ் போன்ற ஒரு மாறும் சூழலில் இதுபோன்ற ஒன்றை நீங்கள் எவ்வாறு இயக்க முடியும்? என் கருத்துப்படி, நீங்கள் இதைச் செய்யக்கூடாது, குபெர்னெட்டஸில் தரவுக் கிடங்கை நடத்த முயற்சிக்கக்கூடாது. இது தொழில்நுட்ப ரீதியாக சாத்தியமானது, மேலும் இந்த விஷயத்தில் இணையத்தில் பயிற்சிகள் உள்ளன, ஆனால் இது உங்கள் வாழ்க்கையை தீவிரமாக சிக்கலாக்கும்.
ஆம், குபெர்னெட்டஸில் நிலையான கடைகளின் கருத்து உள்ளது, மேலும் நீங்கள் மோங்கோ அல்லது MySQL போன்ற தரவுக் கடைகளை இயக்க முயற்சி செய்யலாம், ஆனால் இது மிகவும் உழைப்பு மிகுந்த பணியாகும். தரவுக் கிடங்குகள் மாறும் சூழலுடனான தொடர்புகளை முழுமையாக ஆதரிக்காததே இதற்குக் காரணம். பெரும்பாலான தரவுத்தளங்களுக்கு குறிப்பிடத்தக்க உள்ளமைவு தேவைப்படுகிறது, கிளஸ்டரின் கைமுறை கட்டமைப்பு உட்பட, ஆட்டோஸ்கேலிங் மற்றும் பிற ஒத்த விஷயங்களை விரும்புவதில்லை.
எனவே, குபெர்னெட்டஸில் தரவுக் கிடங்கை இயக்க முயற்சிப்பதன் மூலம் உங்கள் வாழ்க்கையை சிக்கலாக்கக் கூடாது. பழக்கமான சேவைகளைப் பயன்படுத்தி பாரம்பரிய வழியில் அவர்களின் வேலையை ஒழுங்கமைக்கவும், அவற்றைப் பயன்படுத்துவதற்கான திறனை குபெர்னெட்ஸுக்கு வழங்கவும்.
தலைப்பை முடிக்க, எனது குழு பணிபுரியும் குபெர்னெட்ஸை அடிப்படையாகக் கொண்ட கிளவுட் ஆர்டிஐ தளத்தை உங்களுக்கு அறிமுகப்படுத்த விரும்புகிறேன். இது மையப்படுத்தப்பட்ட பதிவு, பயன்பாடு மற்றும் கிளஸ்டர் கண்காணிப்பு மற்றும் பல பயனுள்ள அம்சங்களை வழங்குகிறது. இது கண்காணிப்பைக் காண்பிக்க கிராஃபானா போன்ற பல்வேறு திறந்த மூலக் கருவிகளைப் பயன்படுத்துகிறது.
குபெர்னெட்டஸுடன் ஹெ-ப்ராக்ஸி லோட் பேலன்சரை ஏன் பயன்படுத்த வேண்டும் என்ற கேள்வி இருந்தது. நல்ல கேள்வி, ஏனெனில் தற்போது சுமை சமநிலையில் 2 நிலைகள் உள்ளன. குபெர்னெட்ஸ் சேவைகள் இன்னும் மெய்நிகர் ஐபி முகவரிகளில் உள்ளன. அமேசான் அதன் கிளவுட் ஹோஸ்ட்டை ஓவர்லோட் செய்தால், முகவரி மாறும் என்பதால், வெளிப்புற ஹோஸ்ட் இயந்திரங்களில் உள்ள போர்ட்களுக்கு அவற்றைப் பயன்படுத்த முடியாது. இதனால்தான், குபெர்னெட்டஸுடன் தடையின்றி தொடர்புகொள்வதற்காக, ட்ராஃபிக்கிற்கு மிகவும் நிலையான கட்டமைப்பை உருவாக்க, சேவைகளுக்கு முன்னால் ஹா-ப்ராக்ஸியை வைக்கிறோம்.
மற்றொரு நல்ல கேள்வி என்னவென்றால், நீலம்/பச்சை வரிசைப்படுத்தலின் போது தரவுத்தள திட்ட மாற்றங்களை நீங்கள் எவ்வாறு கவனித்துக் கொள்ளலாம்? உண்மை என்னவென்றால், குபெர்னெட்ஸின் பயன்பாட்டைப் பொருட்படுத்தாமல், தரவுத்தள திட்டத்தை மாற்றுவது கடினமான பணியாகும். பழைய மற்றும் புதிய ஸ்கீமா இணக்கமாக இருப்பதை உறுதி செய்ய வேண்டும், அதன் பிறகு நீங்கள் தரவுத்தளத்தைப் புதுப்பித்து, பயன்பாடுகளையே புதுப்பிக்கலாம். நீங்கள் தரவுத்தளத்தை மாற்றியமைக்கலாம், பின்னர் பயன்பாடுகளைப் புதுப்பிக்கலாம். புதிய ஸ்கீமாவுடன் முற்றிலும் புதிய தரவுத்தள கிளஸ்டரை துவக்கியவர்களை நான் அறிவேன், உங்களிடம் மோங்கோ போன்ற ஸ்கீமில்லா தரவுத்தளம் இருந்தால் இது ஒரு விருப்பமாகும், ஆனால் எப்படியும் இது எளிதான காரியம் அல்ல. உங்களிடம் மேலும் கேள்விகள் இல்லை என்றால், உங்கள் கவனத்திற்கு நன்றி!
சில விளம்பரங்கள் 🙂
எங்களுடன் தங்கியதற்கு நன்றி. எங்கள் கட்டுரைகளை விரும்புகிறீர்களா? மேலும் சுவாரஸ்யமான உள்ளடக்கத்தைப் பார்க்க வேண்டுமா? ஒரு ஆர்டரை வைப்பதன் மூலம் அல்லது நண்பர்களுக்கு பரிந்துரை செய்வதன் மூலம் எங்களை ஆதரிக்கவும்,
ஆம்ஸ்டர்டாமில் உள்ள Equinix Tier IV தரவு மையத்தில் Dell R730xd 2 மடங்கு மலிவானதா? இங்கே மட்டும்
ஆதாரம்: www.habr.com