புரோஹோஸ்டர் > Блог > நிர்வாகம் > குபெர்னெட்டஸ் டுடோரியல் பகுதி 1: பயன்பாடுகள், மைக்ரோ சர்வீஸ்கள் மற்றும் கொள்கலன்கள்
குபெர்னெட்டஸ் டுடோரியல் பகுதி 1: பயன்பாடுகள், மைக்ரோ சர்வீஸ்கள் மற்றும் கொள்கலன்கள்
எங்கள் கோரிக்கையின் பேரில், ஹப்ர் ஒரு மையத்தை உருவாக்கினார் Kubernetes மற்றும் முதல் வெளியீட்டை அதில் வைப்பதில் நாங்கள் மகிழ்ச்சியடைகிறோம். பதிவு!
குபெர்னெட்ஸ் எளிதானது. சில மணிநேரங்களில் இந்த தொழில்நுட்பத்தில் தேர்ச்சி பெறக்கூடிய எவரும் இந்த பகுதியில் பணிபுரிய வங்கிகள் எனக்கு ஏன் நிறைய பணம் கொடுக்கின்றன?
குபெர்னெட்ஸை இவ்வளவு விரைவாகக் கற்றுக்கொள்ள முடியுமா என்று நீங்கள் சந்தேகித்தால், அதை நீங்களே முயற்சி செய்ய பரிந்துரைக்கிறேன். அதாவது, இந்த மெட்டீரியலில் தேர்ச்சி பெற்ற பிறகு, குபெர்னெட்டஸ் கிளஸ்டரில் மைக்ரோ சர்வீஸின் அடிப்படையில் ஒரு பயன்பாட்டை இயக்க முடியும். குபெர்னெட்டஸுடன் பணிபுரிய எங்கள் வாடிக்கையாளர்களுக்கு நான் கற்றுக்கொடுக்கும் அதே முறைதான் இங்கு பயன்படுத்தப்பட்டுள்ளதால், இதற்கு என்னால் உத்தரவாதம் அளிக்க முடியும். இந்த வழிகாட்டியை மற்றவர்களிடமிருந்து வேறுபடுத்துவது எது? உண்மையில், நிறைய விஷயங்கள் உள்ளன. எனவே, இந்த பொருட்களில் பெரும்பாலானவை எளிய விஷயங்களின் விளக்கத்துடன் தொடங்குகின்றன - குபெர்னெட்டின் கருத்துக்கள் மற்றும் kubectl கட்டளையின் அம்சங்கள். இந்த பொருட்களின் ஆசிரியர்கள் தங்கள் வாசகர்கள் பயன்பாட்டு மேம்பாடு, மைக்ரோ சர்வீஸ் மற்றும் டோக்கர் கொள்கலன்களை நன்கு அறிந்திருக்கிறார்கள் என்று கருதுகின்றனர். நாங்கள் வேறு வழியில் செல்வோம். முதலில், ஒரு கணினியில் மைக்ரோ சர்வீசஸ் அடிப்படையில் ஒரு பயன்பாட்டை எவ்வாறு இயக்குவது என்பது பற்றி பேசுவோம். ஒவ்வொரு மைக்ரோ சர்வீஸுக்கும் கொள்கலன் படங்களை உருவாக்குவதைப் பார்ப்போம். அதன்பிறகு, நாங்கள் குபெர்னெட்டஸைப் பற்றி அறிந்துகொண்டு, குபெர்னெட்டஸால் நிர்வகிக்கப்படும் கிளஸ்டரில் மைக்ரோ சர்வீஸின் அடிப்படையில் ஒரு பயன்பாட்டைப் பயன்படுத்துவதைப் பார்ப்போம்.
இந்த அணுகுமுறை, குபெர்னெட்டஸுக்கு படிப்படியான அணுகுமுறையுடன், குபெர்னெட்டஸில் எல்லாம் எவ்வளவு எளிமையாக வேலை செய்கிறது என்பதைப் புரிந்துகொள்வதற்கு சராசரி மனிதனுக்கு என்ன நடக்கிறது என்பதைப் பற்றிய ஆழமான புரிதலைக் கொடுக்கும். குபெர்னெட்ஸ் நிச்சயமாக ஒரு எளிய தொழில்நுட்பம், அதைக் கற்றுக்கொள்ள விரும்புவோருக்கு அது எங்கே, எப்படிப் பயன்படுத்தப்படுகிறது என்பதைத் தெரிந்துகொள்ளும்.
இப்போது, மேலும் கவலைப்படாமல், தொடங்குவோம் மற்றும் நாங்கள் வேலை செய்யும் பயன்பாட்டைப் பற்றி பேசுவோம்.
பரிசோதனை பயன்பாடு
எங்கள் பயன்பாடு ஒரு செயல்பாட்டை மட்டுமே செய்யும். இது ஒரு வாக்கியத்தை உள்ளீடாக எடுத்துக்கொள்கிறது, அதன் பிறகு, உரை பகுப்பாய்வு கருவிகளைப் பயன்படுத்தி, இந்த வாக்கியத்தின் உணர்வு பகுப்பாய்வு செய்கிறது, ஒரு குறிப்பிட்ட பொருளுக்கு வாக்கியத்தின் ஆசிரியரின் உணர்ச்சி மனப்பான்மையை மதிப்பீடு செய்கிறது.
இந்த பயன்பாட்டின் முக்கிய சாளரம் இப்படித்தான் இருக்கும்.
உரைகளின் உணர்வு பகுப்பாய்வுக்கான வலை பயன்பாடு
தொழில்நுட்பக் கண்ணோட்டத்தில், பயன்பாடு மூன்று மைக்ரோ சர்வீஸ்களைக் கொண்டுள்ளது, ஒவ்வொன்றும் ஒரு குறிப்பிட்ட பணிகளைத் தீர்க்கிறது:
SA-Frontend என்பது நிலையான எதிர்வினை கோப்புகளை வழங்கும் Nginx இணைய சேவையகம்.
SA-WebApp என்பது ஜாவாவில் எழுதப்பட்ட ஒரு வலைப் பயன்பாடாகும், இது முன்பக்கத்திலிருந்து கோரிக்கைகளை செயலாக்குகிறது.
SA-Logic என்பது ஒரு பைதான் பயன்பாடாகும், இது உரையில் உணர்வு பகுப்பாய்வு செய்கிறது.
மைக்ரோ சர்வீஸ்கள் தனித்தனியாக இல்லை என்பதை கவனத்தில் கொள்ள வேண்டும். அவர்கள் "பொறுப்புகளைப் பிரித்தல்" என்ற கருத்தை செயல்படுத்துகிறார்கள், ஆனால் அதே நேரத்தில் அவர்கள் ஒருவருக்கொருவர் தொடர்பு கொள்ள வேண்டும்.
பயன்பாட்டில் தரவு பாய்கிறது
மேலே உள்ள வரைபடத்தில், கணினியின் எண்ணிடப்பட்ட நிலைகளைக் காணலாம், இது பயன்பாட்டில் உள்ள தரவு ஓட்டங்களை விளக்குகிறது. அவற்றைப் பார்ப்போம்:
பயனர் பயன்பாட்டுடன் தொடர்பு கொள்கிறார், இது ஸ்பிரிங்-அடிப்படையிலான வலை பயன்பாட்டிற்கு அழைப்பை ஏற்படுத்துகிறது.
பைதான் பயன்பாட்டிற்கு உரை பகுப்பாய்வு செய்வதற்கான கோரிக்கையை இணைய பயன்பாடு அனுப்புகிறது.
பைதான் பயன்பாடு உரையின் உணர்வுப் பகுப்பாய்வைச் செய்கிறது மற்றும் கோரிக்கைக்கு விடையாக முடிவை வழங்குகிறது.
ஸ்பிரிங் அப்ளிகேஷன் ரியாக்ட் பயன்பாட்டிற்கு ஒரு பதிலை அனுப்புகிறது (இது, பயனருக்கு உரை பகுப்பாய்வின் முடிவைக் காட்டுகிறது).
இந்த எல்லா பயன்பாடுகளுக்கான குறியீட்டையும் காணலாம் இங்கே. இந்த களஞ்சியத்தை உங்களுக்காக நகலெடுக்க நான் பரிந்துரைக்கிறேன், ஏனெனில் இது எங்களுக்கு முன்னால் பல சுவாரஸ்யமான சோதனைகள் உள்ளன.
உங்கள் உள்ளூர் கணினியில் மைக்ரோ சர்வீஸ் அடிப்படையிலான பயன்பாட்டை இயக்குகிறது
பயன்பாடு வேலை செய்ய, நாங்கள் மூன்று மைக்ரோ சர்வீஸ்களையும் தொடங்க வேண்டும். அவற்றில் மிகவும் அழகானது - முன்-இறுதி பயன்பாடு.
▍உள்ளூர் மேம்பாட்டிற்காக எதிர்வினையை அமைக்கவும்
ரியாக்ட் அப்ளிகேஷனை இயக்க, உங்கள் கணினியில் Node.js இயங்குதளத்தையும் NPMஐயும் நிறுவ வேண்டும். இவை அனைத்தும் நிறுவப்பட்டதும், உங்கள் திட்ட கோப்புறைக்கு செல்ல முனையத்தைப் பயன்படுத்தவும் sa-frontend மற்றும் பின்வரும் கட்டளையை இயக்கவும்:
npm install
இந்த கட்டளையை கோப்புறையில் இயக்குவதன் மூலம் node_modules எதிர்வினை பயன்பாட்டின் சார்புகள் ஏற்றப்படும், அதன் பதிவுகள் கோப்பில் உள்ளன package.json. சார்புகள் ஒரே கோப்புறையில் பதிவிறக்கம் செய்யப்பட்டவுடன், பின்வரும் கட்டளையை இயக்கவும்:
npm start
அவ்வளவுதான். இப்போது ரியாக்ட் பயன்பாடு இயங்குகிறது, உங்கள் உலாவியில் பின்வரும் முகவரிக்குச் சென்று அதை அணுகலாம்: localhost:3000. நீங்கள் அதன் குறியீட்டில் ஏதாவது மாற்றலாம். உலாவியில் இந்த மாற்றங்களின் விளைவை உடனடியாகக் காண்பீர்கள். தொகுதிகளின் "சூடான" மாற்றீடு என்று அழைக்கப்படுவதற்கு இது சாத்தியமாகும். இது முன்-இறுதி வளர்ச்சியை எளிய மற்றும் சுவாரஸ்ய அனுபவமாக்குகிறது.
உண்மையில் ரியாக்ட் அப்ளிகேஷனைப் பயன்படுத்துவதற்கு, அதை நிலையான கோப்புகளின் தொகுப்பாக மாற்றி, இணையச் சேவையகத்தைப் பயன்படுத்தி வாடிக்கையாளர்களுக்கு வழங்க வேண்டும்.
ரியாக்ட் பயன்பாட்டை உருவாக்க, மீண்டும் டெர்மினலைப் பயன்படுத்தி, கோப்புறைக்கு செல்லவும் sa-frontend மற்றும் பின்வரும் கட்டளையை இயக்கவும்:
npm run build
இது திட்ட கோப்புறையில் ஒரு கோப்பகத்தை உருவாக்கும் build. ரியாக்ட் அப்ளிகேஷன் வேலை செய்ய தேவையான அனைத்து நிலையான கோப்புகளும் இதில் இருக்கும்.
▍Nginx ஐப் பயன்படுத்தி நிலையான கோப்புகளை வழங்குதல்
முதலில் நீங்கள் Nginx இணைய சேவையகத்தை நிறுவி இயக்க வேண்டும். இது நீங்கள் அதை பதிவிறக்கம் செய்து, அதை எவ்வாறு நிறுவுவது மற்றும் இயக்குவது என்பதற்கான வழிமுறைகளைக் காணலாம். பின்னர் நீங்கள் கோப்புறையின் உள்ளடக்கங்களை நகலெடுக்க வேண்டும் sa-frontend/build கோப்புறைக்கு [your_nginx_installation_dir]/html.
இந்த அணுகுமுறையின் மூலம், ரியாக்ட் அப்ளிகேஷனின் உருவாக்க செயல்முறையின் போது உருவாக்கப்பட்ட கோப்பு index.html இல் கிடைக்கும் [your_nginx_installation_dir]/html/index.html. இது இயல்பாகவே, Nginx சேவையகத்தை அணுகும்போது உருவாக்கும் கோப்பு. போர்ட்டில் கேட்கும் வகையில் சர்வர் கட்டமைக்கப்பட்டுள்ளது 80, ஆனால் கோப்பைத் திருத்துவதன் மூலம் உங்களுக்குத் தேவையான வகையில் தனிப்பயனாக்கலாம் [your_nginx_installation_dir]/conf/nginx.conf.
இப்போது உங்கள் உலாவியைத் திறந்து அதற்குச் செல்லவும் localhost:80. நீங்கள் எதிர்வினை விண்ணப்பப் பக்கத்தைக் காண்பீர்கள்.
Nginx சேவையகத்தால் வழங்கப்படும் எதிர்வினை பயன்பாடு
நீங்கள் இப்போது ஏதாவது துறையில் நுழைந்தால் Type your sentence மற்றும் பொத்தானை அழுத்தவும் Send - எதுவும் நடக்காது. ஆனால், நீங்கள் கன்சோலைப் பார்த்தால், அங்கு பிழை செய்திகளைக் காணலாம். இந்த பிழைகள் சரியாக எங்கு நிகழ்கின்றன என்பதைப் புரிந்து கொள்ள, பயன்பாட்டுக் குறியீட்டை பகுப்பாய்வு செய்வோம்.
▍முன்-இறுதி பயன்பாட்டுக் குறியீடு பகுப்பாய்வு
கோப்பு குறியீட்டைப் பாருங்கள் App.js, பொத்தானை அழுத்துவதை நாம் காணலாம் Send ஒரு முறையை அழைக்கிறது analyzeSentence(). இந்த முறைக்கான குறியீடு கீழே கொடுக்கப்பட்டுள்ளது. படிவத்தின் கருத்து இருக்கும் ஒவ்வொரு வரிக்கும் என்பதை நினைவில் கொள்ளவும் # Номер, குறியீடு கீழே கொடுக்கப்பட்ட விளக்கம் உள்ளது. மற்ற குறியீடு துண்டுகளையும் அதே வழியில் பகுப்பாய்வு செய்வோம்.
1. POST கோரிக்கை செய்யப்பட்ட URL. அத்தகைய கோரிக்கைகளை எதிர்பார்க்கும் விண்ணப்பம் இந்த முகவரியில் இருப்பதாக கருதப்படுகிறது.
2.கோரிக்கை அமைப்பு விண்ணப்பத்திற்கு அனுப்பப்பட்டது. இங்கே ஒரு எடுத்துக்காட்டு கோரிக்கை அமைப்பு:
{
sentence: "I like yogobella!"
}
3.கோரிக்கைக்கு பதில் கிடைத்தவுடன், கூறுகளின் நிலை புதுப்பிக்கப்படும். இது கூறு மீண்டும் வழங்கப்படுவதற்கு காரணமாகிறது. நாங்கள் தரவைப் பெற்றால் (அதாவது, உள்ளீட்டுத் தரவு மற்றும் கணக்கிடப்பட்ட உரை மதிப்பெண்ணைக் கொண்ட JSON பொருள்), நாங்கள் கூறுகளை வெளியிடுவோம் Polarity, உரிய நிபந்தனைகள் நிறைவேற்றப்படும் என்பதால். நாம் கூறுகளை இவ்வாறு விவரிக்கிறோம்:
குறியீடு நன்றாக வேலை செய்கிறது. இருந்தாலும் இதில் என்ன தவறு? விண்ணப்பம் POST கோரிக்கையை அனுப்ப முயற்சிக்கும் முகவரியில், இந்தக் கோரிக்கையை ஏற்கவும், செயல்படுத்தவும் இதுவரை எதுவும் இல்லை என்று நீங்கள் கருதினால், நீங்கள் சொல்வது முற்றிலும் சரி. அதாவது, பெறப்பட்ட கோரிக்கைகளை செயலாக்க http://localhost:8080/sentiment, நாம் ஸ்பிரிங் அடிப்படையில் ஒரு வலை பயன்பாட்டை இயக்க வேண்டும்.
POST கோரிக்கையை ஏற்கக்கூடிய ஸ்பிரிங் விண்ணப்பம் எங்களுக்குத் தேவை
▍ஸ்பிரிங் அடிப்படையிலான இணைய பயன்பாட்டை அமைத்தல்
ஸ்பிரிங் பயன்பாட்டைப் பயன்படுத்த, உங்களுக்கு JDK8 மற்றும் Maven மற்றும் சரியாக உள்ளமைக்கப்பட்ட சூழல் மாறிகள் தேவைப்படும். இவை அனைத்தையும் நிறுவிய பின், எங்கள் திட்டத்தில் தொடர்ந்து பணியாற்றலாம்.
▍ஒரு பயன்பாட்டை ஜார் கோப்பில் பேக்கேஜிங் செய்தல்
டெர்மினலைப் பயன்படுத்தி கோப்புறைக்கு செல்லவும் sa-webapp மற்றும் பின்வரும் கட்டளையை உள்ளிடவும்:
mvn install
கோப்புறையில் இந்த கட்டளையை இயக்கிய பிறகு sa-webapp ஒரு அடைவு உருவாக்கப்படும் target. இங்குதான் ஜாவா அப்ளிகேஷன் அமைந்திருக்கும், ஜார் கோப்பில் தொகுக்கப்பட்டு, கோப்பினால் குறிப்பிடப்படும் sentiment-analysis-web-0.0.1-SNAPSHOT.jar.
▍ஜாவா பயன்பாட்டை இயக்குதல்
கோப்புறைக்குச் செல்லவும் target பின்வரும் கட்டளையுடன் பயன்பாட்டை இயக்கவும்:
இந்த கட்டளையை இயக்கும் போது பிழை ஏற்படும். அதைச் சரிசெய்யத் தொடங்க, ஸ்டேக் ட்ரேஸ் டேட்டாவில் உள்ள விதிவிலக்கு விவரங்களைப் பகுப்பாய்வு செய்யலாம்:
Error creating bean with name 'sentimentController': Injection of autowired dependencies failed; nested exception is java.lang.IllegalArgumentException: Could not resolve placeholder 'sa.logic.api.url' in value "${sa.logic.api.url}"
எங்களைப் பொறுத்தவரை, இங்கே மிக முக்கியமான விஷயம் என்னவென்றால், அர்த்தத்தை தெளிவுபடுத்துவது சாத்தியமற்றது sa.logic.api.url. பிழை ஏற்படும் குறியீட்டை பகுப்பாய்வு செய்வோம்.
▍ஜாவா பயன்பாட்டுக் குறியீடு பகுப்பாய்வு
பிழை ஏற்படும் குறியீடு துணுக்கு இங்கே உள்ளது.
@CrossOrigin(origins = "*")
@RestController
public class SentimentController {
@Value("${sa.logic.api.url}") // #1
private String saLogicApiUrl;
@PostMapping("/sentiment")
public SentimentDto sentimentAnalysis(
@RequestBody SentenceDto sentenceDto)
{
RestTemplate restTemplate = new RestTemplate();
return restTemplate.postForEntity(
saLogicApiUrl + "/analyse/sentiment", // #2
sentenceDto, SentimentDto.class)
.getBody();
}
}
எஸ்entimentController ஒரு வயல் உள்ளது saLogicApiUrl. அதன் மதிப்பு சொத்து மூலம் குறிப்பிடப்படுகிறது sa.logic.api.url.
வரி saLogicApiUrl மதிப்புடன் இணைகிறது /analyse/sentiment. உரை பகுப்பாய்வைச் செய்யும் மைக்ரோ சர்வீஸுக்கு அழைப்பதற்கான முகவரியை அவை ஒன்றாக உருவாக்குகின்றன.
▍சொத்து மதிப்பை அமைக்கவும்
வசந்த காலத்தில், சொத்து மதிப்புகளின் நிலையான ஆதாரம் ஒரு கோப்பு application.properties, இல் காணலாம் sa-webapp/src/main/resources. ஆனால் அதன் பயன்பாடு சொத்து மதிப்புகளை அமைக்க ஒரே வழி அல்ல. பின்வரும் கட்டளையைப் பயன்படுத்தியும் இதைச் செய்யலாம்:
இந்த சொத்தின் மதிப்பு எங்கள் பைதான் பயன்பாட்டின் முகவரியைக் குறிக்க வேண்டும்.
அதை உள்ளமைப்பதன் மூலம், ஸ்பிரிங் வலைப் பயன்பாட்டிற்கு உரை பகுப்பாய்வுக் கோரிக்கைகளைச் செய்ய எங்கு செல்ல வேண்டும் என்பதைச் சொல்கிறோம்.
எங்கள் வாழ்க்கையை சிக்கலாக்காமல் இருக்க, பைதான் பயன்பாடு கிடைக்கும் என்று முடிவு செய்வோம் localhost:5000 அதை மறந்துவிடாமல் இருக்க முயற்சிப்போம். இதன் விளைவாக, ஸ்பிரிங் பயன்பாட்டைத் தொடங்குவதற்கான கட்டளை இப்படி இருக்கும்:
POST கோரிக்கைகளை நிறைவேற்றுவதற்கான முகவரியைக் குறிப்பிடுதல்.
ஒரு சொத்தை மீட்டெடுத்தல் sentence கோரிக்கை அமைப்பிலிருந்து.
ஒரு அநாமதேயப் பொருளைத் தொடங்குதல் TextBlob மற்றும் மதிப்பைப் பெறுதல் polarity கோரிக்கையின் உடலில் பெறப்பட்ட முதல் வாக்கியத்திற்கு (எங்கள் விஷயத்தில், பகுப்பாய்விற்கு அனுப்பப்பட்ட ஒரே வாக்கியம் இதுதான்).
வாக்கியத்தின் உரை மற்றும் அதற்கான கணக்கிடப்பட்ட குறிகாட்டியைக் கொண்டிருக்கும் பதிலைத் தருகிறது polarity.
பிளாஸ்க் பயன்பாட்டைத் தொடங்கவும், அது கிடைக்கும் 0.0.0.0:5000 (நீங்கள் படிவத்தின் கட்டமைப்பைப் பயன்படுத்தி அதை அணுகலாம் localhost:5000).
பயன்பாட்டை உருவாக்கும் மைக்ரோ சர்வீஸ்கள் இப்போது இயங்குகின்றன. அவை ஒன்றோடொன்று தொடர்பு கொள்ளச் செய்யப்படுகின்றன. வேலையின் இந்த கட்டத்தில் பயன்பாட்டு வரைபடம் இப்படித்தான் இருக்கும்.
பயன்பாட்டை உருவாக்கும் அனைத்து மைக்ரோ சர்வீஸ்களும் செயல்பாட்டு வரிசையில் கொண்டு வரப்படுகின்றன
இப்போது, தொடர்வதற்கு முன், உங்கள் ரியாக்ட் அப்ளிகேஷனை உலாவியில் திறந்து, அதனுடன் சில வாக்கியங்களை அலச முயற்சிக்கவும். எல்லாம் சரியாக செய்யப்பட்டால் - பொத்தானை அழுத்திய பின் Send உரை புலத்திற்கு கீழே பகுப்பாய்வு முடிவுகளைக் காண்பீர்கள்.
அடுத்த பகுதியில், டோக்கர் கொள்கலன்களில் எங்கள் மைக்ரோ சர்வீஸ்களை எவ்வாறு இயக்குவது என்பது பற்றி பேசுவோம். குபெர்னெட்ஸ் கிளஸ்டரில் இயங்குவதற்கு விண்ணப்பத்தைத் தயாரிக்க இது அவசியம்.
டோக்கர் கொள்கலன்கள்
Kubernetes கன்டெய்னரைஸ் செய்யப்பட்ட பயன்பாடுகளின் வரிசைப்படுத்தல், அளவிடுதல் மற்றும் மேலாண்மை ஆகியவற்றை தானியங்குபடுத்துவதற்கான ஒரு அமைப்பாகும். இது "கன்டெய்னர் ஆர்கெஸ்ட்ரேட்டர்" என்றும் அழைக்கப்படுகிறது. குபெர்னெட்ஸ் கொள்கலன்களுடன் பணிபுரிந்தால், இந்த அமைப்பைப் பயன்படுத்துவதற்கு முன்பு நாம் முதலில் இந்த கொள்கலன்களைப் பெற வேண்டும். ஆனால் முதலில், கொள்கலன்கள் என்ன என்பதைப் பற்றி பேசலாம். ஒருவேளை அது என்ன என்ற கேள்விக்கு சிறந்த பதிலைக் காணலாம் ஆவணங்கள் டோக்கருக்கு:
கன்டெய்னர் இமேஜ் என்பது இலகுரக, தன்னிறைவான, இயங்கக்கூடிய தொகுப்பாகும், அதில் இயங்குவதற்கு தேவையான அனைத்தையும் உள்ளடக்கியது: பயன்பாட்டு குறியீடு, இயக்க நேர சூழல், கணினி கருவிகள் மற்றும் நூலகங்கள், அமைப்புகள். லினக்ஸ் மற்றும் விண்டோஸ் சூழல்களில் கன்டெய்னரைஸ் செய்யப்பட்ட நிரல்கள் பயன்படுத்தப்படலாம், மேலும் அவை உள்கட்டமைப்பைப் பொருட்படுத்தாமல் எப்போதும் ஒரே மாதிரியாக செயல்படும்.
உற்பத்தி சேவையகங்கள் உட்பட எந்த கணினியிலும் கொள்கலன்களை இயக்க முடியும், மேலும் அவற்றில் உள்ள பயன்பாடுகள் எந்த சூழலிலும் ஒரே மாதிரியாக செயல்படும்.
கொள்கலன்களின் அம்சங்களை ஆராயவும், பயன்பாடுகளை இயக்குவதற்கான பிற வழிகளுடன் ஒப்பிடவும், மெய்நிகர் இயந்திரம் மற்றும் கொள்கலனைப் பயன்படுத்தி ரியாக்ட் பயன்பாட்டை வழங்குவதற்கான உதாரணத்தைப் பார்ப்போம்.
▍விர்ச்சுவல் இயந்திரத்தைப் பயன்படுத்தி ரியாக்ட் பயன்பாட்டின் நிலையான கோப்புகளை வழங்குதல்
மெய்நிகர் இயந்திரங்களைப் பயன்படுத்தி நிலையான கோப்புகளின் சேவையை ஒழுங்கமைக்க முயற்சிக்கும்போது, பின்வரும் குறைபாடுகளை சந்திப்போம்:
ஒவ்வொரு மெய்நிகர் இயந்திரமும் முழு அளவிலான இயக்க முறைமையாக இருப்பதால், வளங்களின் திறமையற்ற பயன்பாடு.
மேடை சார்பு. லோக்கல் கம்ப்யூட்டரில் வேலை செய்வது, உற்பத்திச் சேவையகத்தில் வேலை செய்யாமல் போகலாம்.
மெய்நிகர் இயந்திர அடிப்படையிலான தீர்வுக்கான மெதுவான மற்றும் வள-தீவிர அளவிடுதல்.
மெய்நிகர் கணினியில் இயங்கும் நிலையான கோப்புகளை வழங்கும் Nginx இணைய சேவையகம்
இதேபோன்ற சிக்கலைத் தீர்க்க கொள்கலன்கள் பயன்படுத்தப்பட்டால், மெய்நிகர் இயந்திரங்களுடன் ஒப்பிடுகையில், பின்வரும் பலங்களைக் குறிப்பிடலாம்:
வளங்களின் திறமையான பயன்பாடு: டோக்கரைப் பயன்படுத்தி இயக்க முறைமையுடன் பணிபுரிதல்.
இயங்குதளம் சுயாதீனமானது. டெவலப்பர் தனது கணினியில் இயக்கக்கூடிய ஒரு கொள்கலன் எங்கும் வேலை செய்யும்.
பட அடுக்குகளைப் பயன்படுத்துவதன் மூலம் இலகுரக வரிசைப்படுத்தல்.
Nginx இணைய சேவையகம் ஒரு கொள்கலனில் இயங்கும் நிலையான கோப்புகளை வழங்குகிறது
மெய்நிகர் இயந்திரங்கள் மற்றும் கொள்கலன்களை சில புள்ளிகளில் மட்டுமே ஒப்பிட்டுப் பார்த்தோம், ஆனால் கொள்கலன்களின் வலிமையை உணர இதுவே போதுமானது. இது டோக்கர் கொள்கலன்கள் பற்றிய விவரங்களை நீங்கள் காணலாம்.
▍ஒரு எதிர்வினை பயன்பாட்டிற்கான கொள்கலன் படத்தை உருவாக்குதல்
டோக்கர் கொள்கலனின் அடிப்படை கட்டுமானத் தொகுதி கோப்பு ஆகும் Dockerfile. இந்தக் கோப்பின் தொடக்கத்தில், கொள்கலனின் அடிப்படைப் படத்தில் ஒரு பதிவு செய்யப்படுகிறது, பின்னர் ஒரு குறிப்பிட்ட பயன்பாட்டின் தேவைகளைப் பூர்த்தி செய்யும் கொள்கலனை எவ்வாறு உருவாக்குவது என்பதைக் குறிக்கும் வழிமுறைகளின் வரிசை உள்ளது.
கோப்புடன் வேலை செய்யத் தொடங்குவதற்கு முன் Dockerfile, Nginx சேவையகத்தில் பதிவேற்றுவதற்கு ரியாக்ட் அப்ளிகேஷன் பைல்களைத் தயாரிக்க என்ன செய்தோம் என்பதை நினைவில் கொள்வோம்:
எதிர்வினை பயன்பாட்டு தொகுப்பை உருவாக்குதல் (npm run build).
Nginx சேவையகத்தைத் தொடங்குகிறது.
அடைவு உள்ளடக்கங்களை நகலெடுக்கிறது build திட்ட கோப்புறையில் இருந்து sa-frontend சர்வர் கோப்புறைக்கு nginx/html.
ஒரு கொள்கலனை உருவாக்குவதற்கும் உங்கள் உள்ளூர் கணினியில் மேற்கூறிய படிநிலைகளுக்கும் இடையே உள்ள ஒற்றுமைகளை கீழே காணலாம்.
▍SA-Frontend பயன்பாட்டிற்கான Dockerfile ஐ தயார் செய்தல்
இதில் இருக்கும் வழிமுறைகள் Dockerfile விண்ணப்பத்திற்கு SA-Frontend, இரண்டு அணிகள் மட்டுமே கொண்டது. உண்மை என்னவென்றால், Nginx மேம்பாட்டுக் குழு ஒரு அடிப்படையைத் தயாரித்துள்ளது படத்தை Nginx க்கு, நாங்கள் எங்கள் படத்தை உருவாக்கப் பயன்படுத்துவோம். நாம் விவரிக்க வேண்டிய இரண்டு படிகள் இவை:
படத்தின் அடிப்படையானது Nginx படமாக இருக்க வேண்டும்.
கோப்புறை உள்ளடக்கங்கள் sa-frontend/build பட கோப்புறையில் நகலெடுக்க வேண்டும் nginx/html.
இந்த விளக்கத்திலிருந்து கோப்பிற்குச் சென்றால் Dockerfile, பின்னர் அது இப்படி இருக்கும்:
FROM nginx
COPY build /usr/share/nginx/html
நீங்கள் பார்க்க முடியும் என, இங்கே எல்லாம் மிகவும் எளிமையானது, மேலும் கோப்பின் உள்ளடக்கங்கள் மிகவும் படிக்கக்கூடியதாகவும் புரிந்துகொள்ளக்கூடியதாகவும் மாறும். இந்த கோப்பு கணினியை படத்தை எடுக்க சொல்கிறது nginx ஏற்கனவே உள்ள அனைத்தையும் கொண்டு, கோப்பகத்தின் உள்ளடக்கங்களை நகலெடுக்கவும் build அடைவுக்கு nginx/html.
கோப்புறையிலிருந்து கோப்புகளை எங்கு நகலெடுக்க வேண்டும் என்பதை நான் எப்படி அறிவேன் என்பது குறித்து இங்கு உங்களுக்கு ஒரு கேள்வி இருக்கலாம் build, அதாவது, பாதை எங்கிருந்து வந்தது /usr/share/nginx/html. உண்மையில், இங்கே சிக்கலான எதுவும் இல்லை. இதில் தொடர்புடைய தகவல்களைக் காணலாம் என்பதே உண்மை விளக்கம் படம்.
▍படத்தை உருவாக்குதல் மற்றும் களஞ்சியத்தில் பதிவேற்றுதல்
முடிக்கப்பட்ட படத்துடன் வேலை செய்வதற்கு முன், அதை பட களஞ்சியத்திற்கு தள்ள வேண்டும். இதைச் செய்ய, இலவச கிளவுட் இமேஜ் ஹோஸ்டிங் தளமான டோக்கர் ஹப்பைப் பயன்படுத்துவோம். வேலையின் இந்த கட்டத்தில், நீங்கள் பின்வருவனவற்றைச் செய்ய வேண்டும்:
இங்கே மேலும் இதே போன்ற கட்டளைகளில் $DOCKER_USER_ID உங்கள் Docker Hub பயனர்பெயருடன் மாற்றப்பட வேண்டும். எடுத்துக்காட்டாக, கட்டளையின் இந்த பகுதி இப்படி இருக்கலாம்: rinormaloku/sentiment-analysis-frontend.
இந்த வழக்கில், இந்த கட்டளையை அதிலிருந்து அகற்றுவதன் மூலம் சுருக்கலாம் -f Dockerfile, இந்த கோப்பு ஏற்கனவே நாம் இந்த கட்டளையை இயக்கும் கோப்புறையில் இருப்பதால்.
முடிக்கப்பட்ட படத்தை களஞ்சியத்திற்கு அனுப்ப, நமக்கு பின்வரும் கட்டளை தேவை:
அதை முடித்த பிறகு, மேகக்கணி சேமிப்பகத்தில் படத்தைப் பதிவேற்றுவது வெற்றிகரமாக உள்ளதா என்பதைப் புரிந்து கொள்ள, Docker Hub இல் உள்ள உங்கள் களஞ்சியங்களின் பட்டியலைச் சரிபார்க்கவும்.
▍ஒரு கொள்கலனை இயக்குதல்
இப்போது யார் வேண்டுமானாலும் படத்தை பதிவிறக்கம் செய்து இயக்கலாம், என அறியப்படுகிறது $DOCKER_USER_ID/sentiment-analysis-frontend. இதைச் செய்ய, நீங்கள் பின்வரும் கட்டளைகளின் வரிசையை இயக்க வேண்டும்:
docker pull $DOCKER_USER_ID/sentiment-analysis-frontend
docker run -d -p 80:80 $DOCKER_USER_ID/sentiment-analysis-frontend
இப்போது கொள்கலன் இயங்குகிறது, நமக்குத் தேவையான பிற படங்களை உருவாக்குவதன் மூலம் வேலையைத் தொடரலாம். ஆனால் தொடர்வதற்கு முன், வடிவமைப்பைப் புரிந்துகொள்வோம் 80:80, இது பட வெளியீட்டு கட்டளையில் தோன்றும் மற்றும் குழப்பமாக தோன்றலாம்.
முதல் எண் 80 — இது ஹோஸ்ட் போர்ட் எண் (அதாவது உள்ளூர் கணினி).
இரண்டாவது எண் 80 கோரிக்கை அனுப்பப்பட வேண்டிய கொள்கலனின் துறைமுகமாகும்.
பின்வரும் உதாரணத்தைக் கவனியுங்கள்.
போர்ட் பகிர்தல்
கணினி போர்ட்டில் இருந்து கோரிக்கைகளை திசைதிருப்புகிறது <hostPort> துறைமுகத்திற்கு <containerPort>. அதாவது, துறைமுகத்திற்கான அணுகல் 80 கணினி துறைமுகத்திற்கு திருப்பி விடப்படுகிறது 80 கொள்கலன்.
துறைமுகத்தில் இருந்து 80 உள்ளூர் கணினியில் திறக்கப்பட்டது, பின்னர் நீங்கள் இந்த கணினியிலிருந்து பயன்பாட்டை அணுகலாம் localhost:80. உங்கள் சிஸ்டம் டோக்கரை ஆதரிக்கவில்லை என்றால், அப்ளிகேஷனை டோக்கர் மெய்நிகர் கணினியில் இயக்கலாம், அதன் முகவரி இப்படி இருக்கும் <docker-machine ip>:80. டோக்கர் மெய்நிகர் இயந்திரத்தின் ஐபி முகவரியைக் கண்டுபிடிக்க, நீங்கள் கட்டளையைப் பயன்படுத்தலாம் docker-machine ip.
இந்த கட்டத்தில், முன்-இறுதி பயன்பாட்டு கொள்கலனை வெற்றிகரமாக துவக்கிய பிறகு, நீங்கள் அதன் பக்கத்தை உலாவியில் திறக்க முடியும்.
▍The .dockerignore கோப்பு
விண்ணப்பப் படத்தைச் சேகரிக்கிறது SA-Frontend, இந்த செயல்முறை மிகவும் மெதுவாக மாறுவதை நாம் கவனிக்க முடியும். படம் உருவாக்க சூழல் டோக்கர் டீமனுக்கு அனுப்பப்பட வேண்டும் என்பதால் இது நிகழ்கிறது. உருவாக்க சூழலைக் குறிக்கும் அடைவு கட்டளையின் கடைசி வாதமாக குறிப்பிடப்படுகிறது docker build. எங்கள் விஷயத்தில், இந்த கட்டளையின் முடிவில் ஒரு புள்ளி உள்ளது. இது பின்வரும் கட்டமைப்பை உருவாக்க சூழலில் சேர்க்கிறது:
ஆனால் இங்கே இருக்கும் அனைத்து கோப்புறைகளிலும், நமக்கு கோப்புறை மட்டுமே தேவை build. வேறு எதையும் ஏற்றுவது நேரத்தை வீணடிப்பதாகும். எந்த கோப்பகங்களை புறக்கணிக்க வேண்டும் என்பதை டோக்கரிடம் கூறுவதன் மூலம் உருவாக்கத்தை வேகப்படுத்தலாம். இதைச் செய்ய, கோப்பு நமக்குத் தேவை .dockerignore. நீங்கள், கோப்பு தெரிந்திருந்தால் .gitignore, இந்த கோப்பின் அமைப்பு ஒருவேளை தெரிந்திருக்கலாம். பட உருவாக்க அமைப்பு புறக்கணிக்கக்கூடிய கோப்பகங்களை இது பட்டியலிடுகிறது. எங்கள் விஷயத்தில், இந்த கோப்பின் உள்ளடக்கங்கள் இப்படி இருக்கும்:
node_modules
src
public
கோப்பு .dockerignore கோப்பு இருக்கும் அதே கோப்புறையில் இருக்க வேண்டும் Dockerfile. இப்போது படத்தை உருவாக்க சில வினாடிகள் ஆகும்.
இப்போது ஜாவா பயன்பாட்டிற்கான படத்தில் வேலை செய்வோம்.
▍ஜாவா பயன்பாட்டிற்கான கொள்கலன் படத்தை உருவாக்குதல்
உங்களுக்கு என்ன தெரியும், கொள்கலன் படங்களை உருவாக்க நீங்கள் தெரிந்து கொள்ள வேண்டிய அனைத்தையும் நீங்கள் ஏற்கனவே கற்றுக்கொண்டீர்கள். அதனால்தான் இந்த பகுதி மிகவும் குறுகியதாக இருக்கும்.
கோப்பைத் திறக்கவும் Dockerfileஇது திட்ட கோப்புறையில் உள்ளது sa-webapp. இந்த கோப்பின் உரையை நீங்கள் படித்தால், அதில் முக்கிய வார்த்தைகளில் தொடங்கி இரண்டு புதிய கட்டுமானங்களை மட்டுமே காண்பீர்கள் ENV и EXPOSE:
முக்கிய சொல் ENV டோக்கர் கொள்கலன்களுக்குள் சூழல் மாறிகளை அறிவிக்க உங்களை அனுமதிக்கிறது. குறிப்பாக, எங்கள் விஷயத்தில், உரை பகுப்பாய்வு செய்யும் பயன்பாட்டின் API ஐ அணுக URL ஐக் குறிப்பிட இது உங்களை அனுமதிக்கிறது.
முக்கிய சொல் EXPOSE ஒரு போர்ட்டை திறக்க டோக்கரிடம் சொல்ல உங்களை அனுமதிக்கிறது. பயன்பாட்டை இயக்கும் போது இந்த போர்ட்டைப் பயன்படுத்தப் போகிறோம். அதை இங்கே நீங்கள் கவனிக்கலாம் Dockerfile விண்ணப்பத்திற்கு SA-Frontend அத்தகைய கட்டளை இல்லை. இது ஆவணப்படுத்தல் நோக்கங்களுக்காக மட்டுமே, வேறுவிதமாகக் கூறினால், இந்த கட்டுமானம் வாசிப்பவர்களுக்காக வடிவமைக்கப்பட்டுள்ளது Dockerfile.
படத்தை உருவாக்கி அதை களஞ்சியத்திற்கு தள்ளுவது முந்தைய எடுத்துக்காட்டில் இருந்ததைப் போலவே தெரிகிறது. உங்கள் திறன்களில் உங்களுக்கு இன்னும் நம்பிக்கை இல்லை என்றால், தொடர்புடைய கட்டளைகளை கோப்பில் காணலாம் README.md கோப்புறையில் sa-webapp.
▍பைதான் பயன்பாட்டிற்கான கொள்கலன் படத்தை உருவாக்குதல்
கோப்பின் உள்ளடக்கங்களைப் பார்த்தால் Dockerfile கோப்புறையில் sa-logic, அப்போது உங்களுக்கென்று புதிதாக எதையும் நீங்கள் கண்டுபிடிக்க முடியாது. படத்தை உருவாக்கி அதை களஞ்சியத்திற்கு அனுப்புவதற்கான கட்டளைகள் ஏற்கனவே உங்களுக்கு நன்கு தெரிந்திருக்க வேண்டும், ஆனால், எங்கள் பிற பயன்பாடுகளைப் போலவே, அவை கோப்பில் காணப்படுகின்றன. README.md கோப்புறையில் sa-logic.
▍கன்டெய்னரைஸ் செய்யப்பட்ட பயன்பாடுகளை சோதனை செய்தல்
நீங்கள் சோதிக்காத ஒன்றை நம்ப முடியுமா? என்னாலும் முடியாது. எங்கள் கொள்கலன்களை சோதிப்போம்.
பயன்பாட்டுக் கொள்கலனைத் தொடங்குவோம் sa-logic மற்றும் போர்ட்டில் கேட்க அதை உள்ளமைக்கவும் 5050:
docker run -d -p 5050:5000 $DOCKER_USER_ID/sentiment-analysis-logic
பயன்பாட்டுக் கொள்கலனைத் தொடங்குவோம் sa-webapp மற்றும் போர்ட்டில் கேட்க அதை உள்ளமைக்கவும் 8080. கூடுதலாக, சூழல் மாறியை மீண்டும் ஒதுக்குவதன் மூலம் ஜாவா பயன்பாட்டிலிருந்து கோரிக்கைகளை பைதான் பயன்பாடு கேட்கும் போர்ட்டை நாம் கட்டமைக்க வேண்டும். SA_LOGIC_API_URL:
$ docker run -d -p 8080:8080 -e SA_LOGIC_API_URL='http://<container_ip or docker machine ip>:5000' $DOCKER_USER_ID/sentiment-analysis-web-app
டோக்கர் கொள்கலன் அல்லது மெய்நிகர் இயந்திரத்தின் ஐபி முகவரியை எவ்வாறு கண்டுபிடிப்பது என்பதை அறிய, கோப்பைப் பார்க்கவும் என்னை தெரிந்து கொள்.
பயன்பாட்டுக் கொள்கலனைத் தொடங்குவோம் sa-frontend:
docker run -d -p 80:80 $DOCKER_USER_ID/sentiment-analysis-frontend
இப்போது உலாவியில் உள்ள முகவரிக்கு செல்ல எல்லாம் தயாராக உள்ளது localhost:80 மற்றும் பயன்பாட்டை முயற்சிக்கவும்.
நீங்கள் துறைமுகத்தை மாற்றியிருந்தால் என்பதை நினைவில் கொள்ளவும் sa-webapp, அல்லது நீங்கள் டோக்கர் மெய்நிகர் இயந்திரத்தை இயக்கினால், கோப்பைத் திருத்த வேண்டும் App.js கோப்புறையிலிருந்து sa-frontendமுறையில் ஐபி முகவரி அல்லது போர்ட் எண்ணை மாற்றுவதன் மூலம் analyzeSentence(), காலாவதியான தரவுகளுக்குப் பதிலாக தற்போதைய தகவலை மாற்றுதல். இதற்குப் பிறகு, நீங்கள் படத்தை மீண்டும் இணைக்க வேண்டும் மற்றும் அதைப் பயன்படுத்த வேண்டும்.
இப்போது எங்கள் பயன்பாட்டு வரைபடம் இப்படித்தான் தெரிகிறது.
மைக்ரோ சர்வீஸ்கள் கொள்கலன்களில் இயங்குகின்றன
சுருக்கம்: நமக்கு ஏன் குபெர்னெட்ஸ் கிளஸ்டர் தேவை?
இப்போதுதான் கோப்புகளை ஆய்வு செய்துள்ளோம் Dockerfile, படங்களை எவ்வாறு உருவாக்குவது மற்றும் அவற்றை டோக்கர் களஞ்சியத்திற்குத் தள்ளுவது பற்றி பேசப்பட்டது. கூடுதலாக, கோப்பைப் பயன்படுத்தி படத்தைச் சேர்ப்பது எப்படி என்பதை நாங்கள் கற்றுக்கொண்டோம் .dockerignore. இதன் விளைவாக, எங்கள் மைக்ரோ சர்வீஸ்கள் இப்போது டோக்கர் கொள்கலன்களில் இயங்குகின்றன. எங்களுக்கு ஏன் குபெர்னெட்ஸ் தேவை என்பது குறித்த முற்றிலும் நியாயமான கேள்வி உங்களுக்கு இங்கே இருக்கலாம். இந்த பொருளின் இரண்டாம் பகுதி இந்த கேள்விக்கு பதிலளிக்க அர்ப்பணிக்கப்படும். இதற்கிடையில், பின்வரும் கேள்வியைக் கவனியுங்கள்:
உரை பகுப்பாய்வுக்கான எங்கள் வலை பயன்பாடு உலகளவில் பிரபலமாகிவிட்டது என்று வைத்துக்கொள்வோம். ஒவ்வொரு நிமிடமும் லட்சக்கணக்கான கோரிக்கைகள் அவருக்கு வருகின்றன. இதன் பொருள் மைக்ரோ சர்வீஸ் sa-webapp и sa-logic மிகப்பெரிய சுமையின் கீழ் இருக்கும். மைக்ரோ சர்வீஸ் இயங்கும் கொள்கலன்களை அளவிடுவது எப்படி?