ஆதாயங்கள்:
- குபெர்னெட்ஸின் அடிப்படை பொருள்கள் (Pod, Deployment, Service, ConfigMap, Secret, Namespace) மற்றும் டிக்ளரேட்டிவ் தத்துவத்தைப் புரிந்துகொண்டு செயற்கை நுண்ணறிவுக்கான திடமான வெளிப்பாடுகளை உருவாக்கும் திறன்
- ஆதார வரம்புகள், சுகாதார சோதனைகள் (ஆய்வுகள்), நிலையான படக் குறிச்சொற்கள் மற்றும் குறுகலான RBAC ஆகியவற்றுடன் மேனிஃபெஸ்ட்களை உற்பத்திக்குத் தயார்படுத்தும் திறன்.
- செயல்படுத்துவதற்கு முன் சரியான சூழலைச் சரிபார்க்கும் திறன் மற்றும் உலர்-ரன்/வேறுபாடுகளுடன் உலர்-ஓட்ட ஒழுக்கத்தைப் பயன்படுத்துதல்
ஒரு கொள்கலனை இயக்குவது எளிது. ஆனால் டஜன் கணக்கான சர்வர்களில் நூற்றுக்கணக்கான கொள்கலன்களைப் பரப்பும் ஒரு அமைப்பை நிறுவுதல், அவற்றில் ஒன்று செயலிழக்கும்போது தானாகவே மறுதொடக்கம் செய்யப்படும், சுமை அதிகரிக்கும் போது அதைப் பிரதிபலிக்கும் மற்றும் பூஜ்ஜிய வேலையில்லா நேரத்துடன் அதைப் புதுப்பிக்குமா? அதுதான் ஆர்கெஸ்ட்ரேஷன், மற்றும் தொழில்துறை நிலையான கருவி குபெர்னெட்டஸ் (சுருக்கமாக K8s) - ஒரு கிளஸ்டர் முழுவதும் கொள்கலன்களை தானாக வரிசைப்படுத்தி, அளவிடும் மற்றும் நிர்வகிக்கும் தளம். குபெர்னெட்டஸ் சக்தி வாய்ந்தது ஆனால் சிக்கலானது: எல்லாமே நீண்ட, உள்தள்ளல் உணர்திறன் YAML கோப்புகளால் வரையறுக்கப்படுகிறது — மேனிஃபெஸ்ட்ஸ் எனப்படும். இங்குதான் AI புதிய காற்றின் சுவாசத்தை அளிக்கிறது; சரியான சூழலுடன், இது விரைவாக இந்த வெளிப்பாடுகளை உருவாக்குகிறது மற்றும் அவற்றின் மர்மமான பிழைகளை டிகோட் செய்கிறது.
ஆனால் குபெர்னெட்டஸில், ஒரு தவறான மேனிஃபெஸ்ட் என்பது ஒரு முழு சேவையையும் நிலைநிறுத்துவதில் தோல்வி, தவறாக அளவிடுதல் அல்லது பாதிப்பை விட்டுவிடுதல் என்பதாகும். AI உருவாக்கும் ஒவ்வொரு மேனிஃபெஸ்டையும் புரிந்துகொண்டு சரிபார்ப்பது உங்கள் பொறுப்பு - குறிப்பாக kubectl விண்ணப்பிக்கும் முன்.
குபெர்னெட்ஸ் முக்கிய பொருள்கள்
குபெர்னெட்டஸைத் தணிக்கை செய்ய, நீங்கள் முக்கிய கருத்துக்களை அறிந்து கொள்ள வேண்டும்:
- பாட்: மிகச்சிறிய வேலை அலகு; இது ஒன்று அல்லது பல கொள்கலன்களைக் கொண்டுள்ளது. பொதுவாக, Pod நேரடியாகப் பயன்படுத்தப்படுவதில்லை, ஆனால் அதை நிர்வகிக்கும் பெற்றோர் பொருள்கள் பயன்படுத்தப்படுகின்றன.
- வரிசைப்படுத்தல்: ஒரு பயன்பாட்டின் எத்தனை பிரதிகள் இயங்கும், எந்தப் படத்தைப் பயன்படுத்தும், அது எவ்வாறு புதுப்பிக்கப்படும் என்பதை வரையறுக்கிறது. ஒரு பாட் செயலிழந்தால், அது தானாகவே மீண்டும் உருவாக்கப்படும்.
- சேவை: ஒரு நிலையான பிணைய முகவரியை வழங்குகிறது மற்றும் காய்களுக்கு ஏற்ற சமநிலையை வழங்குகிறது; காய்கள் வந்து சென்றாலும், அணுகல் முகவரி மாறாது.
- கான்ஃபிக்மேப் மற்றும் சீக்ரெட்: உள்ளமைவு மதிப்புகள் மற்றும் ரகசிய தகவல்களை பாட்களிலிருந்து தனித்தனியாக வைத்திருக்கும். ConfigMap என்பது வெளிப்படையான அமைப்புகளுக்கானது, ரகசியமானது முக்கியமான மதிப்புகளுக்கானது.
- பெயர்வெளி: தர்க்கரீதியாக வளங்களைப் பிரித்து தனிமைப்படுத்தும் பகுதி (எ.கா. dev, prod).
- நுழைவு: வெளி உலகத்திலிருந்து HTTP போக்குவரத்தை கிளஸ்டரில் உள்ள சேவைகளுக்கு வழிநடத்தும் விதி தொகுப்பு.
ஹெல்ம் என்பது குபெர்னெட்ஸின் "பேக்கேஜ் மேனேஜர்" ஆகும்: இது தொடர்ச்சியான மேனிஃபெஸ்ட்டுகளை (விளக்கப்படங்கள்) டெம்ப்ளேட் செய்ய உங்களை அனுமதிக்கிறது மற்றும் வெவ்வேறு சூழல்களில் வெவ்வேறு மதிப்புகளுடன் அவற்றை ஒரே கட்டளையுடன் நிறுவ அனுமதிக்கிறது. AI ரா மேனிஃபெஸ்ட் மற்றும் ஹெல்ம் விளக்கப்படம் இரண்டையும் உருவாக்குகிறது.
ஏன் இவ்வளவு பொருள்கள் உள்ளன? குபெர்னெட்டஸின் அடிப்படைத் தத்துவம் பிரகடனமாக இருப்பதால்: "கணினி எவ்வாறு தோற்றமளிக்க வேண்டும் என்று நீங்கள் விரும்புகிறீர்கள்" (எ.கா. "எப்போதும் இந்த பயன்பாட்டின் 3 நகல்களை வைத்திருக்க வேண்டும்") என்று வரையறுக்கிறீர்கள், அதே நேரத்தில் குபெர்னெட்டஸ் தற்போதைய நிலையை விரும்பிய நிலைக்கு நெருக்கமாக நகர்த்துகிறார். ஒரு பாட் இறந்துவிட்டால், அது புதிய ஒன்றை உருவாக்குகிறது; ஒரு முனை கீழே சென்றால், அது பணிச்சுமையை மற்றொரு முனைக்கு நகர்த்துகிறது. அதனால்தான் மேனிஃபெஸ்டுகள் "செய்" கட்டளைகள் அல்ல, ஆனால் "இப்படி இருக்கட்டும்" சமையல் குறிப்புகள். AI உருவாக்கும் வெளிப்பாடுகளைப் படிக்கும்போது இந்த வேறுபாட்டைப் புரிந்துகொள்வது மிகவும் முக்கியமானது: ஒவ்வொரு டொமைனும் கணினியின் விரும்பிய நிலையின் பகுதியை விவரிக்கிறது. தவறான டொமைன் என்றால் குபெர்னெட்ஸ் தவறான இலக்கை நோக்கிச் செயல்படுகிறார் - அந்த இலக்கு அமைதியாக, தொடர்ந்து செயல்படுத்தப்படுகிறது.
உதவிக்குறிப்பு: குபெர்னெட்டஸில், மிக முக்கியமான பாதுகாப்பான சோதனைக் கருவி kubectl apply --dry-run=server -f file.yaml: இது சர்வர் ஏற்குமா மற்றும் உண்மையில் மேனிஃபெஸ்ட்டைப் பயன்படுத்தாமல் என்ன செய்ய வேண்டும் என்பதைக் காட்டுகிறது. ப்ராடிற்கு மெனிஃபெஸ்ட்டைப் பயன்படுத்துவதற்கு முன், டிரை-ரன் மற்றும் குபெக்ட் டிஃப் ஆகியவற்றை இயக்குவதை உறுதிப்படுத்திக் கொள்ளுங்கள்.
படிப்படியாக: AI உடன் மேனிஃபெஸ்ட்களை உருவாக்குதல்
- விண்ணப்பம் மற்றும் தேவையை விவரிக்கவும். படத்தின் பெயர், போர்ட், எத்தனை பிரதிகள், ஆதார வரம்புகள் (CPU/மெமரி).
- வரிசைப்படுத்தல் + சேவை கோரிக்கை. பொதுவாக இரண்டும் ஒன்றாக தேவை.
- தனி அமைப்பு மற்றும் ரகசியம். ConfigMapக்கான அமைப்புகள், ரகசியத்திற்கான முக்கியமான மதிப்புகள்.
- சுகாதார சோதனைகளைச் சேர்க்கவும். livenessProbe (இது நேரலையில் உள்ளதா) மற்றும் ரெடினெஸ் ப்ரோப் (இது போக்குவரத்துக்கு தயாரா) ஆகியவை முக்கியமானவை.
- வள வரம்பை அமைக்கவும். கோரிக்கைகள்/வரம்புகள் இல்லாமல் ஒரு Pod முழு முனையையும் உட்கொள்ள முடியும்.
- `--ட்ரை-ரன்` மற்றும் `டிஃப்` மூலம் சரிபார்த்து, பிறகு விண்ணப்பிக்கவும். சோதனை பெயர்வெளியில் முதலில்.
பாதுகாப்பு: குபெர்னெட்ஸ்-குறிப்பிட்ட அபாயங்கள்
- ரகசியம் உண்மையில் ரகசியம் அல்ல - இது அடிப்படை64. Kubernetes Secret object base64 மதிப்புகளை குறியாக்குகிறது; இது குறியாக்கம் அல்ல, இது எளிதில் மறைகுறியாக்கப்படுகிறது. உண்மையான தனியுரிமைக்கு, etcd குறியாக்கம் மற்றும் வெளிப்புற வால்ட் (Vault, cloud இரகசிய மேலாளர்) தேவை. Git க்கு ஒருபோதும் இரகசிய வெளிப்பாடுகளை நேரடியாகச் செய்யாதீர்கள் (இதற்கு சீல் செய்யப்பட்ட இரகசியங்கள்/வெளிப்புற இரகசியங்கள் போன்ற தீர்வுகள் உள்ளன).
- வள வரம்பை அமைக்கவும். வரம்புகள் இல்லாத ஒரு Pod நினைவக கசிவு மூலம் முழு முனையையும் செயலிழக்கச் செய்யலாம்.
- குறைந்தபட்ச அதிகாரம் (RBAC). பங்கு அடிப்படையிலான அணுகல் கட்டுப்பாட்டுடன், ஒவ்வொரு சேவைக்கும்/பயனருக்கும் தேவையான அனுமதிகள் மட்டுமே உள்ளன. AI சில நேரங்களில் பெரிய கிளஸ்டர்-நிர்வாகத்தை வழங்குகிறது; இதை சுருக்கவும்.
- `சமீபத்திய` படக் குறிச்சொல்லைப் பயன்படுத்த வேண்டாம். எந்தப் பதிப்பு இயங்குகிறது என்பது உங்களுக்குத் தெரியாது, அதைத் திரும்பப் பெற முடியாது.
எச்சரிக்கை: kubectl நீக்குதல் அல்லது தவறான பயன்பாடு நேரடி வரிசைப்படுத்தலை அழிக்கக்கூடும். கட்டளைகளை இயக்கும் முன் நீங்கள் எந்த பெயர்வெளியில் இருக்கிறீர்கள் என்பதை (kubectl config current-context) சரிபார்க்கவும்; தற்செயலான வேலை உற்பத்தி சூழலில் ஒரு பொதுவான பேரழிவு ஆகும்.
ரா மேனிஃபெஸ்ட் எதிராக ஹெல்ம் அட்டவணை
அளவுகோல்
மூல YAML மேனிஃபெஸ்ட்
ஹெல்ம் விளக்கப்படம்
நிறுவல்
kubectl apply -f
ஹெல்ம் நிறுவல்
மல்டிமீடியா (dev/prod)
நகல்-ஒட்டு, பிழை வாய்ப்பு
ஒற்றை விளக்கப்படம், வெவ்வேறு மதிப்புகள்.yaml
பதிப்பு/பின்வாங்கல்
கையால்
ஹெல்ம் ரோல்பேக்குடன் எளிதானது
கற்றல் வளைவு
குறைந்த
நடுத்தர
எப்போது
சிறிய, ஒற்றை சூழல்
மல்டி மீடியா, மீண்டும் மீண்டும் சேவை
மூன்று சிறிய வழக்குகள்
வழக்கு 1 - செயலிழந்த சேவையின் ரகசியம். ஒரு பாட் தொடர்ந்து மறுதொடக்கம் செய்யப்படுகிறது (CrashLoopBackOff). குழு பதிவுகள் மற்றும் மேனிஃபெஸ்ட்டை AIக்கு வழங்கியது; AI ஆனது பாட் ஒருபோதும் "தயாராக" கருதப்படவில்லை என்று காட்டியது, ஏனெனில் தயார்நிலை ஆய்வு தவறான போர்ட்டைப் பார்த்தது. அவர்கள் துறைமுகத்தை சரிசெய்தனர், சேவை 10 நிமிடங்களில் நிலையானது. இந்த உறவை கைமுறையாக நிறுவ பல மணிநேரம் ஆகலாம்.
வழக்கு 2 - வரம்புகளை அமைக்காதது முடிச்சை உடைத்தது. ஒரு வரிசைப்படுத்தலில் வரம்புகள் இல்லை; நினைவகக் கசிவு பாட் முழுவதையும் உடைத்து, அண்டை சேவைகளையும் குறைத்தது. சம்பவத்திற்குப் பிறகு, "நியாயமான CPU/மெமரி கோரிக்கைகள் மற்றும் அனைத்து வரிசைப்படுத்தல்களுக்கும் வரம்புகளைச் சேர்" என்று AI ஐச் சொல்லச் செய்து, அதைத் தரமாக்கினர். ஒரு விடுபட்ட வரி பல மணிநேரம் வேலையில்லா நேரமாகும்.
வழக்கு 3 - பெரிய RBAC கைப்பற்றப்பட்டது. விசாரணையின் போது, AI ஆல் உருவாக்கப்பட்ட ஒரு சர்வீஸ் அக்கவுண்ட் மேனிஃபெஸ்ட் கிளஸ்டர்-நிர்வாகப் பாத்திரத்துடன் இணைக்கப்பட்டிருப்பது கண்டறியப்பட்டது - அதாவது சேவையானது முழு கிளஸ்டரையும் நிர்வகிக்க முடியும். குழு அவர்களின் பெயர்வெளியில் பாட்களை மட்டுமே வாசிப்பதற்கான அனுமதியைக் குறைத்தது. குறைந்தபட்ச சலுகையின் கொள்கை பாதுகாப்பு பாதிப்பை மூடியது.
நகலெடுக்கக்கூடிய நான்கு வார்ப்புருக்கள்
1) வரிசைப்படுத்தல் + சேவை உற்பத்தி:
Kubernetes க்கான வரிசைப்படுத்தல் மற்றும் சேவை அறிக்கையை எழுதவும். பயன்பாடு: [AD], படம்: [படம்: நிலையான பதிப்பு], போர்ட்: [X], பிரதி: [N]. விதிகள்:- CPU/நினைவகக் கோரிக்கைகள் மற்றும் வரம்புகளைச் சேர்க்கவும்.- livenessProbe மற்றும் தயார்நிலைப்பொருளை வரையறுக்கவும்.- ConfigMap இலிருந்து உள்ளமைவைப் படிக்கவும், இரகசியப் பொருளிலிருந்து இரகசியம்; மேனிஃபெஸ்டில் மதிப்புகளை உட்பொதிக்க வேண்டாம், ஒதுக்கிடங்களைப் பயன்படுத்தவும். - படக் குறிச்சொல் ": சமீபத்திய" ஐப் பயன்படுத்த வேண்டாம். விளக்கத்துடன் கொடுக்கவும்.
2) மேனிஃபெஸ்ட் பிழைத் தீர்வு:
தற்போதைய பாட் [CrashLoopBackOff / நிலுவையில் உள்ளது / ImagePullBackOff] நிலையில் உள்ளது. பின்வரும் மேனிஃபெஸ்ட் மற்றும் 'kubectl விவரிக்க' வெளியீட்டின் படி, சாத்தியமான மூல காரணங்களை நிகழ்தகவு வரிசையில் பட்டியலிட்டு, ஒவ்வொன்றிற்கும் சரிபார்க்க கட்டளையை வழங்கவும். மேனிஃபெஸ்ட்: [YAML] விவரியுங்கள்: [அவுட்புட்]
3) பாதுகாப்பு/ஒருமைப்பாடு சோதனை:
இந்த குபெர்னெட்டஸ் மேனிஃபெஸ்டைச் சரிபார்க்கவும்: ஆதார வரம்பு காணவில்லையா, சிக்கல் இல்லாததா, ஒரு :லேட்டஸ்ட் டேக் இருக்கிறதா, மிக அதிகமான RBAC/அனுமதி உள்ளதா, மேனிஃபெஸ்டில் ரகசியம் உட்பொதிக்கப்பட்டுள்ளதா? கண்டுபிடிப்புகளை முக்கியத்துவம் மற்றும் திருத்தத்துடன் எழுதவும். வெளிப்பாடு: [YAML]
4) ஹெல்ம் விளக்கப்படத்திற்கு மாற்றம்:
பின்வரும் மூல மேனிஃபெஸ்ட்ஸை மீண்டும் பயன்படுத்தக்கூடிய ஹெல்ம் விளக்கப்படமாக மாற்றவும்: எந்த மதிப்புகள் values.yaml (படம், பிரதி, ஆதாரம், சூழல்) க்கு செல்ல வேண்டும்? விளக்கப்பட அமைப்பு மற்றும் மாதிரி மதிப்புகளைக் காட்டு.yaml.Manifests: [YAML]
பலவீனமான வரியில் / வலுவான வரியில்
பலவீனமானது: "எனது விண்ணப்பத்திற்கு Kubernetes YAML ஐ எழுது."
முடிவு: ஆய்வு இல்லாத, வரம்பு இல்லாத வரிசைப்படுத்தல்: சமீபத்திய குறிச்சொல், இரகசிய சமவெளியை உட்பொதித்தல்; தயாரிப்பில் பாதுகாப்பற்ற மற்றும் உடையக்கூடியது.
வலிமையானது: "Kubernetes வரிசைப்படுத்தல் + சேவையை எழுதவும். பட myapp: 1.4.2, 3 பிரதிகள், 8080 போர்ட்கள். CPU 100m-500m, நினைவகம் 128Mi-512Mi கோரிக்கைகள்/வரம்புகளைச் சேர்க்கவும். /healthz க்கு லைவ்னெஸ் ப்ரோப் போடவும், அதைப் படிக்கவும், அதைப் படிக்கவும். விளக்கத்துடன் கொடுங்கள்."
வேறுபாடு: இரண்டாவது உடனடி பதிப்பு அளவு, வள வரம்புகள், சுகாதார சோதனைகள் மற்றும் இரகசிய விதி ஆகியவற்றை வழங்குகிறது; வெளியீடு உற்பத்திக்கு அருகில் உள்ளது மற்றும் பாதுகாப்பானது.
பொதுவான தவறுகள்
- வள வரம்புகளை அமைக்கவில்லை. ஒரு பாட் முழு முனையையும் உட்கொள்ள முடியும்.
- சுகாதார சோதனை (ஆய்வு) சேர்க்கவில்லை. குபெர்னெட்ஸால் செயலிழந்த/தயாராக இல்லாத பாட்களைக் கண்டறிய முடியவில்லை.
- `:சமீபத்திய` குறிச்சொல். எந்த பதிப்பு இயங்குகிறது என்பது தெளிவாகத் தெரியவில்லை, அதைத் திரும்பப் பெற முடியாது.
- ரகசியத்தை நேரடியாக Git-க்கு ஒப்படைத்தல். Base64 என்பது குறியாக்கம் அல்ல; எல்லோரும் அதை தீர்க்கிறார்கள்.
- தவறான சூழல்/பெயர்வெளியில் கட்டளைகளை இயக்குதல். தயாரிப்பில் செயலிழக்க மிகவும் பொதுவான வழி.
- `--ட்ரை-ரன்`/`diff` ஐத் தவிர்க்கிறது. செயல்படுத்துவதற்கு முன் என்ன நடக்கும் என்று பார்க்கவில்லை.
சுருக்கமாக
குபெர்னெட்டஸ் ஒரு சக்திவாய்ந்த ஆனால் சிக்கலான ஆர்கெஸ்ட்ரேட்டராகும், இது ஒரு கொத்து முழுவதும் கொள்கலன்களை தானாக வரிசைப்படுத்துகிறது, அளவிடுகிறது மற்றும் மேம்படுத்துகிறது; எல்லாமே வெளிப்படையான YAMLகளால் வரையறுக்கப்படுகிறது, இது ஹெல்ம் வார்ப்புருவாகும். AI விரைவாக வரிசைப்படுத்தல்/சேவை மேனிஃபெஸ்டுகள் மற்றும் ஹெல்ம் விளக்கப்படங்களை உருவாக்குகிறது, மர்மமான பிழைகளைத் தீர்க்கிறது - ஆனால் நீங்கள் ஆதார வரம்பு, சுகாதார சோதனை, மாறாத படக் குறிச்சொல், குறுகிய RBAC மற்றும் ரகசிய பாதுகாப்பு விதிகளை வெளிப்படையாகக் கேட்க வேண்டும். --டிரை-ரன், டிஃப் மற்றும் சரியான சூழல் சரிபார்ப்பு ஆகியவை தயாரிப்பு செயலிழப்பைத் தடுக்கும் பழக்கம்.
விண்ணப்ப பணி
"பணிநிறுத்தம் + சேவை உருவாக்கம்" டெம்ப்ளேட்டுடன் மாதிரி பயன்பாட்டிற்கான மேனிஃபெஸ்ட்டை AI உருவாக்க வேண்டும். பிறகு: (1) ஆதார வரம்பு, ஆய்வு, : சமீபத்திய மற்றும் ரகசியம் ஆகியவற்றை "பாதுகாப்பு/சுகாதார சரிபார்ப்பு" டெம்ப்ளேட்டுடன் சரிபார்க்கவும்; (2) kubectl apply --dry-run=சர்வரை ஒரு சோதனைக் கிளஸ்டர்/மினிக்யூப்பில் முடிந்தால் இயக்கி, வெளியீட்டைப் படிக்கவும்; (3) மிக முக்கியமான இரண்டு பாதுகாப்பு/உறுதியான பொருட்களை நீங்கள் காணவில்லை என்பதைக் கவனியுங்கள்.
சரிபார்ப்பு பட்டியல்
- [ ] எனது கோரிக்கையில் படத்தின் பதிப்பு, பிரதிகளின் எண்ணிக்கை, போர்ட் மற்றும் ஆதார வரம்புகளைச் சேர்த்துள்ளேன்.
- [ ] நான் மெனிஃபெஸ்ட்டில் உயிரோட்டத்தையும் தயார்நிலை ஆய்வையும் சேர்த்தேன்.
- [ ] பட குறி சரி செய்யப்பட்டது; நான் பயன்படுத்தவில்லை: சமீபத்திய.
- மேனிஃபெஸ்ட்டில் ரகசியம் உட்பொதிக்கப்படவில்லை; நான் ரகசிய பொருள்/வெளிப்புற பெட்டகத்தைப் பயன்படுத்தினேன்.
- [ ] நான் RBAC/அனுமதிகளை குறைந்தபட்ச அனுமதிகளாகக் குறைத்துள்ளேன்.
- [ ] விண்ணப்பிக்கும் முன், நான் சரியான சூழலில் இருப்பதையும் --ட்ரை-ரன்/டிஃப் வெளியீடுகளையும் சரிபார்த்தேன்.