Deployment Controller
ডিপ্লয়মেন্ট কন্ট্রোলার
একটা reconciliation loop যা 'N replicas চাই' এই declarative দাবি বাস্তবায়ন করে — মৃত Pod মেরামত না করে সবসময় নতুন IP-সহ একটা নতুন Pod তৈরি করে replace করে।
also: deployment, replicaset-controller, k8s-deployment
loop:
desired = spec.replicas
observed = count(matching Pods, Running)
if observed < desired: create নতুন Pod
if observed > desired: delete বাড়তি Pod
- Pod immutability নীতির প্রয়োগকারী — কখনো একটা Pod-কে “সারায়” না, শুধু গণনা করে create/delete করে
- মৃত Pod-এর জায়গায় তৈরি হওয়া নতুন Pod-এর IP আলাদা — এই কারণেই Service দরকার হয়
- Rolling update এই একই লুপের নিয়ন্ত্রিত প্রয়োগ — পুরনো ও নতুন template-এর Pod ধাপে ধাপে বদলানো, desired count বজায় রেখে
- Container-স্তরের in-place restart (kubelet-এর কাজ) থেকে ভিন্ন — এটা Pod-স্তরে কাজ করে, শুধু যখন পুরো Pod হারিয়ে যায়