குபெர்னெட்ஸ் 1.14: முக்கிய கண்டுபிடிப்புகளின் கண்ணோட்டம்

குபெர்னெட்ஸ் 1.14: முக்கிய கண்டுபிடிப்புகளின் கண்ணோட்டம்

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

இந்த பொருளைத் தயாரிக்கப் பயன்படுத்தப்படும் தகவல் பெறப்பட்டது குபெர்னெட்ஸ் மேம்பாடுகள் கண்காணிப்பு அட்டவணைகள், மாற்றம்-1.14 மற்றும் தொடர்புடைய சிக்கல்கள், கோரிக்கைகளை இழுத்தல், குபெர்னெட்ஸ் மேம்படுத்தல் முன்மொழிவுகள் (KEP).

SIG கிளஸ்டர்-வாழ்க்கை சுழற்சியில் இருந்து ஒரு முக்கியமான அறிமுகத்துடன் ஆரம்பிக்கலாம்: டைனமிக் ஃபெயில்ஓவர் கிளஸ்டர்கள் குபெர்னெட்டஸ் (அல்லது இன்னும் துல்லியமாக, சுய-ஹோஸ்ட் செய்யப்பட்ட HA வரிசைப்படுத்தல்கள்) இப்போது உருவாக்க முடியும் பழக்கமான (ஒற்றை முனை கிளஸ்டர்களின் சூழலில்) கட்டளைகளைப் பயன்படுத்துதல் kubeadm (init и join) சுருக்கமாக, இதற்காக:

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

குபெர்னெட்ஸ் 1.14: முக்கிய கண்டுபிடிப்புகளின் கண்ணோட்டம்
kubeadm கொண்டு உருவாக்கப்பட்ட குபெர்னெட்டஸ் HA கிளஸ்டரின் கட்டிடக்கலை

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

ஏபிஐ

அணி apply மற்றும் பொதுவாக பேசும் அறிவிப்பு பொருள் மேலாண்மை தேர்ச்சி பெற்றார் из kubectl apiserver இல். டெவலப்பர்களே தங்கள் முடிவைச் சுருக்கமாக விளக்குகிறார்கள் kubectl apply - குபெர்னெட்ஸில் உள்ளமைவுகளுடன் பணிபுரிவதில் ஒரு அடிப்படை பகுதி, இருப்பினும், "இது பிழைகள் நிறைந்தது மற்றும் சரிசெய்வது கடினம்", எனவே இந்த செயல்பாட்டை இயல்பு நிலைக்கு கொண்டு வந்து கட்டுப்பாட்டு விமானத்திற்கு மாற்ற வேண்டும். இன்று இருக்கும் பிரச்சனைகளுக்கு எளிய மற்றும் தெளிவான உதாரணங்கள்:

குபெர்னெட்ஸ் 1.14: முக்கிய கண்டுபிடிப்புகளின் கண்ணோட்டம்

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

ஆல்பா பதிப்பில் கிடைக்கிறது வாய்ப்பு OpenAPI v3 திட்டத்தைப் பயன்படுத்துகிறது CustomResources க்கான OpenAPI ஆவணங்களை உருவாக்குதல் மற்றும் வெளியிடுதல் (CR) சரிபார்க்க (சர்வர்-பக்கம்) K8s பயனர் வரையறுக்கப்பட்ட ஆதாரங்கள் (CustomResourceDefinition, CRD). CRDக்கான OpenAPI ஐ வெளியிடுவது வாடிக்கையாளர்களை அனுமதிக்கிறது (எ.கா. kubectl) உங்கள் பக்கத்தில் சரிபார்ப்பைச் செய்யுங்கள் (உள்ளே kubectl create и kubectl apply) மற்றும் திட்டத்தின் படி ஆவணங்களை வழங்கவும் (kubectl explain) விவரங்கள் - இல் CAP.

முன்பே இருக்கும் பதிவுகள் இப்போது திறக்கப்படுகின்றன கொடியுடன் O_APPEND (ஆனால் இல்லை O_TRUNC) சில சூழ்நிலைகளில் பதிவுகள் இழப்பதைத் தவிர்க்கவும் மற்றும் சுழற்சிக்கான வெளிப்புற பயன்பாடுகளுடன் பதிவுகளை துண்டிக்கும் வசதிக்காகவும்.

குபெர்னெட்டஸ் ஏபிஐயின் சூழலில், அதை கவனிக்கலாம் PodSandbox и PodSandboxStatus சேர்க்கப்பட்டது துறையில் runtime_handler பற்றிய தகவல்களை பதிவு செய்ய RuntimeClass பாட் இல் (அதைப் பற்றி மேலும் படிக்கவும் குபெர்னெட்ஸ் 1.12 வெளியீடு, இந்த வகுப்பு ஆல்பா பதிப்பாகத் தோன்றியது), மற்றும் அட்மிஷன் வெப்ஹூக்ஸில் செயல்படுத்தப்பட்டது எந்த பதிப்புகளை தீர்மானிக்கும் திறன் AdmissionReview அவர்கள் ஆதரிக்கிறார்கள். இறுதியாக, சேர்க்கை வெப்ஹூக்ஸ் விதிகள் இப்போது மட்டுப்படுத்தப்படலாம் பெயர்வெளிகள் மற்றும் கிளஸ்டர் கட்டமைப்பின் மூலம் அவற்றின் பயன்பாட்டின் அளவு.

சேமிப்பு

PersistentLocalVolumes, இது வெளியானதிலிருந்து பீட்டா நிலையைக் கொண்டிருந்தது K8s 1.10, அறிவித்தார் நிலையான (GA): இந்த அம்ச வாயில் இனி முடக்கப்படாது மற்றும் குபெர்னெட்ஸ் 1.17 இல் அகற்றப்படும்.

திறன் எனப்படும் சூழல் மாறிகளைப் பயன்படுத்துதல் கீழ்நோக்கிய API (எடுத்துக்காட்டாக, பாட் பெயர்) என ஏற்றப்பட்ட கோப்பகங்களின் பெயர்களுக்கு subPath, உருவாக்கப்பட்டது - ஒரு புதிய துறையில் வடிவத்தில் subPathExpr, இது இப்போது விரும்பிய கோப்பகத்தின் பெயரைத் தீர்மானிக்கப் பயன்படுகிறது. இந்த அம்சம் ஆரம்பத்தில் குபெர்னெட்டஸ் 1.11 இல் தோன்றியது, ஆனால் 1.14 க்கு இது ஆல்பா பதிப்பு நிலையில் இருந்தது.

முந்தைய குபெர்னெட்ஸ் வெளியீட்டைப் போலவே, தீவிரமாக வளரும் CSI (கன்டெய்னர் ஸ்டோரேஜ் இன்டர்ஃபேஸ்)க்கு பல குறிப்பிடத்தக்க மாற்றங்கள் அறிமுகப்படுத்தப்பட்டுள்ளன:

சிஎஸ்ஐ

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

ஆல்பா பதிப்பில் CSIக்கான மற்றொரு அம்சம் - வாய்ப்பு பாட் விவரக்குறிப்பில் உள்ள CSI தொகுதிகளுக்கு நேரடியாக (அதாவது PV/PVC ஐப் பயன்படுத்தாமல்) பார்க்கவும். இது பிரத்தியேகமாக தொலை தரவு சேமிப்பகமாக CSI ஐப் பயன்படுத்துவதற்கான தடையை நீக்குகிறது, அவர்களுக்கான உலகக் கதவுகளைத் திறக்கிறது உள்ளூர் எபிமரல் தொகுதிகள். உபயோகத்திற்காக (ஆவணத்தில் இருந்து உதாரணம்) செயல்படுத்தப்பட வேண்டும் CSIInlineVolume அம்ச வாயில்.

இறுதிப் பயனர்களுக்கு (கணினி நிர்வாகிகள்) அவ்வளவாகப் புலப்படாத, CSI தொடர்பான குபெர்னெட்டஸின் “உள்ளகங்களில்” முன்னேற்றம் ஏற்பட்டுள்ளது... தற்போது, ​​டெவலப்பர்கள் ஒவ்வொரு சேமிப்பக செருகுநிரலின் இரண்டு பதிப்புகளை ஆதரிக்க வேண்டிய கட்டாயத்தில் உள்ளனர்: ஒன்று - “ பழைய வழி”, K8s கோட்பேஸ் உள்ளே (இன்-ட்ரீ), மற்றும் இரண்டாவது - புதிய CSI இன் ஒரு பகுதியாக (அதைப் பற்றி மேலும் வாசிக்க, எடுத்துக்காட்டாக, in இங்கே). இது புரிந்துகொள்ளக்கூடிய சிரமங்களை ஏற்படுத்துகிறது, சிஎஸ்ஐ தன்னை நிலைநிறுத்துவதால் கவனிக்கப்பட வேண்டும். இதன் காரணமாக உள்ளக (இன்-ட்ரீ) செருகுநிரல்களின் API ஐ வெறுமனே நிராகரிக்க முடியாது தொடர்புடைய Kubernetes கொள்கை.

இவை அனைத்தும் ஆல்பா பதிப்பை எட்டியது இடம்பெயர்வு செயல்முறை உள் சொருகி குறியீடு, இன்-ட்ரீயாக, CSI செருகுநிரல்களில் செயல்படுத்தப்பட்டது, இதற்கு நன்றி டெவலப்பர்களின் கவலைகள் தங்கள் செருகுநிரல்களின் ஒரு பதிப்பை ஆதரிப்பதாகக் குறைக்கப்படும், மேலும் பழைய APIகளுடன் இணக்கத்தன்மை இருக்கும், மேலும் அவை வழக்கமான சூழ்நிலையில் வழக்கற்றுப் போய்விட்டதாக அறிவிக்கப்படலாம். Kubernetes இன் அடுத்த வெளியீட்டில் (1.15) அனைத்து கிளவுட் வழங்குநர் செருகுநிரல்களும் நகர்த்தப்படும் என்று எதிர்பார்க்கப்படுகிறது, செயல்படுத்தல் பீட்டா நிலையைப் பெறும் மற்றும் இயல்புநிலையாக K8s நிறுவல்களில் செயல்படுத்தப்படும். விவரங்களுக்கு, பார்க்கவும் வடிவமைப்பு முன்மொழிவு. இந்த இடம்பெயர்வும் விளைந்தது மறுப்பு குறிப்பிட்ட கிளவுட் வழங்குநர்களால் வரையறுக்கப்பட்ட தொகுதி வரம்புகளிலிருந்து (AWS, Azure, GCE, Cinder).

கூடுதலாக, CSI உடன் தொகுதி சாதனங்களுக்கான ஆதரவு (CSIBlockVolume) மாற்றப்பட்டது பீட்டா பதிப்பிற்கு.

முனைகள்/குபெலெட்

ஆல்பா பதிப்பு வழங்கப்பட்டது புதிய இறுதிப்புள்ளி குபெலெட்டில், வடிவமைக்கப்பட்டது முக்கிய ஆதாரங்களில் அளவீடுகளை திரும்பப் பெறுதல். பொதுவாக, குபெலெட் முன்பு cAdvisor இலிருந்து கொள்கலன் பயன்பாடு குறித்த புள்ளிவிவரங்களைப் பெற்றிருந்தால், இப்போது இந்தத் தரவு CRI (கன்டெய்னர் இயக்க நேர இடைமுகம்) வழியாக கொள்கலன் இயக்க நேர சூழலில் இருந்து வருகிறது, ஆனால் Docker இன் பழைய பதிப்புகளுடன் பணிபுரியும் இணக்கத்தன்மையும் பாதுகாக்கப்படுகிறது. முன்பு, குபெலெட்டில் சேகரிக்கப்பட்ட புள்ளிவிவரங்கள் REST API வழியாக அனுப்பப்பட்டன, ஆனால் இப்போது ஒரு இறுதிப் புள்ளி அமைந்துள்ளது /metrics/resource/v1alpha1. டெவலப்பர்களின் நீண்ட கால உத்தி இருக்கிறது குபெலெட் வழங்கிய அளவீடுகளின் தொகுப்பைக் குறைப்பதாகும். மூலம், இந்த அளவீடுகள் தங்களை இப்போது அவர்கள் அழைக்கிறார்கள் "கோர் அளவீடுகள்" அல்ல, ஆனால் "வள அளவீடுகள்", மேலும் அவை "சிபியு மற்றும் நினைவகம் போன்ற முதல்-வகுப்பு ஆதாரங்கள்" என்று விவரிக்கப்படுகின்றன.

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

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

குபெர்னெட்ஸ் 1.14: முக்கிய கண்டுபிடிப்புகளின் கண்ணோட்டம்
அளவீடுகளுக்கான புதிய குபெலெட் எண்ட்பாயிண்டில் gRPC மற்றும் Prometheus வடிவங்களைப் பயன்படுத்துவதற்கான ஒப்பீட்டு செயல்திறன் சோதனைகளில் ஒன்று. மேலும் வரைபடங்கள் மற்றும் பிற விவரங்களைக் காணலாம் CAP.

மற்ற மாற்றங்களில்:

  • குபேலெட் இப்போது (ஒரு முறை) நிறுத்த முயற்சிக்கிறது மறுதொடக்கம் மற்றும் செயல்பாடுகளை நீக்குவதற்கு முன் தெரியாத நிலையில் உள்ள கொள்கலன்கள்.
  • பயன்படுத்தும் போது PodPresets இப்போது init கொள்கலனுக்கு சேர்க்கப்பட்டுள்ளது வழக்கமான கொள்கலனுக்கான அதே தகவல்.
  • குபேலேட் பயன்படுத்த ஆரம்பித்தது usageNanoCores சிஆர்ஐ புள்ளிவிவரங்கள் வழங்குநரிடமிருந்து மற்றும் விண்டோஸில் உள்ள முனைகள் மற்றும் கொள்கலன்களுக்கு சேர்க்கப்பட்டது பிணைய புள்ளிவிவரங்கள்.
  • இயக்க முறைமை மற்றும் கட்டிடக்கலை தகவல் இப்போது லேபிள்களில் பதிவு செய்யப்பட்டுள்ளது kubernetes.io/os и kubernetes.io/arch முனை பொருள்கள் (பீட்டாவிலிருந்து GA க்கு மாற்றப்பட்டது).
  • ஒரு பாட் உள்ள கொள்கலன்களுக்கான குறிப்பிட்ட கணினி பயனர் குழுவைக் குறிப்பிடும் திறன் (RunAsGroup, தோன்றினார் K8s 1.11) மேம்படுத்தபட்ட பீட்டாவிற்கு முன் (இயல்புநிலையாக இயக்கப்பட்டது).
  • du மற்றும் cAdvisor இல் பயன்படுத்தப்பட்டது, மாற்றப்பட்டது கோ செயல்படுத்தல்.

CLI ஆனது

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

குபெர்னெட்ஸ் 1.14: முக்கிய கண்டுபிடிப்புகளின் கண்ணோட்டம்
எளிமையான கோப்பு பயன்பாட்டின் எடுத்துக்காட்டு தனிப்பயனாக்கம் (குஸ்டமைஸின் மிகவும் சிக்கலான பயன்பாடு உள்ளே சாத்தியமாகும் ஓவர்லேஸ்)

கூடுதலாக:

  • சேர்க்கப்பட்டது புதிய அணி kubectl create cronjob, யாருடைய பெயர் தனக்குத்தானே பேசுகிறது.
  • В kubectl logs இப்பொழுது உன்னால் முடியும் இணைக்க கொடிகள் -f (--follow ஸ்ட்ரீமிங் பதிவுகளுக்கு) மற்றும் -l (--selector லேபிள் வினவலுக்கு).
  • kubectl கற்பித்தார் வைல்டு கார்டு மூலம் தேர்ந்தெடுக்கப்பட்ட கோப்புகளை நகலெடுக்கவும்.
  • அணிக்கு kubectl wait சேர்க்கப்பட்டது கொடி --all குறிப்பிட்ட வள வகையின் பெயர்வெளியில் உள்ள அனைத்து வளங்களையும் தேர்ந்தெடுக்க.

மற்ற

பின்வரும் திறன்கள் நிலையான (GA) நிலையைப் பெற்றுள்ளன:

  • ReadinessGate, நெற்றுத் தயார்நிலையில் கணக்கில் எடுத்துக் கொள்ளப்பட்ட கூடுதல் நிபந்தனைகளை வரையறுக்க நெற்று விவரக்குறிப்பில் பயன்படுத்தப்படுகிறது;
  • பெரிய பக்கங்களுக்கான ஆதரவு (அம்ச வாயில் எனப்படும் HugePages);
  • CustomPodDNS;
  • முன்னுரிமை வகுப்பு API Pod முன்னுரிமை & முன்தடுப்பு.

குபெர்னெட்ஸ் 1.14 இல் அறிமுகப்படுத்தப்பட்ட பிற மாற்றங்கள்:

  • இயல்புநிலை RBAC கொள்கை இனி API அணுகலை அனுமதிக்காது discovery и access-review அங்கீகாரம் இல்லாத பயனர்கள் (அங்கீகரிக்கப்படாத).
  • அதிகாரப்பூர்வ CoreDNS ஆதரவு உறுதி செய்யப்பட்டது லினக்ஸ் மட்டும், எனவே அதை (CoreDNS) ஒரு கிளஸ்டரில் வரிசைப்படுத்த kubeadm ஐப் பயன்படுத்தும் போது, ​​கணுக்கள் Linux இல் மட்டுமே இயங்க வேண்டும் (இந்த வரம்புக்கு nodeSelectors பயன்படுத்தப்படும்).
  • இயல்புநிலை CoreDNS உள்ளமைவு இப்போது உள்ளது பயன்கள் முன்னோக்கி சொருகி ப்ராக்ஸிக்கு பதிலாக. மேலும், CoreDNS இல் சேர்க்கப்பட்டது ரெடினெஸ் ப்ரோப், இது பொருத்தமான (சேவைக்குத் தயாராக இல்லை) காய்களில் சுமை சமநிலையைத் தடுக்கிறது.
  • குபேத்மில், கட்டங்களில் init அல்லது upload-certs, சாத்தியம் ஆனது புதிய கட்டுப்பாட்டு விமானத்தை kubeadm-certs ரகசியத்துடன் இணைக்க தேவையான சான்றிதழ்களை ஏற்றவும் (கொடியைப் பயன்படுத்தவும் --experimental-upload-certs).
  • விண்டோஸ் நிறுவல்களுக்கு ஆல்பா பதிப்பு தோன்றியது ஆதரவு gMSA (குழு நிர்வகிக்கப்பட்ட சேவை கணக்கு) - ஆக்டிவ் டைரக்டரியில் உள்ள சிறப்புக் கணக்குகள், கொள்கலன்களாலும் பயன்படுத்தப்படலாம்.
  • ஜி.சி.இ. செயல்படுத்தப்பட்டது etcd மற்றும் kube-apiserver இடையே mTLS குறியாக்கம்.
  • பயன்படுத்தப்பட்ட/சார்ந்த மென்பொருளில் புதுப்பிப்புகள்: Go 1.12.1, CSI 1.1, CoreDNS 1.3.1, kubeadm இல் Docker 18.09 ஆதரவு மற்றும் குறைந்தபட்ச ஆதரிக்கப்படும் Docker API பதிப்பு இப்போது 1.26.

சோசலிஸ்ட் கட்சி

எங்கள் வலைப்பதிவிலும் படிக்கவும்:

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

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