কম্পিউটার টিউটোরিয়াল

Kubernetes Pod: কন্টেইনার অর্কেস্ট্রেশনে সর্বনিম্ন ডিপ্লয়যোগ্য ইউনিট

Kubernetes Pod কী?

Kubernetes Pods হল ওপেন সোর্স Kubernetes কন্টেইনার শিডিউলিং ও অর্কেস্ট্রেশন এনভায়রনমেন্টে সর্বনিম্ন ডিপ্লয়যোগ্য কম্পিউটিং ইউনিট।

Pod-এর গঠন

  • একটি Pod হল এক বা একাধিক কন্টেইনারের গ্রুপিং যারা একসাথে অপারেট করে।
  • Pods Nodes-এ বসবাস করে; একাধিক Pod একই Node শেয়ার করতে পারে।
  • প্রতিটি Pod-এর ভিতরের কন্টেইনারগুলো সেই হোস্ট Node থেকে সাধারণ নেটওয়ার্কিং এবং স্টোরেজ রিসোর্স শেয়ার করে, সেইসাথে সেই স্পেসিফিকেশন যা নির্ধারণ করে কন্টেইনারগুলো কীভাবে চলবে।
  • Pod নামটি ইলাস্ট্রেটিভ, কারণ এগুলো প্রাকৃতিতে পডের মত ফাংশন করার জন্য ডিজাইন করা, যেমন মটরশুটির পড। যদিও একটি Pod অনেক কন্টেইনার ক্যাপসুলেট করতে পারে, সাধারণত প্রতিটি Pod শুধু একটি কন্টেইনার বা একটি ছোট সংখ্যক টাইটলি ইন্টিগ্রেটেড কন্টেইনার ধারণ করে।

শেয়ারড কনটেক্সট ও আইসোলেশন

  • একটি Pod-এর কন্টেন্ট শিডিউলড এবং একসাথে লোকেটেড, একটি অ্যাপ্লিকেশন-স্পেসিফিক লজিক্যাল হোস্ট মডেল করে। একটি Kubernetes ব্যবহারকারী টাইটলি ইন্টিগ্রেটেড অ্যাপ্লিকেশন কন্টেইনারকে একটি Pod-এ হোস্ট করা উচিত; কন্টেইনার ছাড়া, এই অ্যাপ্লিকেশন বা সার্ভিসগুলো একই ভার্চুয়াল বা ফিজিক্যাল মেশিনে চালাতে হত।
  • একটি Pod-এর শেয়ারড কনটেক্সট সেট হয় আইসোলেশনের দিকগুলো দ্বারা, যেমন Linux Namespaces বা cgroups। একটি ইনডিভিডুয়াল Pod-এ, সিঙ্গল অ্যাপ্লিকেশন আরও আইসোলেট করা যায়।

এনভায়রনমেন্ট ভেরিয়েবল

অপারেটর Pod, Node এবং/অথবা কন্টেইনার সম্পর্কে তথ্য এক্সপোজ করতে পারে এনভায়রনমেন্ট ভেরিয়েবল ব্যবহার করে। Pod এনভায়রনমেন্ট ভেরিয়েবল Pod-এর কন্টেইনার(স)-এ অ্যাপ্লিকেশনকে বলে যে রিসোর্সগুলো কোথায় পাবে, বা একটি কম্পোনেন্ট কীভাবে কনফিগার করবে। এই তথ্য রানটাইমে কন্টেইনারে ইনজেক্ট করা হয়। যদিও Nodes-ও এনভায়রনমেন্ট ভেরিয়েবল ধারণ করে, এগুলো কন্টেইনার들에게 এক্সপোজ করা হয় না। Kubernetes এনভায়রনমেন্ট ভেরিয়েবল স্ট্যাটিক্যালি ডিফাইন করা হয় বা ব্যবহারকারী দ্বারা লেখা হয়।

Kubernetes Pod ম্যানেজমেন্ট

  • Kubernetes Docker কন্টেইনার রানটাইম পাশাপাশি CoreOS rkt এবং CRI-O সমর্থন করে (Kubelet Container Runtime Interface using runtimes conformant with the Open Container Initiative)।
  • ব্যবহারকারী Pods তৈরি করতে পারে, তবে অধিকাংশ সময় Kubernetes Controller Pods এবং তার রেপ্লিকা তৈরি করে হাই অভেইলেবিলিটি বা হরিজন্টাল স্কেলিং-এর জন্য। যখন ব্যবহারকারী অনুরোধ করে, উদাহরণস্বরূপ, একটি Pod-এর তিনটি নতুন ইনস্ট্যান্স, Kubernetes তিনটি Pod API-লেভেল রিসোর্স হিসেবে তৈরি করে। শিডিউলার Kubernetes ব্যবহারকারীর পলিসি অনুযায়ী উপযুক্ত Node খুঁজে বের করে এবং Pod সেখানে রাখে।
  • একটি Pod-এর ভিতরের কন্টেইনার সাধারণ IP ঠিকানা এবং পোর্ট স্পেস শেয়ার করে। তারা localhost 통해서 একে অপরের খুঁজে পায়। একই Pod-এ আসাইন করা অ্যাপ্লিকেশন শেয়ারড ভলিউম অ্যাক্সেস করে, যেগুলো Pod-এ আটাচড।
  • Pods কন্টেইনারগুলকে POSIX শেয়ারড মেমরি বা SystemV সেমাফোরের মতো অন্যান্য স্ট্যান্ডার্ড কমিউনিকেশন ব্যবহার করে যোগাযোগ করতে সক্ষম করে। এক Pod-এর কন্টেইনারগুলোর আলাদা IP ঠিকানা থাকে অন্য Pod-এর কন্টেইনারগুলোর থেকে, এবং IPC প্রোটোকল ব্যবহার করতে পারে না। তবে Kubernetes Pod-টু-Pod কমিউনিকেশন সার্ভিসেসের মাধ্যমে সহজে হয়। উদাহরণস্বরূপ, যদি একটি অ্যাপ্লিকেশনের ফ্রন্ট এন্ড একটি Pod-এ থাকে একটি Node-এ, ব্যাক এন্ড একই Node-এ, ভিন্ন Node-এ, বা ১০ ইনস্ট্যান্স বিভিন্ন Node-এ ছড়িয়ে থাকতে পারে, এবং ফ্রন্ট-এন্ড Pod শুধু একটি সার্ভিসের সাথে কানেক্ট করে যা ব্যাক-এন্ড Pod বা Podsকে রিপ্রেজেন্ট করে।

Kubernetes Pod: কন্টেইনার অর্কেস্ট্রেশনে সর্বনিম্ন ডিপ্লয়যোগ্য ইউনিট

  1. লিনাক্সে Podman কন্টেইনারের বিগিনার্স গাইড

  2. ল্যাপটপে Minikube ব্যবহার করে Kubernetes শুরুর পদ্ধতি

  3. Kubernetes কী?

  4. কন্টেইনার সহ ক্লাউড পোর্টেবিলিটি অর্জন: ব্যবহারিক কৌশল