தனிப்பயன் நிலைகளுடன் (Custom Stages) GKE Rollout Sequencing

Google Cloud-ன் GKE இப்போது, இயல்பான பிராந்திய கால அட்டவணைக்கு (default regional schedule) பதிலாக, உங்கள் சொந்த வணிகத் தர்க்கத்தைப் (business logic) பின்பற்றும் தனிப்பயன்-நிலை rollout sequencing மூலம், கிளஸ்டர்கள் எந்த வரிசையில் மேம்படுத்தப்பட வேண்டும் என்பதைத் தீர்மானிக்க அனுமதிக்கிறது.

டஜன் கணக்கான அல்லது நூற்றுக்கணக்கான சூழல்களில் (environments) Kubernetes கிளஸ்டர்களை மேம்படுத்துவது ஒரு சவாலான காரியம். பாதுகாப்புத் திருத்தங்கள் (Security patches) வழக்கமாக வந்து கொண்டே இருக்கும், ஆனால் அதே நேரத்தில் உற்பத்திச் சேவைகளையும் (production services) நீங்கள் தொடர்ந்து இயக்க வேண்டும். பழைய பிராந்திய மேம்பாட்டு மாதிரி (regional upgrade model), ஒரு staging சூழல் அதன் சரிபார்ப்பை (validation) முடிப்பதற்கு முன்பே, ஒரு புதிய control-plane பதிப்பை உற்பத்தி கிளஸ்டருக்குத் தள்ளக்கூடும்; இது ஒட்டுமொத்தக் கட்டமைப்பையும் (fleet) சோதிக்கப்படாத மாற்றங்களுக்கு உள்ளாக்கும்.

பழைய மாதிரி ஏன் போதுமானதாக இல்லை

ஒரு பிராந்திய rollout, அந்தப் பிராந்தியத்தில் உள்ள ஒவ்வொரு கிளஸ்டரையும் ஒரே தொகுதியாகக் கருதுகிறது. மேம்படுத்தும் காலம் (upgrade window) தொடங்கியதும், கிளஸ்டர் release pipeline-ல் எந்த நிலையில் இருந்தாலும், control plane மற்றும் nodes ஆகியவை இணையாக (in parallel) மேம்படுத்தப்படுகின்றன. ஒரு கண்டிப்பான canary-then-production முறையைச் சார்ந்திருக்கும் குழுக்கள், "வரிசை முறை தவறிய" (out-of-order) மேம்படுத்தல்களைச் சந்திக்க நேரிடும். இது ஒரு குறிப்பிட்ட மாற்றத்தைக் கண்டறிவதற்கே கடினமான பின்னடைவுகளை (regressions) ஏற்படுத்தக்கூடும். இதன் பாதிப்பு வெறும் downtime மட்டுமல்ல; முன்கூட்டியே கண்டறிய முடிந்த ஒரு சிக்கலைத் தீர்ப்பதற்காக (debugging) செலவிடப்படும் பொறியியல் நேரமும் கூட.

GKE rollout sequencing எதைச் சேர்க்கிறது

இந்த புதிய அம்சம், தொடர்ச்சியான நிலைகளை வரையறுக்கும் ஒரு RolloutSequence பொருளை அறிமுகப்படுத்துகிறது. ஒவ்வொரு நிலையும் label selectors மூலம் அடையாளம் காணப்பட்ட உங்கள் கட்டமைப்பின் (fleet) ஒரு தர்க்கரீதியான பகுதியாகும். இந்த அமைப்பு ஒரு தீர்மானிக்கப்பட்ட பாதையைப் (deterministic path) பின்பற்றுகிறது:

  • முதலில் Control-plane மேம்படுத்தல். எந்தவொரு nodes-ஐயும் தொடங்குவதற்கு முன்பே, GKE மைய மேலாண்மைப் பகுதியை (central management component) இலக்கு பதிப்பிற்கு (target version) மாற்றுகிறது.
  • Soak timer தொடங்குகிறது. Control plane இலக்கை அடைந்த பிறகு, ஒரு மாற்றியமைக்கக்கூடிய காலதாமதம் (configurable delay) இயங்கும், இது உங்களுக்கு health checks செய்ய ஒரு கால அவகாசத்தை அளிக்கிறது.
  • Node மேம்படுத்தல்கள் இணையாக இயங்கும். Soak timer countdown ஆகிக் கொண்டிருக்கும்போதே, GKE nodes-களை மேம்படுத்துகிறது, இது கிளஸ்டர் விரைவாகப் புதிய பதிப்பிற்கு மாற உதவுகிறது.
  • முழுமையாக முடிந்த பின்னரே அடுத்த நிலை தொடங்கும். தற்போதைய நிலையில் உள்ள ஒவ்வொரு node மற்றும் control plane முடிவடைந்து, soak timer முடிந்ததும், GKE அடுத்த நிலைக்குச் செல்லும்.

ஒரு கட்டமைப்பைச் சிறிய, லேபிளிடப்பட்ட குழுக்களாகப் பிரிப்பதன் மூலம், நீங்கள் முதலில் சில canary கிளஸ்டர்களை மேம்படுத்தலாம், கண்காணிப்பு (monitoring) மற்றும் traffic-routing விதிகள் எதிர்பார்த்தபடி செயல்படுகின்றனவா என்பதைச் சரிபார்க்கலாம், பின்னர் அதே பதிப்பை மற்ற உற்பத்தி (production) கிளஸ்டர்களுக்கும் கொண்டு செல்லலாம்.

வரிசையைச் சீராக வைத்திருக்கும் விதிகள்

  • Catch-all stage: இறுதி நிலையில் label selector தவிர்க்கப்படுகிறது, இது முன்னரே பொருந்தாத எந்தவொரு கிளஸ்டரும் மேம்படுத்தலைப் பெறுவதை உறுதி செய்கிறது.
  • Conflict resolution: ஒரு கிளஸ்டரின் லேபிள்கள் ஒன்றுக்கும் மேற்பட்ட நிலைகளுக்குப் பொருந்தினால், GKE அதை முதல் பொருந்தும் நிலையில் வைக்கும், இது தற்செயலாக இரண்டு முறை மேம்படுத்தப்படுவதைத் தடுக்கிறது.

நிகழ்நேரக் கட்டுப்பாட்டுத் தேர்வுகள் (Real-time control knobs)

ஒரு செயல்பாட்டில் உள்ள rollout-ன் போது நீங்கள் கட்டுப்பாட்டில் இருக்கலாம்:

  • Pause மேற்கொண்டு எந்த மேம்படுத்தல்களையும் நிறுத்திவிடும், இது ஒரு canary நிலையில் ஏற்படும் தோல்வியைத் தற்காலிகமாகத் தடுத்து, அந்தப் பிரச்சனை மற்ற இடங்களுக்கும் பரவாமல் நீங்கள் ஆராய அனுமதிக்கிறது.
  • Force-complete உங்கள் validation ஸ்கிரிப்ட்கள் முன்கூட்டியே வெற்றியைத் தெரிவிக்கும் போது, மீதமுள்ள soak நேரத்தைக் குறைத்து, rollout வேகத்தை அதிகரிக்கிறது.
  • Cancel புதிதாக வெளியிடப்பட்ட பதிப்பில் ஏதேனும் முக்கியமான பிழை (critical bug) இருந்தால், முழு வரிசையையும் ரத்து செய்கிறது, இது நீங்கள் பழைய நிலைக்குத் திரும்பவோ அல்லது hotfix-க்காகக் காத்திருக்கவோ அனுமதிக்கிறது.

யாருக்குப் பயன், மற்றும் இதில் உள்ள சவால்கள் என்ன

அடுத்து கவனிக்க வேண்டியவை

முக்கியக் கருத்து

தனிப்பயன்-நிலை rollout sequencing, GKE இயக்குபவர்களுக்கு (operators) தளம் (platform) சொல்லும் வரிசையில் அல்லாமல், அவர்களின் வணிகத் தேவைக்கேற்ப கிளஸ்டர்களை மேம்படுத்தும் திறனை வழங்குகிறது. Control-plane மற்றும் node மேம்படுத்தல்களைப் பிரிப்பதன் மூலமும், மாற்றியமைக்கக்கூடிய soak காலத்தைச் சேர்ப்பதன் மூலமும், pause/force-complete/cancel போன்ற செயல்பாடுகளை வழங்குவதன் மூலமும், இந்த அம்சம் cloud-native குழுக்களுக்குத் தேவையான வேகத்தைப் பேணிக்கொண்டே, மேம்படுத்தல் அபாயத்தைக் குறைக்கிறது. ஒட்டுமொத்தக் கட்டமைப்பிலும் (fleet-wide) Kubernetes மேம்படுத்தல்களின் குழப்பத்துடன் போராடுபவர்களுக்கு, இந்த புதிய sequencing மாதிரி பாதுகாப்பான மற்றும் வணிகத்திற்கு இணக்கமான தானியங்கி முறைக்கான (automation) ஒரு உறுதியான படியாகும்.