Deployment Configuration এবং Update Strategies Kubernetes-এ গুরুত্বপূর্ণ ভূমিকা পালন করে, কারণ এগুলো অ্যাপ্লিকেশন ডেপ্লয়মেন্ট এবং আপডেটের প্রক্রিয়াকে নিয়ন্ত্রণ এবং পরিচালনা করে। Kubernetes Deployment ব্যবহার করে অ্যাপ্লিকেশন ডেপ্লয় এবং আপডেট করার প্রক্রিয়া সহজ ও স্কেলেবল হয়। নিচে Deployment Configuration এবং Update Strategies-এর ব্যাখ্যা এবং উদাহরণ দেওয়া হলো।
Deployment Configuration
Kubernetes-এ Deployment Configuration হলো একটি YAML ফাইল বা অবজেক্ট, যা একটি অ্যাপ্লিকেশন বা সার্ভিস কিভাবে ডেপ্লয় এবং পরিচালিত হবে তার সমস্ত বিবরণ সংরক্ষণ করে। এটি নির্ধারণ করে কতগুলি পড তৈরি হবে, কোন ইমেজ ব্যবহার হবে, পডগুলো কিভাবে স্কেল হবে, এবং পডের জীবনচক্র কিভাবে পরিচালিত হবে।
Deployment Configuration-এর প্রধান কম্পোনেন্ট:
replicas:
- এটি নির্ধারণ করে কতগুলি পড তৈরি করা হবে। এটি অ্যাপ্লিকেশন স্কেলিংয়ের জন্য গুরুত্বপূর্ণ।
selector:
- এটি পডগুলো নির্বাচন করে যেগুলো এই Deployment-এর অন্তর্গত। সাধারণত, এটি লেবেল ব্যবহার করে পডগুলো নির্বাচন করে।
template:
- এখানে পডের কনফিগারেশন, যেমন কন্টেইনার ইমেজ, পোর্ট, ভলিউম, এবং পরিবেশ ভ্যারিয়েবল উল্লেখ করা হয়। এই টেমপ্লেটের মাধ্যমে পড তৈরি করা হয়।
strategy:
- এটি নির্ধারণ করে পড আপডেট এবং ডেপ্লয়মেন্টের কৌশল কী হবে। এখানে Update Strategies নির্ধারণ করা হয়, যেমন Rolling Update বা Recreate।
একটি Deployment Configuration উদাহরণ:
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.14.2
ports:
- containerPort: 80
strategy:
type: RollingUpdate
rollingUpdate:
maxSurge: 1
maxUnavailable: 1
ব্যাখ্যা:
- replicas: এখানে ৩টি পড তৈরি হবে।
- template: পডের টেমপ্লেটে
nginxকন্টেইনার ব্যবহার করা হয়েছে এবং পোর্ট80উন্মুক্ত করা হয়েছে। - strategy: এখানে RollingUpdate কৌশল ব্যবহার করা হয়েছে, যা পড আপডেট করার একটি জনপ্রিয় পদ্ধতি।
Update Strategies
Kubernetes-এ Update Strategies হলো পড আপডেট করার বিভিন্ন পদ্ধতি বা কৌশল, যা নির্ধারণ করে কিভাবে পড আপডেট বা রিপ্লেস করা হবে। Kubernetes-এ প্রধান দুটি আপডেট কৌশল রয়েছে:
- Rolling Update
- Recreate
১. Rolling Update
Rolling Update হলো Kubernetes-এর একটি ডিফল্ট আপডেট কৌশল, যেখানে পুরোনো পডগুলো ধীরে ধীরে নতুন পডগুলোর সাথে রিপ্লেস করা হয়। এটি একটি zero downtime বা minimum downtime কৌশল, কারণ সার্ভিসটি চলমান অবস্থায় থেকে আপডেট সম্পন্ন হয়।
কিভাবে কাজ করে:
- একটি পুরোনো পড ডিলিট করা হয় এবং নতুন একটি পড তৈরি করা হয়।
- এটি প্রক্রিয়া চলমান থাকে যতক্ষণ না সমস্ত পুরোনো পড রিপ্লেস হয়ে যায়।
- maxSurge এবং maxUnavailable প্যারামিটার ব্যবহার করে নিয়ন্ত্রণ করা হয় কতগুলি পড একসাথে আপডেট হবে এবং কতগুলি পড একসাথে আনঅ্যাভেইলেবল থাকবে।
উদাহরণ:
- maxSurge: 1: একসাথে ১টি নতুন পড তৈরি হবে।
- maxUnavailable: 1: একসাথে ১টি পুরোনো পড আনঅ্যাভেইলেবল থাকবে।
strategy:
type: RollingUpdate
rollingUpdate:
maxSurge: 1
maxUnavailable: 1
সুবিধা:
- Minimal Downtime: Rolling Update-এ সার্ভিস চলমান অবস্থায় থাকে, তাই ব্যবহারকারীরা কোনো ধরনের ডাউনটাইম অনুভব করে না।
- Scalable: বড় বড় ডিপ্লয়মেন্টে এটি সহজেই স্কেল করা যায়।
সীমাবদ্ধতা:
- যদি পডগুলো আপডেট করার সময় কোনো সমস্যা দেখা দেয়, তাহলে পুরো সার্ভিসে প্রভাব পড়তে পারে।
২. Recreate
Recreate কৌশলে সমস্ত পুরোনো পড একসাথে ডিলিট করা হয় এবং তারপর নতুন পড একসাথে তৈরি করা হয়। এটি একটি downtime সহ্যযোগ্য কৌশল, কারণ নতুন পডগুলো তৈরি হওয়ার সময় সার্ভিস অপ্রাপ্য হয়ে যেতে পারে।
কিভাবে কাজ করে:
- প্রথমে সমস্ত পুরোনো পড একসাথে ডিলিট করা হয়।
- তারপর নতুন পড তৈরি করা হয় এবং সার্ভিস পুনরায় চালু করা হয়।
উদাহরণ:
strategy:
type: Recreate
সুবিধা:
- সাধারণ: এটি খুবই সাধারণ এবং দ্রুত আপডেট করা যায়।
- কনসিসটেন্ট স্টেট: যদি সার্ভিসের পুরোনো এবং নতুন ভার্সন একসঙ্গে চলা নিয়ে কোনো সমস্যা থাকে, তাহলে এটি ব্যবহার করা যেতে পারে, কারণ একসাথে পুরোনো ভার্সন বন্ধ এবং নতুন ভার্সন চালু হয়।
সীমাবদ্ধতা:
- Downtime: Recreate কৌশলে সার্ভিস ডাউন থাকে যতক্ষণ না নতুন পড তৈরি হয়। তাই এটি সময় সংবেদনশীল সার্ভিসের জন্য উপযুক্ত নয়।
সংক্ষেপে
| বৈশিষ্ট্য | Rolling Update | Recreate |
|---|---|---|
| কাজ | পুরোনো পডগুলো ধীরে ধীরে নতুন পডের সাথে রিপ্লেস হয় | পুরোনো পডগুলো একসাথে বন্ধ হয় এবং নতুন পড একসাথে তৈরি হয় |
| Downtime | নেই বা খুবই কম | থাকতে পারে |
| সুবিধা | সার্ভিস চলমান অবস্থায় থাকে এবং স্কেলেবল | সহজ এবং কনসিসটেন্ট স্টেট নিশ্চিত করে |
| সীমাবদ্ধতা | পড আপডেটের সময় সমস্যার সম্ভাবনা থাকে | ডাউনটাইম থাকে যা প্রোডাকশন সার্ভিসের জন্য অনুপযুক্ত |
Deployment Configuration এবং Update Strategies-এর সংযোগ
Deployment Configuration ব্যবহার করে Kubernetes-এ বিভিন্ন Update Strategies কনফিগার করা যায়, যা অ্যাপ্লিকেশন আপডেটের সময় শূন্য ডাউনটাইম নিশ্চিত করতে পারে বা দ্রুত রিপ্লেসমেন্ট করতে পারে। Rolling Update এবং Recreate কৌশলগুলো নির্ভর করে সার্ভিসের ধরণ এবং প্রয়োজনীয়তার ওপর।
Kubernetes-এ Deployment এবং Update Strategies ব্যবহারের মাধ্যমে অ্যাপ্লিকেশন পরিচালনা সহজ ও কার্যকরী হয় এবং ক্লাউড পরিবেশে বিভিন্ন অ্যাপ্লিকেশন স্কেল এবং আপডেট করা সম্ভব হয়।
Read more