Ansible Kubernetes (K8s) ইনভেন্টরি সোর্স

Ansible Kubernetes K8s Inabhentari Sorsa



এই পোস্টে, আমরা শিখব কিভাবে Ansible টুলে Kubernetes প্লাগইন ব্যবহার করতে হয়। Ansible-এ, বড় সংখ্যক কন্টেইনার পরিচালনা করা কঠিন। কিন্তু কন্টেইনারগুলি পরিচালনা করার সময় Ansible-এ Kubernetes ব্যবহার করা সহায়ক। এই নির্দেশিকায়, আমরা শিখব Kubernetes ইনভেন্টরি সোর্স কী এবং এটি কীভাবে Ansible-এ কাজ করে।

Google কুবারনেটস নামে সহজে অ্যাক্সেসযোগ্য ব্যবস্থাপনা সফ্টওয়্যার চালু করেছে যা K8s নামেও পরিচিত যা শূন্য-ডাউনটাইম ইনস্টলেশন বৈশিষ্ট্য, স্বয়ংক্রিয় প্রত্যাবর্তন এবং স্কেলেবিলিটি সহ একটি দূরবর্তী সেট মেশিনে ভার্চুয়ালাইজড কনফিগারেশন পরিচালনা করতে ব্যবহৃত হয় যা কুবারনেটস প্লাগইনকে অত্যন্ত অভিযোজনযোগ্য করে Ansible মধ্যে স্থাপত্য. প্রয়োজনীয় কার্যকারিতার জন্য REST API-এর প্রাপ্যতার মাধ্যমে, Kubernetes-এর প্রাথমিক লক্ষ্য হল অনেকগুলি কন্টেইনার নিয়ন্ত্রণের সাথে জড়িত জটিলতাগুলিকে গোপন করা।







Kubernetes-এর কনফিগারেশন ক্লায়েন্ট-সার্ভারের উপর ভিত্তি করে। যাইহোক, ডিফল্টরূপে, শুধুমাত্র একটি প্রধান সার্ভার আছে যা নিয়ন্ত্রণকারী হোস্ট হিসেবে কাজ করে। Kubernetes-এ, আমরা Kubernetes-এর কনফিগারেশনের জন্য মাল্টি-মেইন কন্ট্রোলারও ব্যবহার করতে পারি। K8s ইনভেন্টরি উত্স মাঝে মাঝে কন্ট্রোল সিস্টেমের জন্য প্রয়োজনীয় এবং পডগুলি নিয়ন্ত্রণ করতে রিমোট হোস্টে পরিষেবাগুলি কনফিগার করে। কিন্তু কিভাবে তা করতে হবে তার সুনির্দিষ্ট নির্দেশনা পেতে অসুবিধা রয়েছে। ফলস্বরূপ, আমরা কীভাবে একটি উত্তরযোগ্য প্লেবুক তৈরি করতে হয় তার উপর এই টিউটোরিয়ালটি প্রয়োগ করি যা একটি ডোমেনে পডগুলি বের করে এবং একটি Kubernetes ইনভেন্টরি উত্স তৈরি করে।



উত্তরে কুবারনেটস ইনভেন্টরি সোর্স ব্যবহার করার পূর্বশর্ত

Ansible-এ Kubernetes ইনভেন্টরি সোর্স ব্যবহার করতে, এই গাইড জুড়ে স্টেজ প্রসেস নির্দেশাবলী বা কমান্ড রয়েছে। আপনি যদি এটিতে এগিয়ে যেতে চান তবে আপনার প্রয়োজনীয় প্রস্তুতি রয়েছে তা নিশ্চিত করুন:



  • একটি উত্তরযোগ্য পরিস্থিতিতে কাজ করার জন্য, আমরা প্রথমে সার্ভারে Ansible টুল সেট আপ করি এবং নিশ্চিত করি যে আপনার কাছে Ansible সংস্করণ 2.11.7 আছে যাতে আমরা সহজেই Kubernetes প্লাগইন ব্যবহার করতে পারি।
  • Kubernetes প্লাগইন মূল্যায়ন করতে, আমাদের একটি কুবারনেটস ক্লাস্টার বিল্ট ইন সহ একটি দূরবর্তী সার্ভার ডিভাইস প্রয়োজন।
  • রিমোট হোস্ট বর্তমানে উত্তরযোগ্য নির্দেশাবলী এবং প্লেবুক, সেইসাথে একটি বিল্ট ইনভেন্টরি ফাইল চালানোর জন্য কনফিগার করা হয়েছে। টার্গেট রিমোট ডিভাইসের নাম K8s মাস্টার নোড।
  • পাইথনের সংস্করণটি 3.6 বা তার উপরে যা অবশ্যই Ansible কন্ট্রোলারের ডিভাইসে ইনস্টল করতে হবে। এটা লক্ষ্য দূরবর্তী হোস্ট ডিভাইস হতে পারে.
  • পাইথনের ওপেনশিফ্ট মডিউলের সংস্করণ 0.6 বা তার উপরে। আমাদের 3.11 বা তার উপরে সংস্করণের একটি pyYAML মডিউলও প্রয়োজন। উভয় মডিউল রিমোট সার্ভার ডিভাইসের পাশাপাশি কন্ট্রোলার ডিভাইসে সেট আপ করা আবশ্যক।

উদাহরণ:





এখানেই প্রথম উদাহরণ যেখানে আমরা উত্তরে কুবারনেটস প্রয়োগ করি। এটি করার জন্য, আমরা Kubernetes ইনভেন্টরি সোর্স বাস্তবায়নের জন্য যে কোনো উত্তরযোগ্য পরিবেশ ব্যবহার করি। Kubernetes ইনভেন্টরি প্লাগইন ব্যবহার করে নিম্নলিখিত তালিকাভুক্ত প্রক্রিয়াগুলি নিম্নলিখিত পরিস্থিতিতে সঞ্চালিত হয়:

  • Ansible-এ K8s ক্লাস্টারে নতুন নামস্থানের বাস্তবায়ন।
  • Ansible প্লেবুক ব্যবহার করে nginx পড তৈরি করা।
  • Ansible এ nginx স্থাপনার সৃষ্টি।

ধারণা এবং সম্পাদনকে সহজভাবে বোঝার জন্য, আমরা উদাহরণটি বেশ কয়েকটি ধাপে বাস্তবায়ন করি।



ধাপ 1: উত্তরে K8s ক্লাস্টারে নতুন নেমস্পেস প্রয়োগ করুন

প্রথম ধাপে, আমরা প্লেবুক তৈরি করি যাতে আমরা Ansible-এ “.yml” ফরম্যাটে বিষয়বস্তু লিখতে পারি। প্লেবুক তৈরি করতে, নিম্নলিখিত কমান্ডটি আমরা ব্যবহার করি:

[ মূল @ মাস্টার উত্তরযোগ্য ] # ন্যানো  nginx_pod.yml

এখন, “pod.yml” প্লেবুক তৈরি করা হয়েছে এবং Ansible-এর নতুন টার্মিনালে চালু করা হয়েছে। আমরা স্ক্রিপ্ট লেখা শুরু. প্লেবুকে, আমরা প্রথমে API সংস্করণটি সংজ্ঞায়িত করি যা আমরা Ansible পডে ব্যবহার করি যা 'v1'। আমরা যে নামস্থানটিকে সংজ্ঞায়িত করি তা হল 'অ্যানসিবল-নেমস্পেস'। তারপর, আমরা উত্তরযোগ্য-নামস্থানের মেটাডেটা তালিকাভুক্ত করি। মেটাডেটাতে, আমরা nginx সফ্টওয়্যার এবং লেবেল ব্যবহার করি যা এতে মান ফ্রন্টএন্ডের একটি স্তর রয়েছে। প্লেবুকের স্পেসে, আমরা নাম এবং চিত্রটি তালিকাভুক্ত করি যা পাত্রে সংরক্ষিত হয়; উভয়ই এতে nginx ধারণ করে।

ধাপ 2: Ansible এ ম্যানিফেস্ট ডকুমেন্ট তৈরি করুন

এখন, আমরা Ansible-এর একই ডিরেক্টরিতে আরেকটি ডকুমেন্ট তৈরি করি যা “.yml” ফরম্যাটে ডিপ্লয়মেন্ট ডকুমেন্ট। ম্যানিফেস্ট ডকুমেন্ট তৈরি করতে, Ansible টার্মিনালে নিম্নলিখিত কমান্ডটি ব্যবহার করুন:

[ মূল @ মাস্টার উত্তরযোগ্য ] # ন্যানো nginx_deployment.yml

ম্যানিফেস্ট ডকুমেন্টে, আমরা প্রথমে অ্যাপের সংস্করণটি আবার সংজ্ঞায়িত করি যা হল “app/v1”। তারপর, আমরা বলি এটি কি ধরনের ফাইল, এটি একটি স্থাপনার ফাইল কিনা। তারপর, আমরা নামস্থান সংজ্ঞায়িত করি যা উত্তর-নামস্থান। ইমপ্লিমেন্টেশন তৈরি করতে, উত্তরযোগ্য নামস্থানের ভিতরে দুটি প্রতিলিপি পডের সংখ্যা দেখায়। nginx চিত্রগুলি হল 1.14.2 যা পডে চালু করা হয়েছে৷ ম্যাচলেবেল প্যারামিটার স্পেক প্যারামিটারের অধীনে পড এবং তাদের স্পেসিফিকেশনের জন্য ট্যাগ প্রদান করে। যদি কোনোভাবে পডের ট্যাগগুলি কনফিগারেশনের তথ্যে উল্লেখ করা ট্যাগগুলির সাথে মিলে যায়, তাহলে প্রয়োগটি Ansible-এর ম্যানিফেস্ট ডকুমেন্টে ঘটে।

ধাপ 3: উত্তরে কুবারনেটস বাস্তবায়নের জন্য প্লেবুক তৈরি করুন

এখন, আমরা Ansible এ আরেকটি প্লেবুক তৈরি করতে চাই। এই প্লেবুকে, আমরা এতে কুবারনেটসের কার্যকারিতা বাস্তবায়ন করি। প্লেবুক তৈরি করতে নিম্নলিখিত কমান্ডটি ব্যবহার করুন:

[ মূল @ মাস্টার উত্তরযোগ্য ] # nano kubernetes_main.yml

প্লেবুকটি একই ডিরেক্টরিতে তৈরি করা হয়েছে যেখানে পূর্ববর্তী প্লেবুক এবং ম্যানিফেস্ট ডকুমেন্টগুলি Ansible এ সংরক্ষণ করা হয়েছে। প্লেবুকে, আমরা প্রথমে প্লেবুকের কার্যকারিতা নির্ধারণ করি যা আমরা বাস্তবায়ন করতে চাই। সংযোগ তৈরি করতে, আমরা দূরবর্তী হোস্টগুলি সরবরাহ করি যা আমরা লক্ষ্য করতে চাই। এখানে, আমরা 'সমস্ত' হোস্টকে লক্ষ্য করি। এর পরে, আমরা ভেরিয়েবলটিকে সংজ্ঞায়িত করি যাতে এটি সংরক্ষিত হয় সেই পাথটি ব্যবহার করে Ansible-এ পাইথন ইন্টারপ্রেটার চেক করা যায়। এখন, আমরা প্লেবুকের কাজগুলো সংজ্ঞায়িত করি। প্রথমত, আমরা মিনিকুব ডিভাইসের স্থিতি পরীক্ষা করি। এর পরে, আমরা প্লেবুকে একটি নতুন কুবারনেটস নামস্থান তৈরি করি। তারপর, দূরবর্তী ডিভাইসে nginx_pod.yml এবং nginx_deployment .yml-এর নকল করুন।

এই yml নথিগুলির মাধ্যমে, আমরা দূরবর্তী ডিভাইসে পড বাস্তবায়ন তৈরি করি। তারপর, আমরা দূরবর্তী ডিভাইসে নির্দিষ্ট স্থানে কুবারনেটস পড উপস্থিত আছে কি না তা পরীক্ষা করি।

প্লেবুক সমাপ্তির পরে, আমরা এখন ইনভেন্টরি ফাইল তৈরি করি যাতে আমরা উত্তরযোগ্য কন্ট্রোলার এবং টার্গেট রিমোট হোস্টের মধ্যে সংযোগ তৈরি করতে পারি।

সব:
হোস্ট:
k8s_Master_Node:
উত্তরযোগ্য_হোস্ট: 192.168.3.229
ansible_user: উত্তরযোগ্য
উত্তরযোগ্য_পাসওয়ার্ড: ********
উত্তরযোগ্য_সংযোগ: ssh
উত্তরযোগ্য_বন্দর: 22

[ মূল @ মাস্টার উত্তরযোগ্য ] # উত্তরযোগ্য-প্লেবুক kubernates_main.yml

এখানে কাঙ্ক্ষিত আউটপুট রয়েছে যেখানে আমরা দেখতে পাচ্ছি যে টার্গেট মেশিনে কাজগুলি সফলভাবে স্থাপন করা হয়েছে:

টার্গেট মেশিনে টাস্ক স্থাপন করার পরে, আমরা পরীক্ষা করি যে 'অ্যান্সিবল-নেমস্পেস' কুবারনেটস ক্লাস্টারে আছে কি না। আমরা নিম্নলিখিত 'grep' কমান্ড ব্যবহার করি:

[ মূল @ মাস্টার উত্তরযোগ্য ] # kubectl নামস্থান পান | grep উত্তর-নামস্থান

আপনি যদি কুবারনেটস ক্লাস্টারের নামস্থানে তৈরি পডটি পরীক্ষা করতে চান তবে চেক করতে নিম্নলিখিত কমান্ডটি লিখুন:

[ মূল @ মাস্টার উত্তরযোগ্য ] # kubectl get pods --namespace ansible-namespace

আপনি আগের আউটপুটে যেমন দেখেছেন, আমরা ডিভাইসে চলমান পডগুলি পাই। এখন, আমরা কুবারনেটস ক্লাস্টারে যে স্থাপনা করেছি তা পরীক্ষা করি। ইতিমধ্যে করা স্থাপনাগুলি পরীক্ষা করতে নিম্নলিখিত বিবৃতিটি ব্যবহার করুন:

[ মূল @ মাস্টার উত্তরযোগ্য ] # kubectl ডিপ্লোয়মেন্ট পাবেন --namespace ansible-namespace

উপসংহার

আমরা Ansible এ Kubernetes ইনভেন্টরি উৎস কি তা শিখেছি। Ansible-এ Kubernetes ইনভেন্টরি কীভাবে ব্যবহার করতে হয় তাও আমরা শিখেছি। তারপর, আমরা একটি উদাহরণ প্রয়োগ করেছি যাতে আমরা Ansible-এ Kubernetes ইনভেন্টরি সোর্সের কাজ সম্পর্কে আরও স্পষ্টভাবে জানতে পারি।