ஜென்கின்ஸ்-எக்ஸ் இஸ்டியோ ஃபிளாக்கரைப் பயன்படுத்தி கேனரி வரிசைப்படுத்தல்
கேனரி வரிசைப்படுத்தல்
நீங்கள் படித்திருப்பீர்கள் என்று நம்புகிறோம் முதல் பகுதி, கேனரி வரிசைப்படுத்தல்கள் என்றால் என்ன என்பதை நாங்கள் சுருக்கமாக விளக்கினோம். நிலையான குபெர்னெட்ஸ் ஆதாரங்களைப் பயன்படுத்தி அதை எவ்வாறு செயல்படுத்துவது என்பதையும் நாங்கள் காண்பித்தோம்.
ஆர்கோ ரோல்அவுட்கள்
ஆர்கோ ரோல்அவுட்ஸ் என்பது குபெர்னெட்டஸின் சொந்த வரிசைப்படுத்தல் கட்டுப்படுத்தி ஆகும். இது குபெர்னெட்டஸுக்கு CRD (தனிப்பயன் வள வரையறை) வழங்குகிறது. அதற்கு நன்றி, நாம் ஒரு புதிய பொருளைப் பயன்படுத்தலாம்: Rollout, இது பல்வேறு கட்டமைப்பு விருப்பங்களுடன் நீல-பச்சை மற்றும் கேனரி வரிசைப்படுத்தல்களை நிர்வகிக்கிறது.
தனிப்பயன் ஆதாரத்தால் பயன்படுத்தப்படும் ஆர்கோ ரோல்அவுட்ஸ் கட்டுப்படுத்தி Rollout, குபெர்னெட்டஸுக்கு நீல-பச்சை மற்றும் கேனரி போன்ற கூடுதல் வரிசைப்படுத்தல் உத்திகளை அனுமதிக்கிறது. வளம் Rollout சமமான செயல்பாட்டை வழங்குகிறது Deployment, கூடுதல் வரிசைப்படுத்தல் உத்திகளுடன் மட்டுமே.
வள Deployments வரிசைப்படுத்துவதற்கு இரண்டு உத்திகள் உள்ளன: RollingUpdate и Recreate. இந்த உத்திகள் பெரும்பாலான சந்தர்ப்பங்களில் பொருத்தமானதாக இருந்தாலும், மிகப் பெரிய அளவில் சேவையகங்களுக்குப் பயன்படுத்துவதற்கு, ப்ளு-கிரீன் அல்லது கேனரி போன்ற கூடுதல் உத்திகள் பயன்படுத்தப்படுகின்றன, அவை வரிசைப்படுத்தல் கட்டுப்படுத்தியில் இல்லை. இந்த உத்திகளை Kubernetes இல் பயன்படுத்த, பயனர்கள் தங்கள் வரிசைப்படுத்தல்களுக்கு மேல் ஸ்கிரிப்ட்களை எழுத வேண்டும். Argo Rollouts Controller இந்த உத்திகளை எளிமையான, அறிவிக்கும், கட்டமைக்கக்கூடிய அளவுருக்களாக வெளிப்படுத்துகிறது. https://argoproj.github.io/argo-rollouts
ஆர்கோ சிஐயும் உள்ளது, இது ரோல்அவுட்களுடன் பயன்படுத்த வசதியான வலை இடைமுகத்தை வழங்குகிறது, அதை அடுத்த கட்டுரையில் பார்ப்போம்.
எங்கள் உள்கட்டமைப்பு டர்னிப்பில் (கீழே காண்க) ஏற்கனவே install.yaml ஐ/k8s/argo-rollouts/install.yaml என சேர்த்துள்ளோம். இந்த வழியில் GitlabCI அதை கிளஸ்டரில் நிறுவும்.
இது மிகவும் எளிமையான Python+Flask API ஆகும், இது JSON என பதிலை வழங்கும். GitlabCI ஐப் பயன்படுத்தி தொகுப்பை உருவாக்கி, அதன் முடிவை Gitlab Registryக்கு அனுப்புவோம். பதிவேட்டில் எங்களிடம் இரண்டு வெவ்வேறு வெளியீட்டு பதிப்புகள் உள்ளன:
wuestkamp/k8s-deployment-example-app:v1
wuestkamp/k8s-deployment-example-app:v2
அவற்றுக்கிடையே உள்ள ஒரே வித்தியாசம் JSON கோப்பு திரும்பியது. நாங்கள் எந்த பதிப்பில் தொடர்பு கொள்கிறோம் என்பதை முடிந்தவரை எளிதாகக் காட்சிப்படுத்த இந்தப் பயன்பாட்டைப் பயன்படுத்துகிறோம்.
உள்கட்டமைப்பு களஞ்சியம்
இந்தக் களஞ்சியத்தில், குபெர்னெட்டஸுக்குப் பயன்படுத்த GitlabCIஐப் பயன்படுத்துவோம், .gitlab-ci.yml இது போல் தெரிகிறது:
Rollout வரிசைப்படுத்தல் போலவே செயல்படுகிறது. நாம் ஒரு புதுப்பிப்பு உத்தியை அமைக்கவில்லை என்றால் (இங்கே கேனரி போன்றது) அது இயல்புநிலை ரோலிங்-அப்டேட் வரிசைப்படுத்தல் போல் செயல்படும்.
கேனரி வரிசைப்படுத்தலுக்கு yaml இல் இரண்டு படிகளை நாங்கள் வரையறுக்கிறோம்:
இந்த வீடியோவை நான் மிகவும் பரிந்துரைக்கிறேன், Argo Rollouts மற்றும் Argo CI எவ்வாறு இணைந்து செயல்படுகின்றன என்பதை இது காட்டுகிறது:
இதன் விளைவாக
கூடுதல் வகையான வரிசைப்படுத்தல்கள் அல்லது பிரதிகள், வழிமாற்று போக்குவரத்து போன்றவற்றை உருவாக்குவதை நிர்வகிக்கும் சிஆர்டிகளைப் பயன்படுத்துவதற்கான யோசனை எனக்கு மிகவும் பிடிக்கும். அவர்களுடன் பணிபுரிவது சீராக நடக்கும். அடுத்து Argo CI உடனான ஒருங்கிணைப்பை சோதிக்க விரும்புகிறேன்.
இருப்பினும், Argo CI மற்றும் Flux CI ஆகியவற்றின் பெரிய இணைப்பு இருப்பதாகத் தோன்றுகிறது, எனவே புதிய வெளியீடு வெளிவரும் வரை நான் காத்திருக்கலாம்: ஆர்கோ ஃப்ளக்ஸ்.
Argo Rollouts அல்லது Argo CI இல் உங்களுக்கு ஏதேனும் அனுபவம் உள்ளதா?
எங்கள் வலைப்பதிவில் உள்ள மற்ற கட்டுரைகளையும் படிக்கவும்: