குபெர்னெட்ஸ் கிளஸ்டரில் துளைகளை சரிசெய்தல். DevOpsConf இலிருந்து அறிக்கை மற்றும் டிரான்ஸ்கிரிப்ட்

சவுத்பிரிட்ஜ் தீர்வுகள் கட்டிடக் கலைஞரும் ஸ்லர்ம் ஆசிரியருமான Pavel Selivanov, DevOpsConf 2019 இல் விளக்கக்காட்சியை வழங்கினார். இந்த பேச்சு குபெர்னெட்டஸ் “ஸ்லர்ம் மெகா” பற்றிய ஆழமான பாடத்தின் தலைப்புகளில் ஒன்றின் ஒரு பகுதியாகும்.

ஸ்லர்ம் அடிப்படை: குபெர்னெட்டஸுக்கு ஒரு அறிமுகம் நவம்பர் 18-20 அன்று மாஸ்கோவில் நடைபெறுகிறது.
ஸ்லர்ம் மெகா: குபெர்னெட்டஸின் பேட்டைக்கு அடியில் பார்க்கிறேன் - மாஸ்கோ, நவம்பர் 22-24.
ஸ்லர்ம் ஆன்லைன்: இரண்டு குபெர்னெட்ஸ் படிப்புகள் எப்போதும் கிடைக்கும்.

வெட்டுக்கு கீழே அறிக்கையின் டிரான்ஸ்கிரிப்ட் உள்ளது.

நல்ல மதியம், சக ஊழியர்கள் மற்றும் அவர்களுடன் அனுதாபம் கொண்டவர்கள். இன்று நான் பாதுகாப்பு பற்றி பேசுவேன்.

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

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

எனது முந்தைய நிறுவனம் அத்தகைய சேவையை விற்க முயற்சித்தது. இந்த தீர்வு பொருத்தமானதா இல்லையா என்பதைப் பார்க்க கிளஸ்டரைக் குத்தும்படி என்னிடம் கேட்கப்பட்டது.

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

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

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

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

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

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

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

இன்று நான் பேசும் மூன்று புள்ளிகள் உள்ளன:

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

நான் குறிப்பிடும் மற்றொரு பொதுவான விஷயம் என்னவென்றால், நான் இதையெல்லாம் சோதித்தேன், இது அனைத்தும் வேலை செய்கிறது என்று நான் நிச்சயமாக சொல்ல முடியும்.

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

இந்த கிளஸ்டரில் நான் குபெர்னெட்டஸ் v1.14.5 ஐக் கொண்டிருப்பேன். நாம் கருத்தில் கொள்ளும் முழு கியூப் கிளஸ்டரும் பெயர்வெளிகளாக பிரிக்கப்பட்டுள்ளது, ஒவ்வொரு பெயர்வெளியும் தனித்தனி குழுவிற்கு சொந்தமானது, மேலும் இந்த குழுவின் உறுப்பினர்கள் ஒவ்வொரு பெயர்வெளிக்கும் அணுகலைக் கொண்டுள்ளனர். அவர்கள் வெவ்வேறு பெயர்வெளிகளுக்குச் செல்ல முடியாது, அவர்களின் சொந்த இடத்திற்கு மட்டுமே. ஆனால் ஒரு குறிப்பிட்ட நிர்வாகி கணக்கு உள்ளது, அது முழு கிளஸ்டருக்கும் உரிமை உண்டு.

குபெர்னெட்ஸ் கிளஸ்டரில் துளைகளை சரிசெய்தல். DevOpsConf இலிருந்து அறிக்கை மற்றும் டிரான்ஸ்கிரிப்ட்

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

kubectl apply -f pod.yaml

இந்த பாட் குபெர்னெட்டஸ் கிளஸ்டரின் எஜமானர்களில் ஒருவருக்கு வரும். இதற்குப் பிறகு, கிளஸ்டர் எங்களுக்கு admin.conf என்ற கோப்பை மகிழ்ச்சியுடன் திருப்பித் தரும். Cube இல், இந்த கோப்பு அனைத்து நிர்வாகி சான்றிதழ்களையும் சேமித்து, அதே நேரத்தில் கிளஸ்டர் API ஐ உள்ளமைக்கிறது. 98% குபெர்னெட்ஸ் கிளஸ்டர்களுக்கு நிர்வாகி அணுகலைப் பெறுவது எவ்வளவு எளிது என்று நினைக்கிறேன்.

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

இப்போது சிறப்பாக தயாரிக்கப்பட்ட நெற்று பற்றி. நாங்கள் அதை எந்த படத்திலும் இயக்குகிறோம். உதாரணமாக debian:jessie ஐ எடுத்துக்கொள்வோம்.

எங்களிடம் இந்த விஷயம் உள்ளது:

tolerations:
-   effect: NoSchedule 
    operator: Exists 
nodeSelector: 
    node-role.kubernetes.io/master: "" 

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

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

இந்த இரண்டு பிரிவுகளுடன் அவர் நிச்சயமாக மாஸ்டருக்கு வருவார். மேலும் அவர் அங்கு வாழ அனுமதிக்கப்படுவார்.

ஆனால் மாஸ்டரிடம் வந்தால் மட்டும் போதாது. இது நமக்கு எதையும் தராது. எனவே அடுத்ததாக இந்த இரண்டு விஷயங்கள் உள்ளன:

hostNetwork: true 
hostPID: true 

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

அப்புறம் சின்ன சின்ன விஷயம். முதலியன எடுத்து உங்களுக்குத் தேவையானதைப் படியுங்கள்.

மிகவும் சுவாரஸ்யமான விஷயம் என்னவென்றால், இந்த குபெர்னெட்ஸ் அம்சம் இயல்பாகவே உள்ளது.

volumeMounts:
- mountPath: /host 
  name: host 
volumes:
- hostPath: 
    path: / 
    type: Directory 
  name: host 

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

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

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

பின்னர் முழு பணியும் துணை அடைவு / புரவலன் / etc / kubernetes / pki க்குச் செல்ல வேண்டும், நான் தவறாக நினைக்கவில்லை என்றால், கிளஸ்டரின் அனைத்து முதன்மை சான்றிதழ்களையும் எடுத்து, அதன்படி, கிளஸ்டர் நிர்வாகியாக மாற வேண்டும்.

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

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

எனக்கு பிடித்த ரூட் பயனர். மேலும் குபெர்னெட்டஸ் இந்த Run As Non-Root விருப்பத்தை கொண்டுள்ளது. இது ஹேக்கரிடமிருந்து ஒரு வகையான பாதுகாப்பு. "மால்டேவியன் வைரஸ்" என்றால் என்ன தெரியுமா? நீங்கள் திடீரென்று ஒரு ஹேக்கராக இருந்து, எனது குபெர்னெட்டஸ் கிளஸ்டருக்கு வந்தால், ஏழை நிர்வாகிகளாகிய நாங்கள் கேட்கிறோம்: "எனது கிளஸ்டரை ஹேக் செய்வீர்கள், ரூட் அல்லாததாக இயங்கும் உங்கள் காய்களில் குறிப்பிடவும். இல்லையெனில், நீங்கள் இந்த செயல்முறையை உங்கள் பாட்டின் கீழ் இயக்குவது நடக்கும், மேலும் நீங்கள் என்னை ஹேக் செய்வது மிகவும் எளிதாக இருக்கும். தயவுசெய்து உங்களிடமிருந்து உங்களைப் பாதுகாத்துக் கொள்ளுங்கள்."

ஹோஸ்ட் பாதை தொகுதி என்பது, குபெர்னெட்டஸ் கிளஸ்டரிலிருந்து விரும்பிய முடிவைப் பெறுவதற்கான விரைவான வழி என்பது என் கருத்து.

ஆனால் இதையெல்லாம் என்ன செய்வது?

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

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

Pod பாதுகாப்புக் கொள்கையின் மிகவும் சுவாரஸ்யமான விஷயம் என்னவென்றால், குபெர்னெட்ஸ் கிளஸ்டரில், அனைத்து PSP நிறுவிகளும் எந்த வகையிலும் விவரிக்கப்படவில்லை, அவை இயல்பாகவே முடக்கப்பட்டுள்ளன. சேர்க்கை செருகுநிரலைப் பயன்படுத்தி Pod பாதுகாப்புக் கொள்கை இயக்கப்பட்டது.

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

மேலும் எல்லாம் எங்களுடன் நன்றாக இருப்பதாக தெரிகிறது. எங்கள் குபெர்னெட்ஸ் கிளஸ்டரை இரண்டு நிமிடங்களில் ஹேக் செய்ய முடியாது.

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

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

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

குபெர்னெட்ஸ் கிளஸ்டரில் துளைகளை சரிசெய்தல். DevOpsConf இலிருந்து அறிக்கை மற்றும் டிரான்ஸ்கிரிப்ட்

அடுத்து எங்களிடம் ஒரு குறிப்பிட்ட dev ns உள்ளது, அதில் நீங்கள் ஒரு குறிப்பிட்ட பாட் ஐ இயக்கலாம். பின்னர் இந்த பானிலிருந்து இதுபோன்ற ஒன்றைச் செய்வது மிகவும் எளிதானது:

$ curl http://prometheus-kube-state-metrics.monitoring 

prometheus-kube-state-metrics என்பது குபெர்னெட்டஸ் API இலிருந்து அளவீடுகளை சேகரிக்கும் Prometheus ஏற்றுமதியாளர்களில் ஒன்றாகும். நிறைய தரவுகள் உள்ளன, உங்கள் கிளஸ்டரில் என்ன இயங்குகிறது, அது என்ன, அதில் உங்களுக்கு என்ன சிக்கல்கள் உள்ளன.

ஒரு எளிய உதாரணம்:

kube_pod_container_info{namespace=“kube-system”,pod=”kube-apiserver-k8s- 1″,container=”kube-apiserver”,image=

"gcr.io/google-containers/kube-apiserver:v1.14.5"

,image_id=»docker-pullable://gcr.io/google-containers/kube- apiserver@sha256:e29561119a52adad9edc72bfe0e7fcab308501313b09bf99df4a96 38ee634989″,container_id=»docker://7cbe7b1fea33f811fdd8f7e0e079191110268f2 853397d7daf08e72c22d3cf8b»} 1

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

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

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

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

அப்படி ஒரு விஷயம் இருக்கிறது - நெட்வொர்க் கொள்கை.

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

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

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

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

நான் என்ன செய்ய வேண்டும்?

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

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

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

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

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

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

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

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

நான் இதைச் சொன்னால் நீங்கள் சிரிப்பீர்கள், இவை இரண்டு நிஜ வாழ்க்கை வழக்குகள்.

முறை ஒன்று. வளம் குறைதல்.

இன்னொரு ஸ்பெஷல் பாட் ஆரம்பிக்கலாம். இது போன்ற ஒரு பகுதி இருக்கும்.

resources: 
    requests: 
        cpu: 4 
        memory: 4Gi 

உங்களுக்குத் தெரியும், கோரிக்கைகள் என்பது CPU மற்றும் நினைவகத்தின் அளவு, கோரிக்கைகளுடன் குறிப்பிட்ட காய்களுக்காக ஹோஸ்டில் ஒதுக்கப்பட்டுள்ளது. குபெர்னெட்டஸ் கிளஸ்டரில் எங்களிடம் நான்கு-கோர் ஹோஸ்ட் இருந்தால், மேலும் நான்கு CPU பாட்கள் கோரிக்கைகளுடன் அங்கு வந்தால், இந்த ஹோஸ்டுக்கு கோரிக்கைகளுடன் கூடிய எந்த காய்களும் வராது என்று அர்த்தம்.

நான் அத்தகைய பாட் ஒன்றை இயக்கினால், நான் கட்டளையை இயக்குவேன்:

$ kubectl scale special-pod --replicas=...

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

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

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

இங்கிருந்துதான் முறை எண் இரண்டு வருகிறது. நாங்கள் 11 காய்களை அறிமுகப்படுத்துகிறோம். அது பதினொரு பில்லியன். இது நான் அத்தகைய எண்ணைக் கொண்டு வந்ததால் அல்ல, அதை நானே பார்த்ததால்.

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

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

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

இயற்கையாகவே, குபெர்னெட்டஸிலும் இதைச் செய்ய முயற்சித்தேன். பதினொரு பில்லியன் காய்களில் குபெர்னெட்டஸ் மகிழ்ச்சியடையவில்லை, அவர் கூறினார்: "என்னால் முடியாது. உள் வாய் காவலர்களை மீறுகிறது." ஆனால் 1 காய்கள் முடியும்.

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

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

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

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

for i in {1..1111111}; do
    kubectl expose deployment test --port 80  
        --overrides="{"apiVersion": "v1", 
           "metadata": {"name": "nginx$i"}}"; 
done 

கிளஸ்டரின் அனைத்து முனைகளிலும், மேலும் மேலும் புதிய iptables விதிகள் தோராயமாக ஒரே நேரத்தில் உருவாக்கப்படும். மேலும், ஒவ்வொரு சேவைக்கும் ஒரு பில்லியன் iptables விதிகள் உருவாக்கப்படும்.

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

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

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

ஆதார ஒதுக்கீடு + வரம்பு வரம்பு + RBAC
• பெயர்வெளியை உருவாக்கவும்
• உள்ளே வரம்பு வரம்பை உருவாக்கவும்
• வள ஒதுக்கீட்டின் உள்ளே உருவாக்கவும்
• CIக்கான சேவைக் கணக்கை உருவாக்கவும்
• CI மற்றும் பயனர்களுக்கு ரோல்பைண்டிங்கை உருவாக்கவும்
• விருப்பமாக தேவையான சேவை காய்களை துவக்கவும்

எனவே, எனது முன்னேற்றங்களைப் பகிர்ந்து கொள்ள இந்த வாய்ப்பைப் பயன்படுத்த விரும்புகிறேன். SDK ஆபரேட்டர் என்று ஒன்று உள்ளது. குபெர்னெட்ஸ் கிளஸ்டருக்கு ஆபரேட்டர்களை எழுத இது ஒரு வழியாகும். நீங்கள் Ansible ஐப் பயன்படுத்தி அறிக்கைகளை எழுதலாம்.

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

சிறியது இந்த முழு சிக்கலான செயல்முறையை எளிதாக்குகிறது.

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

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

LimitRange/ResourceQuota - அதைப் பயன்படுத்துவதற்கான நேரம் இது. நாங்கள் இதை நீண்ட காலத்திற்கு முன்பு பயன்படுத்த ஆரம்பித்தோம், நீண்ட காலமாக எல்லோரும் இதைப் பயன்படுத்துகிறார்கள் என்று நான் உறுதியாக நம்பினேன். இது அரிதானது என்று மாறியது.

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

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

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

அனைவருக்கும் நன்றி.

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

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