டாப் 10 குபர்னெட்ஸ் தந்திரங்கள் மற்றும் உதவிக்குறிப்புகள்

டாப் 10 குபர்னெட்ஸ் தந்திரங்கள் மற்றும் உதவிக்குறிப்புகள்

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

குபெர்னெட்டஸுடன் பணிபுரிய எளிய கட்டளை

தொடங்குவதற்கு, குபெர்னெட்டஸுடன் பணிபுரிவதில் எளிமையான மற்றும் மிகவும் பயனுள்ள செயல். பின்வரும் கட்டளை கட்டளையை முடிக்க உதவுகிறது kubectl பாஷ் ஷெல்லில்:

echo "source <(kubectl completion bash)" >> ~/.bashrc

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

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

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

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

apiVersion: v1
kind: LimitRange
metadata:
  name: mem-limit-range
spec:
  limits:
  - default:
      memory: 512Mi
    defaultRequest:
      memory: 256Mi
    type: Container

அத்தகைய yaml ஐ உருவாக்கி எந்த பெயர்வெளிக்கும் விண்ணப்பிக்கவும். உதாரணமாக, பெயர்வெளிக்கு limit-example. இப்போது இந்த நேம்ஸ்பேஸில் பயன்படுத்தப்படும் எந்தவொரு கொள்கலனுக்கும் 512Mi வரம்பு இருக்கும், இந்த கொள்கலனுக்கு மற்றொரு தனிப்பட்ட வரம்பு கூடுதலாக அமைக்கப்படாவிட்டால்.

குபெர்னெட்டஸின் பழைய பதிப்புகளில் குப்பை சேகரிப்பு

குபெலெட் இயல்பாக குப்பை சேகரிப்பை எப்போது தொடங்கும் var/lib/docker கிடைக்கக்கூடிய வட்டு இடத்தில் 90% ஆக்கிரமித்துள்ளது. இருப்பினும், குபெர்னெட்டஸ் 1.7 வரை, கோப்பு முறைமையில் உள்ள கோப்புகளின் எண்ணிக்கையுடன் தொடர்புடைய ஐனோட்களின் எண்ணிக்கையில் இயல்புநிலை வரம்பு இல்லை.

சாத்தியமான உங்கள் கொள்கலன் var/lib/docker வட்டு இடத்தில் 50% மட்டுமே பயன்படுத்த முடியும், ஆனால் ஐனோடுகள் தீர்ந்துவிடும், இது தொழிலாளர்களுக்கு சிக்கல்களை ஏற்படுத்தும்.

1.4 முதல் 1.6 வரையிலான குபெலெட்டின் பழைய பதிப்புகளில் நீங்கள் இந்தக் கொடியைச் சேர்க்க வேண்டும்:

--eviction-hard
=memory.available<100Mi,nodefs.available<10%,nodefs.inodesFree<5%

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

மினிகுபே... சிறிய ஆனால் சக்திவாய்ந்த உள்ளூர் குபெர்னெட்ஸ்

உள்ளூர் குபெர்னெட்ஸ் கிளஸ்டரை இயக்குவதற்கு மினிகுபே எளிதான வழி. இது ஒரு எளிய கட்டளையுடன் தொடங்கப்பட்டது:

minikube start

இந்த கட்டளையை இயக்குவது உங்கள் கணினியில் உண்மையான குபெர்னெட்ஸ் கிளஸ்டர் இயங்கும்.

டாப் 10 குபர்னெட்ஸ் தந்திரங்கள் மற்றும் உதவிக்குறிப்புகள்
விளக்க ஆதாரம்

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

படத்தை உள்ளூர் குபெர்னெட்டஸ் கிளஸ்டருக்கு தள்ள டோக்கரை கட்டாயப்படுத்த, டோக்கர் இயந்திரத்திற்கு பின்வரும் கட்டளை வழங்கப்படுகிறது:

eval $(minikube docker-env)

இப்போது நாம் உள்ளூர் குபெர்னெட்ஸ் கிளஸ்டரில் பயன்பாடுகளை உருவாக்கலாம்.

அனைவருக்கும் kubectl அணுகலை வழங்க வேண்டாம்

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

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

பாட் பட்ஜெட்களை நிர்வகிக்கவும்

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

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

குறிப்பு: பட்ஜெட் மீறல் மீளக்கூடியதாக இருக்கும்போது மட்டுமே PDB பட்ஜெட் கணக்கில் எடுத்துக்கொள்ளப்படும் (தன்னார்வ இடையூறு) வன்பொருள் தோல்விகள் போன்ற சூழ்நிலைகளில், PDB வேலை செய்யாது.

உதாரணம் PDB:

apiVersion: policy/v1beta1
kind: PodDisruptionBudget
metadata:
  name: app-a-pdb
spec:
  minAvailable: 2
  selector:
      matchLabels:
        app: app-a

இரண்டு முக்கிய அளவுருக்கள் matchLabels и minAvailable. பட்ஜெட் எந்தெந்த பயன்பாடுகளுக்குப் பொருந்தும் என்பதை முதல் அளவுரு குறிப்பிடுகிறது. எடுத்துக்காட்டாக, என்னிடம் லேபிள்களுடன் வரிசைப்படுத்தல்கள் இருந்தால் app: app-a и app: app-b, இந்த PDB முதல்வருக்கு மட்டுமே பொருந்தும்.

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

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

பயன்பாடு சுகாதார கண்காணிப்பு

இத்தகைய கண்காணிப்பு இரண்டு வழிகளில் சாத்தியமாகும்: தயார்நிலை அல்லது லைவ்னெஸ் சோதனைகளைப் பயன்படுத்துதல்.

முதல் ஆய்வு (ஆயத்தம்) போக்குவரத்தைப் பெறுவதற்கு கொள்கலனின் தயார்நிலையை தீர்மானிக்கிறது.

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

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

குறிச்சொற்கள் எல்லா இடங்களிலும் உள்ளன

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

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

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

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

ஏற்பாடு செய்யுங்கள்

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

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

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

மீட் கோ

முக்கிய ஆலோசனையை கடைசியாக சேமித்துள்ளோம். Go நிரலாக்க மொழியைக் கற்றுக்கொள்ளுங்கள்.

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

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

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

Mail.ru Cloud Solutions இன் ஆதரவுடன் மொழிபெயர்க்கப்பட்டது

வேறு என்ன படிக்க வேண்டும்:

  1. குபெர்னெட்ஸில் ஆட்டோஸ்கேலிங் மூன்று நிலைகள் மற்றும் அவற்றை எவ்வாறு திறம்பட பயன்படுத்துவது.
  2. குபெர்னெட்ஸ் தொழிலாளி முனைகள்: பல சிறியவை அல்லது சில பெரியவை?
  3. 25 குபெர்னெட்களை வரிசைப்படுத்துவதற்கும் நிர்வகிப்பதற்கும் பயனுள்ள கருவிகள்.

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

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