இது எனது புதுப்பிப்பு
முதலில், நான் சிலியம் குழுவிற்கு நன்றி தெரிவிக்க விரும்புகிறேன்: அளவீடுகள் கண்காணிப்பு ஸ்கிரிப்ட்களைச் சரிபார்த்து சரிசெய்ய தோழர்கள் எனக்கு உதவினார்கள்.
நவம்பர் 2018 முதல் என்ன மாறிவிட்டது
அதிலிருந்து மாற்றப்பட்டவை இதோ (நீங்கள் ஆர்வமாக இருந்தால்):
Flannel வேகமான மற்றும் எளிமையான CNI இடைமுகமாக உள்ளது, ஆனால் நெட்வொர்க் கொள்கைகள் மற்றும் குறியாக்கத்தை இன்னும் ஆதரிக்கவில்லை.
Romana இனி ஆதரிக்கப்படாது, எனவே அதை அளவுகோலில் இருந்து அகற்றியுள்ளோம்.
வீவ்நெட் இப்போது நுழைவு மற்றும் வெளியேற்றத்திற்கான நெட்வொர்க் கொள்கைகளை ஆதரிக்கிறது! ஆனால் உற்பத்தி குறைந்துள்ளது.
காலிகோவில், சிறந்த செயல்திறனுக்காக நீங்கள் இன்னும் அதிகபட்ச பாக்கெட் அளவை (MTU) கைமுறையாக உள்ளமைக்க வேண்டும். CNI ஐ நிறுவுவதற்கு காலிகோ இரண்டு விருப்பங்களை வழங்குகிறது, எனவே நீங்கள் ஒரு தனி ETCD களஞ்சியம் இல்லாமல் செய்யலாம்:
- குபெர்னெட்டஸ் API இல் நிலையை ஒரு தரவு சேமிப்பாக சேமித்தல் (கிளஸ்டர் அளவு <50 முனைகள்);
- K8S API (கிளஸ்டர் அளவு > 50 கணுக்கள்) சுமையைக் குறைக்க டைபா ப்ராக்ஸியுடன் கூடிய டேட்டா ஸ்டோராக Kubernetes API இல் நிலையைச் சேமிக்கிறது.
காலிகோ ஆதரவு அறிவித்தார்
Cilium இப்போது குறியாக்கத்தை ஆதரிக்கிறது! Cilium IPSec சுரங்கங்களுடன் குறியாக்கத்தை வழங்குகிறது மற்றும் மறைகுறியாக்கப்பட்ட WeaveNet நெட்வொர்க்கிற்கு மாற்றாக வழங்குகிறது. ஆனால் வீவ்நெட் குறியாக்கம் இயக்கப்பட்ட Cilium ஐ விட வேகமானது.
உள்ளமைக்கப்பட்ட ETCD ஆபரேட்டருக்கு நன்றி, Cilium இப்போது பயன்படுத்த எளிதானது.
Cilium குழு நினைவக நுகர்வு மற்றும் CPU செலவுகளை குறைப்பதன் மூலம் அதன் CNI இலிருந்து சிறிது எடையை குறைக்க முயற்சித்தது, ஆனால் அதன் போட்டியாளர்கள் இன்னும் இலகுவானவர்கள்.
பெஞ்ச்மார்க் சூழல்
பெஞ்ச்மார்க் மூன்று மெய்நிகராக்கப்படாத சூப்பர் மைக்ரோ சர்வர்களில் 10 ஜிபி சூப்பர்மிக்ரோ சுவிட்ச் மூலம் இயக்கப்படுகிறது. சேவையகங்கள் செயலற்ற DAC SFP+ கேபிள்கள் வழியாக சுவிட்ச் நேரடியாக இணைக்கப்பட்டு ஜம்போ பிரேம்களுடன் (MTU 9000) அதே VLAN இல் கட்டமைக்கப்படுகின்றன.
டோக்கர் 1.14.0 உடன் Ubuntu 18.04 LTS இல் Kubernetes 18.09.2 நிறுவப்பட்டது (இந்த வெளியீட்டில் உள்ள இயல்புநிலை Docker பதிப்பு).
மறுஉற்பத்தியை மேம்படுத்த, நாங்கள் எப்போதும் முதன்மையை முதல் முனையில் உள்ளமைக்க முடிவு செய்தோம், தரவரிசையின் சர்வர் பகுதியை இரண்டாவது சர்வரிலும், கிளையன்ட் பகுதியை மூன்றாவது இடத்திலும் வைக்க முடிவு செய்தோம். இதைச் செய்ய, Kubernetes வரிசைப்படுத்தல்களில் NodeSelector ஐப் பயன்படுத்துகிறோம்.
முக்கிய முடிவுகளை பின்வரும் அளவில் விவரிப்போம்:
ஒரு அளவுகோலுக்கு CNI ஐத் தேர்ந்தெடுப்பது
பிரிவில் உள்ள பட்டியலிலிருந்து CNI க்கு மட்டுமே இது ஒரு அளவுகோலாகும்
பின்வரும் CNIகளை ஒப்பிடுவோம்:
- காலிகோ v3.6
- கால்வாய் v3.6 (நெட்வொர்க்கிங்கிற்கான Flannel + ஒரு ஃபயர்வாலாக காலிகோ)
- சிலியம் 1.4.2
- ஃபிளானல் 0.11.0
- குபே-திசைவி 0.2.5
- வீவ்நெட் 2.5.1
நிறுவல்
CNI ஐ நிறுவுவது எவ்வளவு எளிதாக இருக்கிறதோ, அவ்வளவு சிறப்பாக நமது முதல் அபிப்ராயம் இருக்கும். பெஞ்ச்மார்க்கில் இருந்து அனைத்து CNIகளும் நிறுவ மிகவும் எளிதானது (ஒன்று அல்லது இரண்டு கட்டளைகளுடன்).
நாங்கள் கூறியது போல், சர்வர்கள் மற்றும் சுவிட்ச் ஆகியவை ஜம்போ பிரேம்கள் இயக்கப்பட்ட நிலையில் கட்டமைக்கப்பட்டுள்ளன (MTU ஐ 9000 ஆக அமைத்துள்ளோம்). அடாப்டர்களின் உள்ளமைவின் அடிப்படையில் MTU ஐ CNI தானாகவே தீர்மானித்தால் நாங்கள் மகிழ்ச்சியடைவோம். இருப்பினும், Cilium மற்றும் Flannel மட்டுமே இதை நிர்வகித்தார்கள். மீதமுள்ள CNIகள் GitHub இல் தானியங்கி MTU கண்டுபிடிப்பைச் சேர்ப்பதற்கான கோரிக்கைகளைக் கொண்டுள்ளன, ஆனால் காலிகோ, கால்வாய் மற்றும் Kube-router க்கான ConfigMap ஐ மாற்றுவதன் மூலம் அல்லது WeaveNet க்கான சூழல் மாறியை அனுப்புவதன் மூலம் அதை கைமுறையாக உள்ளமைப்போம்.
தவறான MTU இல் என்ன பிரச்சனை? இயல்புநிலை MTU மற்றும் ஜம்போ பிரேம்கள் இயக்கப்பட்ட WeaveNet இடையே உள்ள வித்தியாசத்தை இந்த வரைபடம் காட்டுகிறது:
MTU செயல்திறனை எவ்வாறு பாதிக்கிறது?
MTU செயல்திறனுக்கு எவ்வளவு முக்கியமானது என்பதைப் பார்த்தோம், இப்போது நமது CNIகள் அதை எவ்வாறு தானாகவே தீர்மானிக்கின்றன என்பதைப் பார்ப்போம்:
CNI தானாகவே MTU ஐக் கண்டறியும்
உகந்த செயல்திறனுக்காக காலிகோ, கால்வாய், குபே-ரூட்டர் மற்றும் வீவ்நெட் ஆகியவற்றிற்கான MTU ஐ நீங்கள் கட்டமைக்க வேண்டும் என்பதை வரைபடம் காட்டுகிறது. Cilium மற்றும் Flannel எந்த அமைப்பும் இல்லாமல் MTU ஐ சரியாக தீர்மானிக்க முடிந்தது.
பாதுகாப்பு
CNI பாதுகாப்பை இரண்டு அம்சங்களில் ஒப்பிடுவோம்: கடத்தப்பட்ட தரவை குறியாக்கம் செய்யும் திறன் மற்றும் குபெர்னெட்ஸ் நெட்வொர்க் கொள்கைகளை செயல்படுத்துதல் (உண்மையான சோதனைகள், ஆவணங்கள் அல்ல).
இரண்டு CNIகள் மட்டுமே தரவை குறியாக்கம் செய்கின்றன: Cilium மற்றும் WeaveNet. குறியாக்கம் வீவ்நெட் குறியாக்க கடவுச்சொல்லை CNI சூழல் மாறியாக அமைப்பதன் மூலம் இயக்கப்பட்டது. IN
நெட்வொர்க் கொள்கையை செயல்படுத்துவதைப் பொறுத்தவரை, அவர்கள் வெற்றி பெற்றுள்ளனர் காலிகோ, கால்வாய், சிலியம் மற்றும் வீவ்நெட், இதில் நீங்கள் Ingress மற்றும் Egress விதிகளை உள்ளமைக்கலாம். க்கு குபே-திசைவி நுழைவதற்கு மட்டுமே விதிகள் உள்ளன, மற்றும் flannel நெட்வொர்க் கொள்கைகள் எதுவும் இல்லை.
ஒட்டுமொத்த முடிவுகள் இங்கே:
பாதுகாப்பு செயல்திறன் பெஞ்ச்மார்க் முடிவுகள்
உற்பத்தித்
இந்த அளவுகோல் ஒவ்வொரு சோதனையிலும் குறைந்தது மூன்று ரன்களுக்கு சராசரி செயல்திறனைக் காட்டுகிறது. TCP மற்றும் UDP (iperf3 ஐப் பயன்படுத்துதல்), HTTP (Nginx மற்றும் curl உடன்) அல்லது FTP (vsftpd மற்றும் curl உடன்) போன்ற உண்மையான பயன்பாடுகள் மற்றும் இறுதியாக SCP அடிப்படையிலான குறியாக்கத்தைப் பயன்படுத்தி (கிளையன்ட் மற்றும் சர்வர் OpenSSH ஐப் பயன்படுத்தி) பயன்பாட்டின் செயல்திறனை நாங்கள் சோதிக்கிறோம்.
அனைத்து சோதனைகளுக்கும், CNI செயல்திறனை நேட்டிவ் நெட்வொர்க் செயல்திறனுடன் ஒப்பிட்டுப் பார்க்க, வெற்று உலோக அளவுகோலை (பச்சைக் கோடு) செய்தோம். இங்கே நாம் அதே அளவைப் பயன்படுத்துகிறோம், ஆனால் நிறத்தில்:
- மஞ்சள் = மிகவும் நல்லது
- ஆரஞ்சு = நல்லது
- நீலம் = அதனால்
- சிவப்பு = கெட்டது
நாங்கள் தவறாக உள்ளமைக்கப்பட்ட CNI களை எடுக்க மாட்டோம் மற்றும் சரியான MTU உடன் CNIகளுக்கான முடிவுகளை மட்டுமே காண்பிப்போம். (குறிப்பு: நீங்கள் குறியாக்கத்தை இயக்கினால், Cilium MTU ஐ சரியாகக் கணக்கிடாது, எனவே பதிப்பு 8900 இல் MTU ஐ கைமுறையாக 1.4 ஆகக் குறைக்க வேண்டும். அடுத்த பதிப்பு, 1.5, இதை தானாகவே செய்யும்.)
முடிவுகள் இதோ:
அனைத்து சிஎன்ஐகளும் டிசிபி பெஞ்ச்மார்க்கில் சிறப்பாக செயல்பட்டன. குறியாக்கத்துடன் கூடிய CNI மிகவும் பின்தங்கியுள்ளது, ஏனெனில் குறியாக்கம் விலை உயர்ந்தது.
இங்கேயும், அனைத்து CNI-களும் சிறப்பாகச் செயல்படுகின்றன. குறியாக்கத்துடன் கூடிய CNI கிட்டத்தட்ட அதே முடிவைக் காட்டியது. சிலியம் போட்டியை விட சற்று பின்தங்கி உள்ளது, ஆனால் அது வெறும் உலோகத்தில் 2,3% மட்டுமே, எனவே இது ஒரு மோசமான முடிவு அல்ல. Cilium மற்றும் Flannel மட்டுமே MTU ஐத் தாங்களே சரியாகத் தீர்மானித்தனர் என்பதை மறந்துவிடாதீர்கள், மேலும் இவை எந்த கூடுதல் உள்ளமைவும் இல்லாமல் அவற்றின் முடிவுகள்.
உண்மையான பயன்பாடு பற்றி என்ன? நீங்கள் பார்க்க முடியும் என, HTTP க்கான ஒட்டுமொத்த செயல்திறன் TCP ஐ விட சற்று குறைவாக உள்ளது. நீங்கள் TCP உடன் HTTP ஐப் பயன்படுத்தினாலும், HTTP அளவுகோலைப் பாதிக்கும் மெதுவான தொடக்கத்தைத் தவிர்ப்பதற்காக TCP அளவுகோலில் iperf3 ஐ உள்ளமைத்துள்ளோம். எல்லோரும் இங்கு நன்றாக வேலை செய்தார்கள். Kube-router ஒரு தெளிவான நன்மையைக் கொண்டுள்ளது, ஆனால் WeaveNet சிறப்பாக செயல்படவில்லை: வெறும் உலோகத்தை விட 20% மோசமானது. குறியாக்கத்துடன் கூடிய சிலியம் மற்றும் வீவ்நெட் மிகவும் சோகமாகத் தெரிகிறது.
FTP உடன், மற்றொரு TCP அடிப்படையிலான நெறிமுறை, முடிவுகள் மாறுபடும். Flannel மற்றும் Kube-router ஆகியவை வேலையைச் செய்கின்றன, ஆனால் காலிகோ, கால்வாய் மற்றும் சிலியம் ஆகியவை சற்று பின்தங்கி உள்ளன மற்றும் வெறும் உலோகத்தை விட 10% மெதுவாக உள்ளன. WeaveNet 17% பின்தங்கியிருக்கிறது, ஆனால் மறைகுறியாக்கப்பட்ட WeaveNet மறைகுறியாக்கப்பட்ட Cilium ஐ விட 40% முன்னால் உள்ளது.
SCP மூலம் SSH குறியாக்கத்திற்கு எவ்வளவு செலவாகும் என்பதை உடனடியாக பார்க்கலாம். ஏறக்குறைய அனைத்து CNI களும் சிறப்பாக செயல்படுகின்றன, ஆனால் WeaveNet மீண்டும் பின்தங்கியுள்ளது. குறியாக்கத்துடன் கூடிய சிலியம் மற்றும் வீவ்நெட் ஆகியவை இரட்டைக் குறியாக்கம் (SSH + CNI) காரணமாக மிக மோசமானதாக இருக்கும் என எதிர்பார்க்கப்படுகிறது.
முடிவுகளுடன் ஒரு சுருக்க அட்டவணை இங்கே:
வள நுகர்வு
இப்போது CNI அதிக சுமைகளின் கீழ் வளங்களை எவ்வாறு பயன்படுத்துகிறது என்பதை ஒப்பிடலாம் (TCP பரிமாற்றத்தின் போது, 10 Gbps). செயல்திறன் சோதனைகளில் நாம் CNI ஐ வெற்று உலோகத்துடன் (பச்சைக் கோடு) ஒப்பிடுகிறோம். வள நுகர்வுக்கு, CNI இல்லாமல் தூய குபெர்னெட்ஸை (ஊதாக் கோடு) காட்டுவோம், மேலும் CNI எவ்வளவு கூடுதல் ஆதாரங்களைப் பயன்படுத்துகிறது என்பதைப் பார்ப்போம்.
நினைவகத்துடன் ஆரம்பிக்கலாம். பரிமாற்றத்தின் போது MB இல் உள்ள முனைகளின் RAM (பஃபர்கள் மற்றும் கேச் தவிர்த்து) சராசரி மதிப்பு இங்கே உள்ளது.
Flannel மற்றும் Kube-router சிறந்த முடிவுகளைக் காட்டியது - 50 MB மட்டுமே. காலிகோ மற்றும் கால்வாய் ஒவ்வொன்றும் 70. WeaveNet தெளிவாக மற்றவற்றை விட அதிகமாக பயன்படுத்துகிறது - 130 MB, மற்றும் Cilium 400 வரை பயன்படுத்துகிறது.
இப்போது CPU நேர நுகர்வு சரிபார்க்கலாம். குறிப்பிடத்தக்கது: வரைபடம் சதவீதங்களைக் காட்டவில்லை, ஆனால் பிபிஎம், அதாவது, "வெறும் இரும்பிற்கு" 38 பிபிஎம் 3,8% ஆகும். முடிவுகள் இதோ:
காலிகோ, கால்வாய், ஃப்ளானல் மற்றும் குபே-ரௌட்டர் ஆகியவை மிகவும் CPU திறன் கொண்டவை - CNI இல்லாத குபெர்னெட்டஸை விட 2% மட்டுமே அதிகம். வீவ்நெட் கூடுதல் 5% உடன் மிகவும் பின்தங்கியுள்ளது, அதைத் தொடர்ந்து சிலியம் 7%.
இங்கே வள நுகர்வு சுருக்கம்:
முடிவுகளை
அனைத்து முடிவுகளுடன் அட்டவணை:
முடிவுக்கு
கடைசிப் பகுதியில், முடிவுகள் குறித்த எனது அகநிலைக் கருத்தை வெளிப்படுத்துவேன். இந்த அளவுகோல் மிகச் சிறிய கிளஸ்டரில் (3 முனைகள்) ஒரு இணைப்பின் செயல்திறனை மட்டுமே சோதிக்கிறது என்பதை நினைவில் கொள்ளுங்கள். இது பெரிய கிளஸ்டர்கள் (<50 முனைகள்) அல்லது இணையான இணைப்புகளுக்குப் பொருந்தாது.
சூழ்நிலையைப் பொறுத்து பின்வரும் CNIகளைப் பயன்படுத்த பரிந்துரைக்கிறேன்:
- உங்கள் கிளஸ்டரில் உள்ளதா சில வளங்களைக் கொண்ட முனைகள் (பல ஜிபி ரேம், பல கோர்கள்) மற்றும் உங்களுக்கு பாதுகாப்பு அம்சங்கள் தேவையில்லை - தேர்வு செய்யவும் flannel. இது மிகவும் செலவு குறைந்த CNIகளில் ஒன்றாகும். மேலும் இது பல்வேறு வகையான கட்டமைப்புகளுடன் (amd64, arm, arm64, முதலியன) இணக்கமானது. கூடுதலாக, இது இரண்டில் ஒன்றாகும் (மற்றது சிலியம்) CNI தானாகவே MTU ஐ தீர்மானிக்க முடியும், எனவே நீங்கள் எதையும் உள்ளமைக்க வேண்டியதில்லை. Kube-router பொருத்தமானது, ஆனால் அது தரமானதாக இல்லை மற்றும் நீங்கள் MTU ஐ கைமுறையாக உள்ளமைக்க வேண்டும்.
- தேவைப்பட்டால் பிணையத்தை குறியாக்க பாதுகாப்புக்காக, எடுத்துக் கொள்ளுங்கள் வீவ்நெட். நீங்கள் ஜம்போ பிரேம்களைப் பயன்படுத்துகிறீர்கள் என்றால் MTU அளவைக் குறிப்பிட மறக்காதீர்கள், மேலும் சூழல் மாறி மூலம் கடவுச்சொல்லைக் குறிப்பிடுவதன் மூலம் குறியாக்கத்தை இயக்கவும். ஆனால் செயல்திறனை மறந்துவிடுவது நல்லது - இது குறியாக்க செலவு.
- செய்ய சாதாரண பயன்பாடு நான் உபதேசிக்கிறேன் காலிகோ. இந்த CNI பல்வேறு குபெர்னெட்ஸ் வரிசைப்படுத்தல் கருவிகளில் (Kops, Kubespray, Rancher, முதலியன) பரவலாகப் பயன்படுத்தப்படுகிறது. வீவ்நெட்டைப் போலவே, ஜம்போ பிரேம்களைப் பயன்படுத்தினால், கான்ஃபிக்மேப்பில் MTU ஐ உள்ளமைக்க மறக்காதீர்கள். இது வள நுகர்வு, செயல்திறன் மற்றும் பாதுகாப்பு ஆகியவற்றின் அடிப்படையில் திறமையான பல செயல்பாட்டுக் கருவியாகும்.
இறுதியாக, வளர்ச்சியைப் பின்பற்றுமாறு நான் உங்களுக்கு அறிவுறுத்துகிறேன் சிலியம். இந்த CNI மிகவும் சுறுசுறுப்பான குழுவைக் கொண்டுள்ளது, அது அவர்களின் தயாரிப்பில் (அம்சங்கள், வள சேமிப்பு, செயல்திறன், பாதுகாப்பு, கிளஸ்டரிங்...) நிறைய வேலை செய்கிறது மற்றும் அவர்கள் மிகவும் சுவாரஸ்யமான திட்டங்களைக் கொண்டுள்ளனர்.
CNI தேர்வுக்கான காட்சி வரைபடம்
ஆதாரம்: www.habr.com