আপনার অ্যাপ প্রকাশ করতে একটি পরিষেবা ব্যবহার করা

উদ্দেশ্য

  • কুবারনের্টিস-এ একটি পরিষেবা সম্পর্কে জানুন
  • label এবং labelSelector বস্তু একটি পরিষেবার সাথে কিভাবে সম্পর্কিত তা বুঝুন
  • একটি পরিষেবা ব্যবহার করে কুবারনেটিস ক্লাস্টারের বাইরে একটি অ্যাপ্লিকেশন প্রকাশ করুন

কুবারনেটিস পরিষেবার ওভারভিউ

কুবারনেটিস পডগুলো মরণশীল। পডগুলোর একটি জীবনচক্র আছে। যখন একজন কর্মী নোড মারা যায়, তখন নোডে চলমান পডগুলিও হারিয়ে যায়। একটি ReplicaSet আপনার অ্যাপ্লিকেশন চালু রাখতে নতুন পড তৈরির মাধ্যমে গতিশীলভাবে ক্লাস্টারটিকে পছন্দসই অবস্থায় ফিরিয়ে আনতে পারে৷ আরেকটি উদাহরণ হিসাবে, ৩টি প্রতিলিপি সহ একটি চিত্র-প্রসেসিং ব্যাকএন্ড বিবেচনা করুন। সেই প্রতিলিপিগুলি বিনিময়যোগ্য; ফ্রন্ট-এন্ড সিস্টেমের ব্যাকএন্ড প্রতিলিপি বা পড হারিয়ে গেলেও আবার তৈরি করা উচিত নয়। তাতে বলা হয়েছে, কুবারনেটিস ক্লাস্টারের প্রতিটি পডের একটি অনন্য আইপি ঠিকানা রয়েছে, এমনকি একই নোডে থাকা পডস, তাই পডগুলির মধ্যে স্বয়ংক্রিয়ভাবে পরিবর্তনগুলি সমন্বয় করার একটি উপায় থাকা দরকার যাতে আপনার অ্যাপ্লিকেশনগুলি কাজ করতে থাকে ৷

কুবারনেটিস-এ একটি পরিষেবা হল একটি বিমূর্ততা যা পডগুলির একটি যৌক্তিক সেট এবং একটি নীতি যার দ্বারা সেগুলি অ্যাক্সেস করা যায় তা সংজ্ঞায়িত করে৷ পরিষেবাগুলি নির্ভরশীল পডগুলির মধ্যে একটি আলগা সংযোগ সক্ষম করে৷ একটি পরিষেবা YAML (পছন্দের) বা JSON ব্যবহার করে সংজ্ঞায়িত করা হয়, যেমন সমস্ত কুবারনেটিস অবজেক্ট। একটি পরিষেবা দ্বারা লক্ষ্য করা পডের সেট সাধারণত একটি লেবেলনির্বাচক দ্বারা নির্ধারিত হয় (বিশেষে একটি নির্বাচক অন্তর্ভুক্ত না করে কেন আপনি একটি পরিষেবা পেতে পারেন তা নীচে দেখুন)।

যদিও প্রতিটি পডের একটি অনন্য আইপি ঠিকানা রয়েছে, তবে সেই আইপিগুলি পরিষেবা ছাড়া ক্লাস্টারের বাইরে প্রকাশ করা হয় না। পরিষেবাগুলি আপনার অ্যাপ্লিকেশনগুলিকে ট্রাফিক পেতে অনুমতি দেয়৷ ServiceSpec-এ টাইপ উল্লেখ করে পরিষেবাগুলিকে বিভিন্ন উপায়ে প্রকাশ করা যেতে পারে:

  • ClusterIP (ডিফল্ট) - ক্লাস্টারে একটি অভ্যন্তরীণ আইপিতে পরিষেবাটি প্রকাশ করে৷ এই ধরনের পরিষেবা শুধুমাত্র ক্লাস্টারের মধ্যে থেকে পৌঁছানো যায়।
  • NodePort - NAT ব্যবহার করে ক্লাস্টারে প্রতিটি নির্বাচিত নোডের একই পোর্টে পরিষেবাটি প্রকাশ করে। <NodeIP>:<NodePort> ব্যবহার করে ক্লাস্টারের বাইরে থেকে একটি পরিষেবা অ্যাক্সেসযোগ্য করে তোলে। ClusterIP এর সুপারসেট।
  • লোডব্যালেন্সার - বর্তমান ক্লাউডে একটি বাহ্যিক লোড ব্যালেন্সার তৈরি করে (যদি সমর্থিত হয়) এবং পরিষেবাতে একটি নির্দিষ্ট, বাহ্যিক আইপি বরাদ্দ করে৷ নোডপোর্টের সুপারসেট।
  • ExternalName - পরিষেবাটিকে externalName ক্ষেত্রের বিষয়বস্তুতে (যেমন foo.bar.example.com) ম্যাপ করে, একটি CNAME এর মান সহ রেকর্ড করুন। কোন ধরনের প্রক্সি সেট আপ করা হয় না. এই ধরনের v1.7 বা উচ্চতর kube-dns, অথবা CoreDNS সংস্করণ 0.0.8 বা উচ্চতর প্রয়োজন।

বিভিন্ন ধরনের পরিষেবা সম্পর্কে আরও তথ্য উৎস আইপি ব্যবহার করা টিউটোরিয়ালে পাওয়া যাবে। এছাড়াও পরিষেবার সাথে অ্যাপ্লিকেশন সংযোগ করা দেখুন৷

অতিরিক্ত, নোট করুন যে পরিষেবাগুলির সাথে কিছু ব্যবহারের ক্ষেত্রে রয়েছে যেগুলির মধ্যে একটি নির্বাচক সংজ্ঞায়িত করা নেই৷ নির্বাচক ছাড়া তৈরি করা একটি পরিষেবা সংশ্লিষ্ট এন্ডপয়েন্ট অবজেক্ট তৈরি করবে না। এটি ব্যবহারকারীদের ম্যানুয়ালি নির্দিষ্ট শেষ পয়েন্টে একটি পরিষেবা ম্যাপ করতে দেয়। কোন নির্বাচক না থাকার আরেকটি সম্ভাবনা হল আপনি কঠোরভাবে type: ExternalName ব্যবহার করছেন।

সারাংশ

  • বাহ্যিক ট্র্যাফিকের কাছে পডগুলিকে প্রকাশ করা
  • একাধিক পড জুড়ে ভারসাম্যপূর্ণ ট্রাফিক লোড করুন
  • লেবেল ব্যবহার করা

একটি কুবারনেটিস পরিষেবা হল একটি বিমূর্ত স্তর যা পডগুলির একটি যৌক্তিক সেটকে সংজ্ঞায়িত করে এবং সেই পডগুলির জন্য বহিরাগত ট্রাফিক এক্সপোজার, লোড ব্যালেন্সিং এবং পরিষেবা আবিষ্কার সক্ষম করে৷


পরিষেবা এবং লেবেল

একটি পরিষেবা পডের একটি সেট জুড়ে ট্রাফিককে রুট করে। পরিষেবাগুলি হল বিমূর্ততা যা আপনার আবেদনকে প্রভাবিত না করেই কুবারনেটে পডগুলিকে মরতে এবং প্রতিলিপি তৈরি করতে দেয়৷ নির্ভরশীল পডগুলির মধ্যে আবিষ্কার এবং রাউটিং (যেমন একটি অ্যাপ্লিকেশনে ফ্রন্টএন্ড এবং ব্যাকএন্ড উপাদান) Kubernetes পরিষেবা দ্বারা পরিচালিত হয়৷

পরিষেবাগুলি লেবেল এবং নির্বাচকদের ব্যবহার করে পডের একটি সেটের সাথে মেলে, একটি আদিম গ্রুপিং যা কুবারনেটসের বস্তুতে লজিক্যাল অপারেশনের অনুমতি দেয় . লেবেল হল কী/মান জোড়া বস্তুর সাথে সংযুক্ত এবং যেকোনো উপায়ে ব্যবহার করা যেতে পারে:

  • উন্নয়ন, পরীক্ষা এবং উৎপাদনের জন্য মনোনীত বস্তু
  • এম্বেড সংস্করণ ট্যাগ
  • ট্যাগ ব্যবহার করে একটি বস্তুকে শ্রেণীবদ্ধ করুন


লেবেলগুলি তৈরির সময় বা পরে বস্তুর সাথে সংযুক্ত করা যেতে পারে। এগুলি যে কোনও সময় পরিবর্তন করা যেতে পারে। আসুন এখন একটি পরিষেবা ব্যবহার করে আমাদের অ্যাপ্লিকেশনটি প্রকাশ করি এবং কিছু লেবেল প্রয়োগ করি৷


সর্বশেষ পরিবর্তিত October 15, 2024 at 3:18 AM PST: Merge pull request #48346 from windsonsea/metricy (50a9341)