Google Cloud ঘোষণা করেছে যে তাদের GKE পরিষেবা এখন সাধারণভাবে উপলব্ধ (generally-available) দুই-ধাপের কন্ট্রোল-প্লেন আপগ্রেড অফার করছে, যা গ্রাহকদের সফটওয়্যার বাইনারি আপগ্রেড এবং ডেটা-ফরম্যাট মাইগ্রেশনকে আলাদা করতে এবং মাইনর ভার্সন পরিবর্তনের সময় রোলব্যাক উইন্ডো খোলা রাখতে সাহায্য করবে।

কেন GKE-এর একটি নিরাপদ পথের প্রয়োজন ছিল

একটি Kubernetes কন্ট্রোল প্লেনকে এক মাইনর ভার্সন থেকে পরবর্তী ভার্সনে আপগ্রেড করা সব সময়ই ঝুঁকিপূর্ণ ছিল। ১.৩৩ থেকে ১.৩৪-এ পরিবর্তন মানে কেবল বাইনারি প্রতিস্থাপন নয়, বরং এর অন্তর্নিহিত ডেটা স্ট্রাকচারগুলোকেও নতুন করে লেখা। যদি নতুন ভার্সনে কোনো বাগ (bug) থাকে, তবে ক্লাস্টারটিকে কেবল আগের অবস্থায় ফিরিয়ে নেওয়া সম্ভব হয় না; অ্যাডমিনিস্ট্রেটরদের পুরনো ডেটাবেস স্ন্যাপশট রিস্টোর করতে হয় অথবা পুরো ক্লাস্টারটি পুনরায় তৈরি করতে হয়, যা একটি সময়সাপেক্ষ এবং ভুল হওয়ার সম্ভাবনা রয়েছে এমন প্রক্রিয়া।

দুই-ধাপের আপগ্রেড কীভাবে কাজ করে

নতুন এই প্রক্রিয়াটি আপগ্রেডকে দুটি স্বতন্ত্র পর্যায়ে বিভক্ত করে:

  • ধাপ ১ – বাইনারি আপগ্রেড (emulated mode)। GKE পুরনো ডেটা ফরম্যাট বজায় রেখে কন্ট্রোল-প্লেন বাইনারিগুলোকে টার্গেট ভার্সনে পরিবর্তন করে। যেহেতু কোনো নতুন ডেটা স্ট্রাকচার লেখা হয় না, তাই এই ধাপ জুড়ে ক্লাস্টারটি রোলব্যাক-নিরাপদ থাকে।
  • ধাপ ২ – ফাইনলাইজেশন (Finalization)। একটি কনফিগারযোগ্য অপেক্ষার সময় শেষে, GKE সংরক্ষিত ডেটাকে নতুন ফরম্যাটে রূপান্তর করে। একবার এই রূপান্তর শেষ হয়ে গেলে, রোলব্যাক করতে সেই একই স্ন্যাপশট-রিস্টোর প্রচেষ্টার প্রয়োজন হবে যা এই দুই-ধাপের প্রক্রিয়াটি এড়ানোর জন্য তৈরি করা হয়েছিল।

এই বিভাজন একটি “soak window” তৈরি করে যেখানে অপারেটররা অপরিবর্তনীয় ডেটা মাইগ্রেশনে প্রতিশ্রুতিবদ্ধ না হয়েই প্রোডাকশনে আপগ্রেড করা বাইনারিগুলো পর্যবেক্ষণ করতে পারেন।

ব্যবহারিক ক্ষেত্রে soak window

soak পিরিয়ড চলাকালীন GKE স্বয়ংক্রিয়ভাবে গুরুত্বপূর্ণ হেলথ মেট্রিক্সগুলো পর্যবেক্ষণ করে—যেমন API ল্যাটেন্সি, এরর রেট এবং পড হেলথ। যদি পরিষেবাটি কোনো অস্বাভাবিকতা শনাক্ত করে, তবে এটি রোলআউট বন্ধ করে দেয়, ফলে ক্লাস্টারটি বাইনারি-অনলি অবস্থায় থাকে যেখানে রোলব্যাক করা এখনও সম্ভব। গুগল এই প্যাটার্ন অনুসরণ করা আপগ্রেডগুলোর জন্য ৯৯.৯৯৯% সাফল্যের হার উল্লেখ করেছে।

যে ক্লাস্টারগুলো GKE-এর auto-upgrade ফিচার ব্যবহার করে, প্ল্যাটফর্মটি কোনো ম্যানুয়াল হস্তক্ষেপ ছাড়াই পুরো দুই-ধাপের সিকোয়েন্সটি পরিচালনা করে। যারা পূর্ণ নিয়ন্ত্রণ পছন্দ করেন, তারা Cloud CLI বা Terraform-এর মাধ্যমে এই প্রক্রিয়াটি চালু করতে পারেন।

ম্যানুয়াল দুই-ধাপের আপগ্রেড চালানো

৪৮ ঘণ্টার সেফটি উইন্ডো সহ একটি সাধারণ ম্যানুয়াল আপগ্রেড দেখতে এরকম:

gcloud beta container clusters upgrade my-cluster \
  --location=us-central1 \
  --cluster-version=1.34.1-gke.1829001 \
  --control-plane-soak-duration=48h \
  --master

বর্তমান স্ট্যাটাস পরীক্ষা করতে:

gcloud container clusters describe my-cluster \
  --location=us-central1 \
  --format="yaml(rollbackSafeUpgradeStatus)"

soak পিরিয়ড চলাকালীন যদি কোনো ত্রুটি দেখা দেয়, তবে অ্যাডমিনিস্ট্রেটর ডেটা হারানো ছাড়াই একটি রোলব্যাক কমান্ড দিতে পারেন এবং পূর্ববর্তী ভার্সনে ফিরে যেতে পারেন। যখন ক্লাস্টারটি স্থিতিশীল প্রমাণিত হয়, তখন complete-control-plane-upgrade কমান্ডের মাধ্যমে আপগ্রেডটি দ্রুত সম্পন্ন করা যেতে পারে।

সীমাবদ্ধতা এবং প্রয়োজনীয়তা

  • এই ফিচারটি ১.৩৩ বা তার পরবর্তী ভার্সন চালিত GKE ক্লাস্টারগুলোর জন্য প্রযোজ্য।
  • একবারে কেবল একটি মাইনর ভার্সন আপগ্রেড করা যেতে পারে; ভার্সন স্কিপ করা সমর্থিত নয়।
  • দুই-ধাপের পুরো প্রক্রিয়া চলাকালীন Autopilot এবং রিজিওনাল ক্লাস্টার উভয়ই উপলব্ধ থাকে।

সম্ভাব্য অসুবিধাগুলো

বাইনারি এবং ডেটা আপগ্রেডকে আলাদা করার ফলে আপগ্রেড টাইমলাইনে একটি অতিরিক্ত ধাপ যুক্ত হয়, যা দ্রুত ভার্সন পরিবর্তনের প্রয়োজন আছে এমন সংস্থাগুলোর জন্য সামগ্রিক সময় বাড়িয়ে দিতে পারে। soak পিরিয়ডটি স্বয়ংক্রিয় হেলথ চেকের ওপর নির্ভর করে; যে দলগুলো অত্যন্ত কাস্টমাইজড ওয়ার্কলোড পরিচালনা করে, তাদের এজ-কেস রিগ্রেশন (edge-case regressions) ধরার জন্য GKE-এর মনিটরিংয়ের পাশাপাশি নিজস্ব অবজারভেবিলিটি টুলস ব্যবহার করার প্রয়োজন হতে পারে।

পরবর্তী যা লক্ষ্য রাখতে হবে

গুগল মেজর ভার্সন আপগ্রেডের ক্ষেত্রেও এই দুই-ধাপের মডেলটি সম্প্রসারণ করার কোনো রোডম্যাপ প্রকাশ করেনি, যেখানে অনেক ক্ষেত্রে এখনও পুরো ক্লাস্টার পুনরায় তৈরি করার প্রয়োজন হয়। পর্যবেক্ষকরা নোড-পুল আপগ্রেড এবং থার্ড-পার্টি CI/CD পাইপলাইনের সাথে কোনো ইন্টিগ্রেশনের ঘোষণা খুঁজবেন যা soak-window চেকগুলোকে স্বয়ংক্রিয় করতে পারে।

সারকথা: বাইনারি আপগ্রেডকে ডেটা মাইগ্রেশন থেকে আলাদা করার মাধ্যমে, GKE প্ল্যাটফর্ম ইঞ্জিনিয়ারদের মাইনর ভার্সন পরিবর্তনের জন্য একটি ব্যবহারিক রোলব্যাক উইন্ডো প্রদান করে, যা ডাউনটাইম সর্বনিম্ন রেখে ক্লাস্টার রক্ষণাবেক্ষণের অপারেশনাল খরচ কমায়।