কুবারনেটিস (Kubernetes)

এটা কি

কুবারনেটিস (Kubernetes), প্রায়ই K8s হিসাবে সংক্ষিপ্ত হয়, একটি ওপেন-সোর্স কন্টেইনার অর্কেস্ট্রেটর যা আধুনিক পরিকাঠামোতে কন্টেইনারাইজড (containerized) অ্যাপ্লিকেশনের জীবনচক্রকে স্বয়ংক্রিয় করে। এটি একটি ডেটা সেন্টারের অপারেটিং সিস্টেমের মতো, যা অংশ-বিভাগিত সিস্টেম (Distributed System) জুড়ে চলমান অ্যাপ্লিকেশনগুলিকে পরিচালনা করে (ঠিক যেমন আপনার ল্যাপটপের OS আপনার অ্যাপগুলি পরিচালনা করে) ‍।

কুবারনেটিস একটি ক্লাস্টারের নোড জুড়ে কন্টেইনারের সময়সূচী নির্ধারণ করে। এটিতে বিভিন্ন ধরনের ইনফ্রাস্টাকচার কনস্টাক্টস (infrustructure contructs)(যেমন- প্রিমিটিভস (primitives)), কোনো অ্যাপ্লিকেশনের ইনস্টেন্স, লোড ব্যালেন্সার (Load Balancer), পারসিস্টেন্ট স্টোরেজ (Persistance Storage) এবং অন্যান্য সার্ভিস একত্রিত করে অ্যাপ্লিকেশন বানানো হয়।

কুবারনেটিস অটোমেশন (Automation) এবং এক্সটেনসিবিলিটি (Extensibility) সক্ষম করে এবং ব্যবহারকারীদেরকে পুনর্গঠনযোগ্য ও ঘোষণামূলকভাবে অ্যাপ্লিকেশন স্থাপন করতে দেয়। কুবারনেটিস ইকোসিস্টেমের সফ্টওয়্যার প্রডাক্ট এবং প্রজেক্টগুলি, কুবারনেটিস এপিআই (API) প্রসারিত করার জন্য সেই অটোমেশন এবং এক্সটেনসিবিলিটির সুবিধা নেয়। কুবারনেটিসের অটোমেশনকে ব্যবহার করে, কুবারনেটিসের টুলসগুলিকে আরও অ্যাক্সেসযোগ্য করে তোলা হয় অভিজ্ঞ কুবারনেটিস অনুশীলনকারীদের কাছে।

এটা যেসব সমস্যাতে দৃষ্টিপাত করে

ইনফ্রাস্ট্রাকচার অটোমেশন (Infrastructure automation) এবং ঘোষণামূলক কনফিগারেশন ম্যানেজমেন্ট (Declarative Configuration Management) দীর্ঘকাল ধরে একটি গুরুত্বপূর্ণ ধারণা, এবং ক্লাউড কম্পিউটিং জনপ্রিয়তা অর্জন করায় এটি আরও বেশি চাপে পড়ে। কম্পিউট রিসোর্সের (compute resources) চাহিদা বৃদ্ধি পাওয়ায় কম সংখ্যক ইন্জিনিয়ারের সাথে সার্ভিস প্রদান করতে সংস্থাগুলি চাপ অনুভব করে, এবং এটি পূরণের জন্য নতুন প্রযুক্তি এবং কাজের পদ্ধতিরই প্রয়োজন হয়। উপরন্তু, ক্লাউড কম্পিউটিং-এর (Cloud computing) জনপ্রীয়তা কন্টেনারাইজেশনের (Containerization) সাথে যুক্ত ছিল এবং যে সংস্থাগুলি ঐতিহ্যগত ইনফ্রাস্ট্রাকচারকে (Traditional infrastructure), অটোমেট করতে ব্যস্ত ছিল তাদেরই কনফিগারেশন (Configuration) এবং ডিপ্লয়মেন্ট (Deployment) অটোমেশন করার জন্য একটি প্রক্রিয়ার প্রয়োজন পরে।

এটা কিভাবে সাহায্য করে

ঐতিহ্যগতভাবে ইনফ্রাস্ট্রাকচার এস কোড (Traditional infrastructure as code) টুলসগুলির মতোই একই রকম পদ্ধতিতে কুবারনেটিসও অটোমেশনে সাহায্য করে কিন্তু কুবারনেটিসে ভার্চুয়াল বা ফিজিক্যাল মেশিনের তুলনায় কনফিগারেশন ড্রিফ্টে (Configuration Drift) বেশি প্রতিরোধী কন্টেইনারগুলির সাথে কাজ করার সুবিধা রয়েছে। কুবারনেটিস ঘোষণামূলকভাবে (declaratively) কাজ করে, যার মানে হল অপারেটররা কীভাবে কিছু করতে হবে সে সম্পর্কে নির্দেশনা প্রদান করার পরিবর্তে তারা যা করতে চায় সেটা সাধারণত ম্যানিফেস্ট (Manifest) ফাইল (যেমন YAML) হিসাবে বর্ণনা করে; কুবারনেটিস নিজে থেকেই “কিভাবে” করতে হবে সেটার যত্ন নেয়। এর ফলে কুবারনেটিস ইনফ্রাস্ট্রাকচার এস কোডের (Infrastructure as code) সাথে অত্যন্ত সামঞ্জস্যপূর্ণ।

কুবারনেটিস নিজেও নিজের নিরাময় (self-heal) করে। এর মানে হল যে কুবারনেটিস নিশ্চিত করে ক্লাস্টারের প্রকৃত অবস্থা সর্বদা অপারেটরের পছন্দসই অবস্থার সাথে মেলে। কুবারনেটিস কোনো বিচ্যুতি সনাক্ত করলে, একটি কুবারনেটিস কন্ট্রোলার (Kubernetes Controller) কাজে নামে এবং সেটিকে ঠিক করে। সুতরাং এটি যে ইনফ্রাস্ট্রাকচার (Infrastructure) ব্যবহার করে তা ক্রমাগত পরিবর্তীত হতে পারে, তাই কুবারনেটিস ক্রমাগত স্বয়ংক্রিয়ভাবে পরিবর্তিত হতে থাকে এবং নিশ্চিত করে এটি যাতে পছন্দসই অবস্থার সাথে মেলে।


সর্বশেষ পরিবর্তিত June 27, 2023: [bn] Merging dev-bn into main (#2177) (f3e278b)