இஸ்டியோவில் டார்க் லாஞ்ச்: சீக்ரெட் சர்வீசஸ்

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

இஸ்டியோவில் டார்க் லாஞ்ச்: சீக்ரெட் சர்வீசஸ்

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

சலிப்பு சரியாக இருக்கும்போது

எங்கள் விஷயத்தில், சலிப்பு என்பது இறுதி கட்டத்தில் மட்டுமே ஏற்படுகிறது, எஞ்சியிருப்பது உட்கார்ந்து செயல்முறையைப் பார்ப்பது மட்டுமே. ஆனால் இதற்காக நீங்கள் முதலில் எல்லாவற்றையும் உள்ளமைக்க வேண்டும், மேலும் நிறைய சுவாரஸ்யமான விஷயங்கள் இங்கே காத்திருக்கின்றன.

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

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

சலிப்பை ஒழுங்கமைப்பது சுவாரஸ்யமானது

பின்வரும் இஸ்டியோ ரூட்டிங் விதியைப் பாருங்கள், இது அனைத்து HTTP கோரிக்கைகளையும் மைக்ரோ சர்வீஸ் பரிந்துரை v1க்கு அனுப்புகிறது (அனைத்து எடுத்துக்காட்டுகளும் எடுக்கப்பட்டது இஸ்டியோ டுடோரியல் கிட்ஹப் ரெப்போ), அதே நேரத்தில் அவற்றைப் பரிந்துரை v2 மைக்ரோ சர்வீஸுக்கு பிரதிபலிக்கிறது:

இஸ்டியோவில் டார்க் லாஞ்ச்: சீக்ரெட் சர்வீசஸ்
லேபிளில் கவனம் செலுத்துங்கள் mirror: திரையின் அடிப்பகுதியில் - இது போக்குவரத்து பிரதிபலிப்பை அமைக்கிறது. ஆம், இது மிகவும் எளிமையானது!

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

நாடகத்தைச் சேர்ப்போம்

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

ஒரு முக்கியமான விஷயத்தை மீண்டும் சொல்கிறோம்

ட்ராஃபிக் மிரரிங் (டார்க் லாஞ்ச்/ரிக்வெஸ்ட் மிரரிங்) மூலம் ரகசிய ஏவுதல் குறியீட்டை எந்த விதத்திலும் பாதிக்காமல் செய்ய முடியும்.

சிந்தனைக்கான உணவு

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

இஸ்டியோவில் கேனரி வரிசைப்படுத்தல்: ஆணையிடுதலை எளிமையாக்குதல்

கவனமாகவும் படிப்படியாகவும்

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

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

உலாவியை வடிகட்டுகிறது

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

இஸ்டியோவில் டார்க் லாஞ்ச்: சீக்ரெட் சர்வீசஸ்
இந்த ரூட்டிங் விதியைப் பயன்படுத்துவோம், பின்னர் கட்டளையைப் பயன்படுத்துவோம் curl மைக்ரோ சர்வீஸுக்கு உண்மையான கோரிக்கைகளை லூப்பில் உருவகப்படுத்துவோம். ஸ்கிரீன்ஷாட்டில் நீங்கள் பார்ப்பது போல், அவை அனைத்தும் v1 க்கு செல்கின்றன:

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

இஸ்டியோவில் டார்க் லாஞ்ச்: சீக்ரெட் சர்வீசஸ்

வரம்பற்ற சக்தி

வழக்கமான வெளிப்பாடுகள் ரூட்டிங் கோரிக்கைகளுக்கு மிகவும் சக்திவாய்ந்த திறன்களை வழங்குகின்றன என்பதை நாங்கள் ஏற்கனவே எழுதியுள்ளோம். பின்வரும் எடுத்துக்காட்டைப் பாருங்கள் (அது என்ன செய்கிறது என்பதை நீங்கள் புரிந்துகொள்வீர்கள் என்று நாங்கள் நினைக்கிறோம்):

இஸ்டியோவில் டார்க் லாஞ்ச்: சீக்ரெட் சர்வீசஸ்
வழக்கமான வெளிப்பாடுகள் என்ன செய்ய முடியும் என்பது பற்றி இப்போது உங்களுக்கு ஒரு யோசனை இருக்கலாம்.

புத்திசாலித்தனமாக செயல்படுங்கள்

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

ஆர்வமா?

உங்கள் கணினியில் Istio, Kubernetes மற்றும் OpenShift ஆகியவற்றைப் பயன்படுத்திப் பரிசோதனை செய்ய ஆர்வமாக உள்ளீர்களா? குழு Red Hat டெவலப்பர் குழு ஒரு சிறந்த தயார் பாடநூல் இந்த தலைப்பில் மற்றும் அதனுடன் உள்ள அனைத்து கோப்புகளையும் பொதுவில் கிடைக்கச் செய்தது. எனவே முன்னோக்கி செல்லுங்கள், எதையும் மறுக்காதீர்கள்.

இஸ்டியோ எக்ரஸ்: நினைவு பரிசு கடை வழியாக வெளியேறவும்

Red Hat OpenShift மற்றும் Kubernetes உடன் இஸ்டியோவைப் பயன்படுத்துவதன் மூலம், மைக்ரோ சர்வீஸ் மூலம் உங்கள் வாழ்க்கையை மிகவும் எளிதாக்கலாம். இஸ்டியோவின் சர்வீஸ் மெஷ் குபெர்னெட்டஸ் காய்களுக்குள் மறைக்கப்பட்டுள்ளது, மேலும் உங்கள் குறியீடு (பெரும்பாலும்) தனித்தனியாக இயங்கும். செயல்திறன், மாற்றத்தின் எளிமை, தடமறிதல், முதலியன - இவை அனைத்தும் சைட்கார் கொள்கலன்களின் பயன்பாட்டிற்கு நன்றி பயன்படுத்த எளிதானது. உங்கள் மைக்ரோ சர்வீஸ் உங்கள் OpenShift-Kubernetes அமைப்புக்கு வெளியே அமைந்துள்ள பிற சேவைகளுடன் தொடர்பு கொள்ள வேண்டுமானால் என்ன செய்வது?

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

எக்ரஸ் விதிகளின் அடிப்படையில் அல்லது ஐபி முகவரிகளின் வரம்பில் மேலே உள்ள ஐபி அட்டவணைகளைத் தவிர்க்க எக்ரஸ் உங்களை அனுமதிக்கிறது.

httpbin.org/headers க்கு GET கோரிக்கையை உருவாக்கும் ஜாவா நிரல் எங்களிடம் உள்ளது என்று வைத்துக்கொள்வோம்.

(httpbin.org என்பது வெளிச்செல்லும் சேவை கோரிக்கைகளை சோதிப்பதற்கான ஒரு வசதியான ஆதாரமாகும்.)

நீங்கள் கட்டளை வரியில் உள்ளிட்டால் curl http://httpbin.org/headers, பின்வருவனவற்றைப் பார்ப்போம்:

இஸ்டியோவில் டார்க் லாஞ்ச்: சீக்ரெட் சர்வீசஸ்
அல்லது அதே முகவரியை உலாவியில் திறக்கலாம்:

இஸ்டியோவில் டார்க் லாஞ்ச்: சீக்ரெட் சர்வீசஸ்
நீங்கள் பார்க்க முடியும் என, அங்கு அமைந்துள்ள சேவை அதற்கு அனுப்பப்பட்ட தலைப்புகளைத் திருப்பித் தருகிறது.

நாங்கள் இறக்குமதியை தலைகீழாக மாற்றுகிறோம்

இப்போது இந்த சேவையின் ஜாவா குறியீட்டை, நமது கணினிக்கு வெளியே எடுத்து, அதை சொந்தமாக இயக்குவோம், அங்கு, நினைவுபடுத்த, இஸ்டியோ நிறுவப்பட்டுள்ளது. (தொடர்பு மூலம் இதை நீங்களே செய்யலாம் எங்கள் இஸ்டியோ டுடோரியல்.) பொருத்தமான படத்தை உருவாக்கி அதை OpenShift இயங்குதளத்தில் அறிமுகப்படுத்திய பிறகு, இந்த சேவையை கட்டளையுடன் அழைப்போம் curl egresshttpbin-istioegress.$(minishift ip).nip.io, அதன் பிறகு இதை திரையில் பார்ப்போம்:

இஸ்டியோவில் டார்க் லாஞ்ச்: சீக்ரெட் சர்வீசஸ்
அச்சச்சோ, என்ன நடந்தது? எல்லாம் வேலை செய்தது. கிடைக்கவில்லை என்றால் என்ன அர்த்தம்? அவருக்காகத்தான் செய்தோம் curl.

IP அட்டவணைகளை முழு இணையத்திற்கும் விரிவுபடுத்துதல்

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

கீழே உள்ள எக்ரஸ் விதியானது இஸ்டியோவை தேவையான சேவையை தேட (தேவைப்பட்டால், பின்னர் முழு இணையம் முழுவதும்) கட்டாயப்படுத்துகிறது, இந்த விஷயத்தில், httpbin.org. இந்தக் கோப்பிலிருந்து (egress_httpbin.yml) நீங்கள் பார்ப்பது போல், இங்கே செயல்பாடு மிகவும் எளிமையானது:

இஸ்டியோவில் டார்க் லாஞ்ச்: சீக்ரெட் சர்வீசஸ்
இந்த விதியைப் பயன்படுத்துவதே எஞ்சியுள்ளது:

istioctl create -f egress_httpbin.yml -n istioegress

கட்டளை மூலம் வெளியேறும் விதிகளைப் பார்க்கலாம் istioctl get egressrules:

இஸ்டியோவில் டார்க் லாஞ்ச்: சீக்ரெட் சர்வீசஸ்
இறுதியாக, நாங்கள் மீண்டும் கட்டளையை இயக்குகிறோம் சுருட்டை - மற்றும் எல்லாம் செயல்படுவதை நாங்கள் காண்கிறோம்:

இஸ்டியோவில் டார்க் லாஞ்ச்: சீக்ரெட் சர்வீசஸ்

நாங்கள் வெளிப்படையாக சிந்திக்கிறோம்

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

இது இஸ்தியோவில் தொடரின் கடைசி இடுகை. காத்திருங்கள் - முன்னால் நிறைய சுவாரஸ்யமான விஷயங்கள் உள்ளன!

ஆதாரம்: www.habr.com

கருத்தைச் சேர்