కస్టమ్ స్టేజ్‌లతో GKE రోల్‌అవుట్ సీక్వెన్సింగ్ (Rollout Sequencing)

Google Cloud యొక్క GKE ఇప్పుడు క్లస్టర్‌లను అప్‌గ్రేడ్ చేసే ఖచ్చితమైన క్రమాన్ని మీరు నిర్ణయించుకోవచ్చు. ఇది డిఫాల్ట్ రీజినల్ షెడ్యూల్‌కు బదులుగా, మీ స్వంత బిజినెస్ లాజిక్‌ను అనుసరించే కస్టమ్-స్టేజ్ రోల్‌అవుట్ సీక్వెన్సింగ్‌ను ఉపయోగిస్తుంది.

డజన్ల కొద్దీ లేదా వందల కొద్దీ ఎన్విరాన్‌మెంట్‌లలో Kubernetes క్లస్టర్‌లను అప్‌గ్రేడ్ చేయడం అనేది ఒక సవాలుతో కూడుకున్న పని. సెక్యూరిటీ ప్యాచెస్ క్రమంగా వస్తుంటాయి, కానీ మీరు ప్రొడక్షన్ సర్వీసులను కూడా నిరంతరాయంగా నడపాల్సి ఉంటుంది. పాత రీజినల్ అప్‌గ్రేడ్ మోడల్, ఒక స్టేజింగ్ ఎన్విరాన్మెంట్ తన వ్యాలిడేషన్‌ను పూర్తి చేయకముందే ప్రొడక్షన్ క్లస్టర్‌కు కొత్త కంట్రోల్-ప్లేన్ వెర్షన్‌ను పంపే అవకాశం ఉంది, దీనివల్ల క్లస్టర్ ఫీట్‌ (fleet) మొత్తం పరీక్షించని మార్పులకు గురయ్యే ప్రమాదం ఉంది.

పాత మోడల్ ఎందుకు సరిపోలేదు

రీజినల్ రోల్‌అవుట్ అనేది ఆ రీజియన్‌లోని ప్రతి క్లస్టర్‌ను ఒకే సమూహంగా (single bucket) పరిగణిస్తుంది. అప్‌గ్రేడ్ విండో ప్రారంభమైనప్పుడు, క్లస్టర్ రిలీజ్ పైప్‌లైన్‌లో ఎక్కడ ఉన్నప్పటికీ, కంట్రోల్ ప్లేన్ మరియు నోడ్స్ సమాంతరంగా అప్‌గ్రేడ్ అవుతాయి. 'canary-then-production' ఫ్లోపై ఆధారపడే టీమ్‌లు "out-of-order" అప్‌గ్రేడ్‌లను ఎదుర్కోవాల్సి వస్తుంది, ఇది నిర్దిష్ట మార్పును గుర్తించడం కష్టమయ్యేలా రిగ్రెషన్లకు (regressions) దారితీయవచ్చు. దీని వల్ల కలిగే నష్టం కేవలం డౌన్‌టైమ్ మాత్రమే కాదు; ముందే గుర్తించగలిగే సమస్యను పరిష్కరించడానికి (debugging) వెచ్చించే ఇంజనీరింగ్ సమయం కూడా వృధా అవుతుంది.

GKE రోల్‌అవుట్ సీక్వెన్సింగ్ వల్ల కలిగే ప్రయోజనాలు

ఈ కొత్త ఫీచర్ వరుస స్టేజ్‌లను నిర్వచించే ఒక RolloutSequence ఆబ్జెక్ట్‌ను పరిచయం చేస్తుంది. ప్రతి స్టేజ్ అనేది లేబుల్ సెలెక్టర్ల (label selectors) ద్వారా గుర్తించబడే మీ ఫీట్‌లోని ఒక లాజికల్ విభాగం. ఈ సిస్టమ్ ఒక నిర్ణీత మార్గాన్ని (deterministic path) అనుసరిస్తుంది:

  • మొదట కంట్రోల్-ప్లేన్ అప్‌గ్రేడ్. నోడ్స్‌ను తాకకముందే, GKE సెంట్రల్ మేనేజ్‌మెంట్ కాంపోనెంట్‌ను టార్గెట్ వెర్షన్‌కు మారుస్తుంది.
  • సోక్ టైమర్ (Soak timer) ప్రారంభం. కంట్రోల్ ప్లేన్ టార్గెట్‌ను చేరుకున్న తర్వాత, కాన్ఫిగర్ చేయగల ఆలస్యం (delay) జరుగుతుంది, ఇది మీకు హెల్త్ చెక్‌లు నిర్వహించడానికి సమయాన్ని ఇస్తుంది.
  • నోడ్ అప్‌గ్రేడ్‌లు సమాంతరంగా జరుగుతాయి. సోక్ టైమర్ నడుస్తున్న సమయంలో, GKE నోడ్స్‌ను అప్‌గ్రేడ్ చేస్తుంది, తద్వారా క్లస్టర్ త్వరగా కొత్త వెర్షన్‌కు చేరుకుంటుంది.
  • పూర్తయిన తర్వాతే తదుపరి స్టేజ్ ప్రారంభమవుతుంది. ప్రస్తుత స్టేజ్‌లోని ప్రతి నోడ్ మరియు కంట్రోల్ ప్లేన్ పూర్తయి, సోక్ టైమర్ ముగిసిన తర్వాతే, GKE తదుపరి స్టేజ్‌కు వెళ్తుంది.

ఫీట్‌ను చిన్న చిన్న లేబుల్ చేయబడిన సమూహాలుగా విభజించడం ద్వారా, మీరు మొదట కొన్ని కానరీ (canary) క్లస్టర్‌లను అప్‌గ్రేడ్ చేయవచ్చు, మానిటరింగ్ మరియు ట్రాఫిక్-రూటింగ్ రూల్స్ ఆశించిన విధంగా పనిచేస్తున్నాయో లేదో తనిఖీ చేయవచ్చు, ఆపై అదే వెర్షన్‌ను మిగిలిన ప్రొడక్షన్ క్లస్టర్‌లకు వర్తింపజేయవచ్చు.

సీక్వెన్స్‌ను క్రమబద్ధంగా ఉంచే నియమాలు

  • Catch-all స్టేజ్: చివరి స్టేజ్‌లో లేబుల్ సెలెక్టర్ ఉండదు, దీనివల్ల ఇంతకుముందు మ్యాచ్ కాని ఏ క్లస్టర్‌కైనా అప్‌గ్రేడ్ అందుతుందని గ్యారెంటీ ఉంటుంది.
  • Conflict resolution: ఒక క్లస్టర్ లేబుల్స్ ఒకటి కంటే ఎక్కువ స్టేజ్‌లకు సరిపోతే, GKE దానిని మొదటి మ్యాచ్ అయిన స్టేజ్‌లో ఉంచుతుంది, తద్వారా పొరపాటున రెండుసార్లు అప్‌గ్రేడ్ కాకుండా నిరోధిస్తుంది.

రియల్-టైమ్ కంట్రోల్ నబ్‌లు (Control knobs)

యాక్టివ్ రోల్‌అవుట్ సమయంలో మీరు నియంత్రణలో ఉంటారు:

  • Pause: ఇది తదుపరి అప్‌గ్రేడ్‌లను ఆపివేస్తుంది, దీనివల్ల సమస్య మొత్తం వ్యాపించకుండా (cascading), కానరీ స్టేజ్‌లో జరిగిన వైఫల్యాన్ని మీరు పరిశీలించవచ్చు.
  • Force-complete: మీ వ్యాలిడేషన్ స్క్రిప్ట్‌లు త్వరగానే విజయాన్ని నివేదించినప్పుడు, మిగిలిన సోక్ టైమ్‌ను వదిలివేసి, రోల్‌అవుట్‌ను వేగవంతం చేస్తుంది.
  • Cancel: కొత్తగా విడుదల చేసిన వెర్షన్‌లో ఏదైనా క్లిష్టమైన బగ్ కనిపిస్తే, ఇది మొత్తం సీక్వెన్స్‌ను రద్దు చేస్తుంది, తద్వారా మీరు పాత వెర్షన్‌కు వెళ్లడానికి (revert) లేదా హాట్‌ఫిక్స్ కోసం వేచి ఉండటానికి వీలవుతుంది.

ఎవరికి ప్రయోజనం, మరియు ఇందులో ఉన్న లాభనష్టాలు ఏమిటి

తదుపరి ఏమి గమనించాలి

ముగింపు (Takeaway)

కస్టమ్-స్టేజ్ రోల్‌అవుట్ సీక్వెన్సింగ్ అనేది ప్లాట్‌ఫారమ్ చెప్పిన క్రమంలో కాకుండా, వ్యాపార అవసరాలకు అనుగుణంగా క్లస్టర్‌లను అప్‌గ్రేడ్ చేసే సామర్థ్యాన్ని GKE ఆపరేటర్లకు అందిస్తుంది. కంట్రోల్-ప్లేన్ మరియు నోడ్ అప్‌గ్రేడ్‌లను వేరు చేయడం, కాన్ఫిగర్ చేయగల సోక్ పీరియడ్‌ను జోడించడం మరియు pause/force-complete/cancel చర్యలను అందించడం ద్వారా, ఈ ఫీచర్ క్లౌడ్-నేటివ్ టీమ్‌లకు అవసరమైన వేగాన్ని కోల్పోకుండానే అప్‌గ్రేడ్ రిస్క్‌ను తగ్గిస్తుంది. ఫీట్-వైడ్ Kubernetes అప్‌గ్రేడ్‌ల గందరగోళంతో పోరాడుతున్న ఎవరికైనా, ఈ కొత్త సీక్వెన్సింగ్ మోడల్ సురక్షితమైన మరియు వ్యాపారానికి అనుగుణమైన ఆటోమేషన్ వైపు ఒక ముఖ్యమైన ముందడుగు.