এডব্লিউএসে একটি বেসিক সিআই / সিডি পাইপলাইন দিয়ে ডিফল্টরূপে কীভাবে নিরাপদ কুবারনেটস ক্লাস্টার তৈরি করবেন

লিখেছেন ম্যাথু শেপার্ড এবং ডোনাল্ড কার্নেগি

কুবের-এটা কী?

কুবেরনেটস (উচ্চারণ "কো-বুড়-নেট-ইজ") হল অ্যাপ্লিকেশন পাত্রে প্রভিশন, স্কেলিং এবং অপারেশনটিকে স্বয়ংক্রিয় করার জন্য একটি ওপেন সোর্স প্ল্যাটফর্ম। শীতল বাচ্চারা প্রায়শই (আইওএইচও) খুব ভাল সংক্ষেপণ "কে 8 এস" ব্যবহার করে না। আপনার কনটেইনারযুক্ত কাজের চাপ উপলব্ধ এবং প্রয়োজনীয় হিসাবে স্কেলযোগ্য হবে তা নিশ্চিত করার সময় আপনার অবকাঠামো যথাসম্ভব দক্ষতার সাথে ব্যবহার করা কুবারনেটসের কাজ। কিছু সংস্থা জানিয়েছে যে তারা cloudতিহ্যবাহী ভিএম-ভিত্তিক আর্কিটেকচারের তুলনায় তাদের মেঘের অবকাঠামোগত ব্যয় 50 থেকে 70% কমাতে পারে।

আপনার সাফল্য পরীক্ষা করে দেখুন

ক্লাব নেটিভ কম্পিউটারিং ফাউন্ডেশন এবং এর পিছনে উন্মুক্ত উত্স সম্প্রদায়ের পক্ষে কুবেরনেটস একটি দুর্দান্ত সাফল্যের গল্প। গুগল ইঞ্জিনিয়ারদের একটি দলের নেতৃত্বে একটি ছোট প্রকল্প হিসাবে ২০১৪ সালের মাঝামাঝি সময়ে প্রথম ঘোষণা করা হয়েছিল, এটি পাবলিক ক্লাউড ইকোসিস্টেম জুড়ে একটি ডি ফ্যাক্টো কনটেইনার অর্কেস্ট্রেশন প্ল্যাটফর্ম এবং পণ্য হিসাবে পরিণত হয়েছে। মাইক্রোসফ্ট, গুগল, অ্যামাজন এবং আইবিএম সকলেই পরিচালিত কুবারনেটসের অফারটির কিছু ফর্ম রয়েছে। অবদান এবং গতির ক্ষেত্রে লিনাক্স কার্নেলের পরে কুবারনেটস দ্বিতীয় বৃহত্তম ওপেন সোর্স প্রকল্প। এটি পোকেমন সক্ষম করা থেকে শুরু করে এইচবিও জিও গ্রাহকগণ সহজেই গেম অফ থ্রোনস সিজন 7 এ স্ট্রিম করতে পারবেন তা নিশ্চিত করার লক্ষ্যে প্রচুর শীতল কাজের চাপের জন্য এটি ব্যাপকভাবে ব্যবহৃত হয়।

অবিচ্ছিন্ন কুবারনেটস

আধুনিক ওয়েব অ্যাপ্লিকেশনগুলির ব্যবহারকারী এবং বিকাশকারী হিসাবে, আমরা প্রত্যাশা করি যে সেগুলি 24 ঘন্টা, সপ্তাহে 7 দিন উপলব্ধ থাকে এবং সেগুলির দিনে কয়েকবার নতুন সংস্করণ সরবরাহ করতে পারে। এই লক্ষ্য অর্জনের জন্য কুবার্নিটস একা যথেষ্ট নয়। এটি নিশ্চিত করে যে আমাদের কন্টেইনারযুক্ত অ্যাপ্লিকেশনগুলি কখন এবং কোথায় আমরা চাই এবং সেখানে তাদের প্রয়োজনীয় সরঞ্জাম এবং সংস্থান রয়েছে run তবে আমাদের ইঞ্জিনিয়ারদের পুরোপুরি ক্ষমতায়ন করার জন্য আমাদের কুবারনেটসের আশেপাশে একটি সিআই / সিডি পাইপলাইন তৈরি করতে হবে।

গিটপস হ'ল কুবারনেটস ক্লাস্টার স্টেটের সত্যতার ঘোষণামূলক উত্স হিসাবে গিটের ব্যবহারকে বর্ণনা করার জন্য ওয়েভওয়ার্কসের দ্বারা তৈরি একটি শব্দ। গিট সিস্টেম স্বাস্থ্যের উপর নজর রাখার জন্য আমাদের মাধ্যম হয়ে ওঠে এবং আমরা গিটে কনস্ট্রাক্ট ব্যবহার করি, যেমন। খ। অনুরোধগুলি টানুন, মেঘের পরিকাঠামোর রাজ্যের সাথে গিটে থাকা রাষ্ট্রটিকে মার্জ করার মাধ্যম হিসাবে। সংক্ষেপে, অনুমোদিত টানা অনুরোধগুলির ফলে উত্পাদনে লাইভ পরিবর্তন ঘটে। এটি একটি খুব শক্তিশালী পদ্ধতির কারণ একটি প্রমাণিত উত্স কোড কর্মপ্রবাহ অবকাঠামো পরিচালনা করতে ব্যবহার করা যেতে পারে। যদি আমরা এটি পুরোপুরি বুঝতে পারি তবে আমরা পুরানো বিদ্যালয়ের আমলাতান্ত্রিক পরিবর্তন নিয়ন্ত্রণ প্রক্রিয়াগুলি এড়াতে পারি যেগুলি জটিল, খুব বেশি সময় নিতে পারে, এবং দায়বদ্ধ হতে পারে না। আপনার অবকাঠামোতে পরিবর্তনগুলি সর্বদা 100% দৃশ্যমান, সনাক্তযোগ্য এবং দায়বদ্ধ। ইতিহাস স্থায়ীভাবে গিট সংগ্রহস্থলে সংরক্ষণ করা হয় এবং ইতিহাসের যে কোনও বিন্দুতে ফিরে আসা বাতাসের মতো।

কেন আমি কুবারনেটস ব্যবহার করব?

পাত্রে ইতিমধ্যে ক্লাউড কম্পিউটিংয়ের একটি দুর্দান্ত সাফল্যের গল্প। তারা আমাদের টুলবক্সে তুলনামূলকভাবে স্বল্প সময় ব্যয় করেও তারা আধুনিক ক্লাউড কম্পিউটিংয়ের একটি অবিচ্ছেদ্য অঙ্গ হয়ে গেছে এবং অনেক জনপ্রিয় অ্যাপ্লিকেশন তাদের দ্বারা ব্যবহৃত হয়। তবে ধারক ব্যবস্থা, পরিচালনা এবং ধারক সিস্টেম রক্ষণাবেক্ষণের সাথে জড়িত প্রচেষ্টা খুব বড় হতে পারে। এখানেই কুবেরনেটস আসে। কুবেরনেটস কনটেইনারাইজেশনের সমস্ত দুর্দান্ত শক্তির উপর নির্ভর করে এবং তাদের সহজ স্থাপনা এবং পরিচালনার জন্য একটি প্ল্যাটফর্ম সরবরাহ করে।

কুবেরনেটস ডিভোপস-এর জন্য সক্ষম is এটি কী ডিভোপস অনুশীলনগুলি বাস্তবায়নে সহায়তা করে এবং সংস্থাগুলিকে ডিভোপস বাস্তবায়নের পথ প্রশস্ত করে। আপনি যেখানে এটি ইনস্টল করেন না কেন, এটি আপনার ল্যাপটপে, মেঘ সরবরাহকারী বা কোনও অন-প্রাঙ্গনে ডেটা সেন্টারে থাকুক না কেন, এটি সম্পূর্ণরূপে সামঞ্জস্যপূর্ণ পরিবেশ সহ আপনার ধারকযুক্ত অ্যাপ্লিকেশনগুলির স্বয়ংক্রিয় স্থাপনা সরবরাহ করে। কুবারনেটসের সাহায্যে সাইটটি নির্মাণের এবং সফলতার সাথে পরীক্ষার দিনগুলি শেষ হয়ে গেছে, কেবলমাত্র আপনার অ্যাপ্লিকেশনটি পরীক্ষা বা উত্পাদন পরিবেশে আলাদা আচরণ করে!

YATR? (অন্য টিউটোরিয়াল, সত্যিই?)

সেখানে অনেক কুবারনেটস টিউটোরিয়াল আছে, তবে কেন অন্য একটি লিখবেন? ভাল প্রশ্ন! মজা করার জন্য এবং গ্রাহকদের জন্য কুবারনেটস ক্লাস্টারগুলি তৈরি করার সময়, আমরা এমন টিউটোরিয়াল দেখিনি যা এডাব্লুএস-তে একটি ক্লাস্টার স্থাপনের জন্য প্রয়োজনীয় সমস্ত টুকরো সংক্ষেপ করে যা উত্পাদনের জন্য প্রস্তুত হতে পারে। বেশিরভাগ ডকুমেন্টেশন সেখানে রয়েছে, তবে এটি ট্র্যাক করে এটি প্রতিটি পরিস্থিতিতে কীভাবে কাজ করে তা খুঁজে বের করার জন্য এটি একটি ট্রেজার হান্ট nt এটি কারওর পক্ষে প্রথম কুবেরনেটস পাইলট শুরু করা বা স্থানীয় মিনিক्यूब ক্লাস্টার থেকে পদার্পণ করা বিশেষত কঠিন করে তোলে।

এই টিউটোরিয়ালটির উদ্দেশ্য হ'ল এই ফাঁকটি বন্ধ করা এবং কুবেরনেটস ক্লাস্টারের ধাপে ধাপে কাঠামোটি ব্যাখ্যা করা:

  • উচ্চ প্রাপ্যতা: আমরা নিশ্চিত করতে চাই যে আমাদের পরিবেশগুলি ত্রুটিগুলি পরিচালনা করতে পারে এবং আমাদের কিছু নোডগুলি নীচে চলে যায় বা কোনও এডাব্লুএস উপলভ্যতা অঞ্চল নিচে চলে গেলে আমাদের ধারকযুক্ত অ্যাপ্লিকেশনগুলি চলতে থাকবে। এটি অর্জনের জন্য, কুবারনেটস মাস্টার্স এবং নোডগুলি 3 এডাব্লুএস অ্যাভায়বিলিটি জোনে চালিত হয়।
  • ন্যূনতম সুবিধার নীতিটি প্রয়োগ করে: ডিফল্টরূপে, সমস্ত পডকে একটি সীমাবদ্ধ সুরক্ষা প্রসঙ্গে চালানো উচিত। আপনি কুবেরনেটস ক্লাস্টার বা অন্তর্নিহিত এডাব্লুএস পরিবেশে পরিবর্তন করতে সক্ষম হবেন না। যে কোনও পোড যা কুবেরনেটস ক্লাস্টারে পরিবর্তন করতে হবে তার যথাযথ ভূমিকা এবং নীতিগুলির সাথে একটি নামকৃত পরিষেবা অ্যাকাউন্ট ব্যবহার করা উচিত। যদি কোনও পডকে AWS API এ কল করার প্রয়োজন হয় তবে পডের প্রয়োজনীয় অনুমতি রয়েছে এবং কেবল অস্থায়ী আইএএম শংসাপত্র ব্যবহার করা হয় তা নিশ্চিত করার জন্য কলগুলি রাউট করা উচিত। ডিফল্টরূপে পডগুলি চলছে এবং ক্লাস্টার কনফিগারেশনটি পরিবর্তন করা যায় না তা নিশ্চিত করতে আমরা কুবেরনেটসের ভূমিকা ভিত্তিক অ্যাক্সেস কন্ট্রোল (আরবিএসি) ব্যবহার করে এটি করি। যদি কিছু ক্লাস্টার পরিষেবাদির অনুমতি প্রয়োজন হয়, আমরা একটি নির্দিষ্ট পরিষেবা অ্যাকাউন্ট তৈরি করি, এটি প্রয়োজনীয় অনুমতিগুলির রাজ্যে আবদ্ধ (অর্থাত্ ক্লাস্টার-প্রশস্ত বা কেবলমাত্র একটি নেমস্পেসে), এবং সেই পরিষেবা অ্যাকাউন্টকে প্রয়োজনীয় অনুমতিগুলি দেয়। এডাব্লুএস এপিআইতে অ্যাক্সেসটি কুবের 2iam এর মাধ্যমে মধ্যস্থতা করা হয়। এডাব্লুএস এপিআই-র জন্য নির্ধারিত শুঁটি থেকে সমস্ত ট্র্যাফিক কুবের 2iam এ পুনঃনির্দেশিত। শুঁটি কনফিগারেশনের টীকাগুলির উপর ভিত্তি করে, কুবে 2 আইয়াম টীকাতে নির্দিষ্ট ভূমিকার সাথে মেলে এমন অস্থায়ী শংসাপত্রগুলি পেতে এবং তাদেরকে কলারে ফেরত দেওয়ার জন্য AWS এপিআই কল করে। ন্যূনতম সুযোগ-সুবিধার নীতিটি প্রয়োগ করা হয়েছে এবং নীতিগুলি নিষ্ক্রিয় করা যায় না তা নিশ্চিত করার জন্য অন্যান্য সমস্ত এডাব্লুএস এপিআই কলগুলি কুবের 2 আইমের মাধ্যমে পাঠানো হয়েছে।
  • রুট 53 এবং ক্লাসিক লোড ব্যালান্সারগুলিতে একীভূত: আমরা যখন কোনও অ্যাপ্লিকেশন স্থাপন করি, তখন এটি কনফিগারেশনে আপনাকে কীভাবে এটি বিশ্বের কাছে উপলব্ধ করা হবে এবং কোথায় এটি পাওয়া যায় এবং এটি আমাদের জন্য স্বয়ংক্রিয় করার জন্য তা ঘোষণা করার ক্ষমতা রাখতে চাই। কুবারনেটস স্বয়ংক্রিয়ভাবে একটি অ্যাপ্লিকেশনে একটি ক্লাসিক লোড ব্যালেন্সার সরবরাহ করে এবং বহিরাগত-ডিএনএস আমাদের এটিকে কোড হিসাবে পরিকাঠামো জুড়ে সহজেই ব্যবহারযোগ্য একটি সম্পূর্ণ যোগ্য ডোমেন নাম (এফকিউডিএন) নির্ধারণ করতে দেয়।
  • একটি বেসিক সিআই / সিডি পাইপলাইন কাটা হয়েছে: আমরা কীভাবে ক্লাস্টারে পরিবর্তন আনব এবং কীভাবে আমরা অ্যাপ্লিকেশনগুলি স্থাপন / আপডেট করব তা স্বয়ংক্রিয় করতে চাই। কনফিগারেশন ফাইলগুলি যা আমাদের ক্লাস্টার কনফিগারেশন নির্দেশ করে তা একটি গিট সংগ্রহস্থলে পাস করা হয় এবং সিআই / সিডি পাইপলাইনগুলি ক্লাস্টারে প্রয়োগ করে। এটি অর্জনের জন্য, আমরা কুবেরনেটস ক্লাস্টারে আমাদের মূল শাখায় প্রতিশ্রুতিবদ্ধ কনফিগারেশনটি প্রয়োগ করতে ট্র্যাভিস-সিআই প্রয়োগ করি। এটি গিটআপসের দিকে প্রথম পদক্ষেপ, তবে এটি আমাদের সম্পূর্ণ গিটঅ্যাপস ক্ষমতা দেয় না।

টিউটোরিয়ালটির শেষে আমরা একটি কুবেরনিটস ক্লাস্টার পাই যা দেখতে এটির মতো দেখাচ্ছে:

আমাদের শেষ-রাষ্ট্রের কুবেরনেটস ক্লাস্টার

শুরু করার আগে

আমরা ধরে নিই যে আপনি ইতিমধ্যে কুবারনেটের সাথে পরিচিত। আপনি যদি কুবেরনেতেস থেকে নতুন হন তবে কুবেরনেটস বেসিকস টিউটোরিয়ালটি পড়ুন এবং মূল ধারণাগুলির সাথে নিজেকে পরিচিত করুন।

আমাদের ক্লাস্টার তৈরি করতে আমাদের নীচের সরঞ্জামগুলি ইনস্টল করা আছে তা নিশ্চিত করতে হবে:

  • kubectl kubectl (কুবেরনেটস কন্ট্রোল) একটি কুবেরনেটস ক্লাস্টারের সাথে ইন্টারেক্ট করার জন্য একটি কমান্ড লাইন টুল, আপনার কম্পিউটারে (মিনিক्यूबের সাথে) অথবা মেঘে স্থানীয়ভাবে চলমান।
  • kops কুবেরনেটস অপারেশনস (কোপস) প্রকল্পটি মেঘে কুবেরনেটস ক্লাস্টারগুলি তৈরি এবং পরিচালনা করার জন্য সরঞ্জাম সরবরাহ করে। গুগল ক্লাউড এবং এডাব্লুএস (বিটাতে অন্য সরবরাহকারীদের সাথে) বর্তমানে সমর্থিত। এই টিউটোরিয়ালে, আমরা কোপস ব্যবহার করে আমাদের ক্লাস্টার তৈরি এবং পরিচালনা করব।
  • টেরাফর্ম টেরাফর্ম একটি আইএসি (কোড হিসাবে ইনফ্রাস্ট্রাকচার) সরঞ্জাম যা ব্যবহারকারীদের উচ্চ স্তরের কনফিগারেশন ভাষায় অবকাঠামোটি সংজ্ঞায়িত করতে দেয় যা এডাব্লুএস বা গুগল ক্লাউড প্ল্যাটফর্মের মতো পরিষেবা সরবরাহকারীতে অবকাঠামো তৈরিতে ব্যবহার করা যেতে পারে। কপস তৈরি করা আইএএম নীতিমালা এবং সংশোধন করার জন্য আমরা টেরফর্ম ব্যবহার করব K
  • এডাব্লুএস সি এল আই এডাব্লুএস সি এল আই এডব্লিউএসের সাথে আলাপচারিতার জন্য একটি কমান্ড লাইন সরঞ্জাম। এএডডাব্লুএসে অপারেশন করার জন্য কপস এবং টেরফর্ম দ্বারা এটি প্রয়োজনীয় is

ইনস্টলেশন নির্দেশাবলীর জন্য, সরবরাহিত লিঙ্কগুলি দেখুন।

এই টিউটোরিয়ালটি কুবারনেটস v1.8 এবং কোপস ভি 1.8.1 দিয়ে তৈরি হয়েছিল।

আমরা হোমব্রু দিয়ে ম্যাক ওএস এক্স পরিচালনা করি। আমাদের ইনস্টল করতে নিম্নলিখিত কমান্ডগুলি চালাতে হয়:

w ব্রিউ আপডেট $ ব্রিউ ইনস্টল কুবেক্টল w ব্রিউ ইনস্টল কোপস $ ব্রিউ ইনস্টল পাইথন 3 $ ইজি_সিন্টল পিপ $ পাইপ ইনস্টল অ্যাডক্লিসি - আপগ্রেড - ব্যবহারকারী $ এক্সপোর্ট PATH = ~ / .local / বিন: AT PATH $ ব্রিউ ইনস্টল টেরাফর্ম

গুচ্ছ তৈরি করুন

পদক্ষেপ 1: আমাদের সংগ্রহশালা ক্লোন করুন

it গিট ক্লোন https://github.com/slalom-london/k8s- টিউটোরিয়াল

পদক্ষেপ 2: রুট 53 এ ক্লাস্টারের জন্য ব্যবহার করতে একটি এফকিউডিএন সেট আপ করুন

আমরা সেট করতে যাচ্ছি এমন কুবারনেটস ক্লাস্টারটি রুট 53 এ হোস্ট করা একটি এফকিউডিএন ব্যবহার করে সার্ভিস এন্ডপয়েন্টস এবং এপিআই নিয়ন্ত্রণ বিমান সরবরাহ করতে। আপনি একটি নতুন এফকিউডিএন নিবন্ধন করতে পারেন বা বিদ্যমান এফকিউডিএন স্থানান্তর করতে পারেন। এই প্রতিটি বিকল্পের জন্য, এডাব্লুএস এর মাধ্যমে একটি পূর্ণ পদক্ষেপ সরবরাহ করে:

পদক্ষেপ 3: কক্সের প্রয়োজনীয়তা তৈরি করুন

কোপসকে ক্লাস্টার তৈরি করার জন্য, এস ক্লোস্টার কনফিগারেশন এবং একটি আইএএম ব্যবহারকারী অ্যাকাউন্ট নীচের নির্দেশিকাগুলি সংযুক্ত করে সংরক্ষণ করতে এস 3 স্টোরেজ প্রয়োজন:

AmazonEC2 ফুলঅ্যাক্সেস অ্যামাজন রুট 53 ফুলঅ্যাকসেস অ্যামাজন এস 3 ফুলঅ্যাক্সেস আইএএমফুলঅ্যাকসেস অ্যামাজনভিপিসিফুলআ্যাকসেস

prereqs / kops_pre_reqs.tf এটি আপনার জন্য তৈরি করবে। এটি একটি এস 3 বালতিও তৈরি করবে যা আমাদের টেরফর্ম স্থিতির জন্য রিমোট স্টোরেজ হিসাবে ব্যবহৃত হবে। এটি একাধিক ব্যবহারকারীকে সংঘাত ছাড়াই কোড হিসাবে এক সেট অবকাঠামো নিয়ে কাজ করতে দেয়। আপনার নির্বাচিত বালতি নামের সাথে {my_bucket_name} এবং {my_tf_bucket_name replace প্রতিস্থাপন করতে আপনাকে ফাইল আপডেট করতে হবে।

তারপরে নিম্নলিখিত কমান্ডগুলি চালান:

$ সিডি প্রয়োজনীয়তা $ টেরাপেরফ থিম $ টেরফর্ম প্ল্যান $ টেরফর্ম প্রয়োগ

আপনি যখন আপনার এডাব্লুএস অ্যাকাউন্টে লগইন করবেন, আপনি এখন নতুনভাবে তৈরি করা কপস আইএএম ব্যবহারকারী, কপস স্টেট স্টোরের জন্য একটি এস 3 বালতি এবং টেরফর্ম স্টেট স্টোরের জন্য অন্য একটি এস 3 বালতি দেখতে পাবেন

পদক্ষেপ 4: ক্লাস্টারটি পাওয়ার জন্য কপস ব্যবহার করুন

পূর্ববর্তী পদক্ষেপে আমরা কপসের জন্য একটি আইএএম অ্যাকাউন্ট তৈরি করেছি। এই অ্যাকাউন্টটি ব্যবহার করার জন্য এখন আমাদের AWS CLI ক্লায়েন্ট সেটআপ করা দরকার। টেররাফর্ম আগের ধাপে কী তৈরি হয়েছিল তার স্টেট সংরক্ষণ করতে যে ফাইলটি ব্যবহার করে সেখান থেকে আমরা কপস আইএএম আইডি এবং সিক্রেট পেতে পারি। আপনার পাঠ্য সম্পাদকটিতে terraform.tfstate খুলুন এবং নিম্নলিখিত বিভাগটি সন্ধান করুন:

{Iam_id} এবং {aws_secret_key} ক্ষেত্রে মানটির একটি নোট তৈরি করুন এবং নিম্নলিখিত কমান্ডটি চালান:

ws aws কনফিগার - প্রোফাইলে কপস এডাব্লুএস অ্যাক্সেস কী আইডি [কোনওটি নয়]: {iam_id} এডাব্লুএস সিক্রেট অ্যাক্সেস কী [কোনও নয়]: ws aws_secret_key the ডিফল্ট অঞ্চলের নাম [কোনও নয়]: {আপনার_চোজন_আওস_গ্রেইন} ডিফল্ট আউটপুট ফর্ম্যাট [কোনও নয়]: পাঠ্য

এরপরে আমাদের কিছু পরিবেশের ভেরিয়েবল সেট করা দরকার যাতে কপসরা জানতে পারে যে কোন এডাব্লুএস আইএএম অ্যাকাউন্ট ব্যবহার করতে হবে এবং তার স্টেট স্টোরটি কোথায় রাখা উচিত:

$ রফতানি AWS_PROFILE = kops $ রফতান KOPS_STATE_STORE = s3: // {my_bucket_name}

এখন মূল ইভেন্টের জন্য - আসুন আমাদের ক্লাস্টার তৈরি করতে কপস ব্যবহার করুন। আপনার AWS অঞ্চল, ডিএনএস অঞ্চল এবং আপনি যে ক্লাস্টারের নামটি বেছে নিয়েছেন তা প্রতিস্থাপন করে নিম্নলিখিত কমান্ডটি চালান:

ops কোপস ক্লাস্টার তৈরি করে - ক্লাউড আওস bas - বেসেশন \ - নোড-কাউন্ট 3 n - নোড-সাইজ t2.medium \ --মাস্টার-সাইজ t2.medium \ - জোনেন {আপনার_নির্বাচিত_আ_স_আগ্রেশন} বি, _ আপনার_নির্বাচিত_আজ_ অঞ্চল} সি \ - মাস্টার অঞ্চলগুলি _ আপনার_নির্বাচিত_আস_ অঞ্চল} বি, {আপনার_নির্বাচিত_আস_আগ্রেশন {সি se - ডিএনএস-জোন {আপনার_ডেন্স_জোন cal working -কোটকিং - working আপনার_ক্লাস্টার_নাম} \ - আউট = কে 8 এস \ --টারাজ = টেরফর্ম - আইজ

এই কমান্ডটি কপসকে বলে যে আমরা একটি ক্লাস্টার তৈরি করতে চাই যা:

  • এডাব্লুএস ব্যবহার করে
  • নির্দিষ্ট প্রতিটি প্রাপ্যতা অঞ্চলে আকারের t2.medium এর একটি মাস্টার নোড রয়েছে
  • T2.medium আকারের 3 টি কার্যকরী নোড রয়েছে। কপস সমস্ত প্রাপ্যতা অঞ্চল জুড়ে সমানভাবে কর্মী নোডগুলি বিতরণ করে
  • একটি ব্যক্তিগত নেটওয়ার্ক টোপোলজি ব্যবহার করে। এর অর্থ হ'ল সমস্ত নোডের ব্যক্তিগত আইপি ঠিকানা রয়েছে এবং পাবলিক ইন্টারনেটের মাধ্যমে সরাসরি অ্যাক্সেসযোগ্য নয়
  • ক্যালিকোটি একটি ধারক নেটওয়ার্ক ইন্টারফেস হিসাবে ব্যবহার করে এবং প্রাইভেট নেটওয়ার্ক টপোলজির প্রয়োজনীয়তার কারণে কুবনেট প্রতিস্থাপন করে
  • কুবেরনেটস অ্যাক্সেস অনুমতিগুলির জন্য আরবিএসি ব্যবহার করে
  • টাউরাফর্ম কনফিগারেশন ফাইলে বর্ণিত --আউট দ্বারা নির্দিষ্ট ডিরেক্টরিতে লেখা হবে

কোপস একটি সদ্য নির্মিত কে 8 এস ডিরেক্টরিতে বেশ কয়েকটি টেরেরফর্ম কনফিগারেশন ফাইল তৈরি করে যা ক্লাস্টার তৈরি করতে ব্যবহার করা যেতে পারে। আমরা আমাদের ক্লাস্টার তৈরি করার আগে আসুন একটি কনফিগারেশন ফাইল যুক্ত করুন যা টেরফর্মকে আমাদের সদ্য তৈরি করা এস 3 বালতিতে স্থিতি স্টোরেজ রাখতে বলে।

$ সিডি কে 8 এস $ টেরাপেরফ থিম $ টেরাফর্ম প্ল্যান $ টেরাফর্ম প্রয়োগ করুন

আপনার ক্লাস্টারটি উপলব্ধ হতে 10 থেকে 15 মিনিটের মধ্যে সময় লাগবে। আপনি নিম্নলিখিত কমান্ডটি চালিয়ে ক্লাস্টারের স্থিতি পরীক্ষা করতে পারেন:

ops কোপস ক্লাস্টারগুলিকে বৈধতা দেয়

ক্লাস্টারটি শেষ হয়ে গেলে, আপনাকে নীচের মতো আউটপুট দেখতে হবে:

কুবেটেল প্রসঙ্গ থেকে গুচ্ছ ব্যবহার: cluster.zigzag-london.com
Cluster.zigzag-london.com দেখুন
ইনস্ট্যান্স গ্রোপস নাম রোল মেশিন টাইপ মিন ম্যাক্স সাব সাবটেস বেস বেস বেস -২ ইইউ-পশ্চিম -৩ এ, ইউটিলিটি-ইইউ-পশ্চিম -১ বি, ইউটিলিটি-ইইউ-ওয়েস্ট -1 সি মাস্টার-ইউ-ওয়েস্ট -1 এ মাস্টার t2.medium 1 1 ইইউ-ওয়েস্ট -1 এ মাস্টার-ইইউ-ওয়েস্ট -1 বি মাস্টার t2.medium 1 1 ইইউ-ওয়েস্ট -1 বি মাস্টার-ইউ-ওয়েস্ট -1 সি মাস্টার t2.medium 1 1 ইইউ-ওয়েস্ট -1 সি জংশন t2.medium 3 3 ইইউ-ওয়েস্ট -1 এ, ইইউ-ওয়েস্ট -1 বি, ইইউ-ওয়েস্ট -1 সি
নোড স্ট্যাটাস নাম রোল প্রস্তুত ip-172-20-107-234.eu-পশ্চিম-1.compute.in অন্তর্নিহিত মাস্টার সঠিক আইপি -172-20-124-39.eu-West-1.compute.in আন্তঃনীয় নোড সত্য আইপি -172 -20-44-152.eu- পশ্চিম-1.compute.in অন্তর্নিহিত মাস্টার ট্রু আইপি-172-20-60-188.eu- পশ্চিম-1.compute.in আন্তঃনীয় নোড সত্য ip-172-20-79-79.eu -পশ্চিম -১.কমপুট.ইনটার্নাল মাস্টার সত্য আইপি -172-20-87-125.eu-পশ্চিম-1.compute.in আন্তঃনীয় নোড সত্য
আপনার ক্লাস্টার.জিগজাগ- লন্ডন ডটকম ক্লাস্টার প্রস্তুত

সিআই / সিডি পরিবেশ স্থাপন করা

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

এই টিউটোরিয়ালটির জন্য আমরা ট্র্যাভিসিসিআই, মেঘ-ভিত্তিক সিআই পরিষেবা ব্যবহার করছি। ট্র্যাভিসিসিআই যতক্ষণ না বিনামূল্যে:

  • তারা গিথুবে আপনার সংগ্রহশালা হোস্ট করে
  • ভান্ডারটি সর্বজনীনভাবে অ্যাক্সেসযোগ্য

পদক্ষেপ 1: অ্যাকাউন্ট এবং ক্লোন সংগ্রহস্থল সেট আপ করুন

  • গিটহাবে নেভিগেট করুন এবং সাইন ইন করুন
  • একটি নতুন, খালি সংগ্রহস্থল তৈরি করুন এবং এর নাম দিন "কে 8 এস-সিআই"।
  • আপনার স্থানীয় কম্পিউটারে এই সংগ্রহস্থলটি ক্লোন করুন:
it গিট ক্লোন
  • ট্র্যাভিসিসিআইতে নেভিগেট করুন এবং আপনার গিটহাব অ্যাকাউন্ট দিয়ে সাইন ইন করুন। উপরের ডানদিকে আপনার নামটি ক্লিক করে আপনার ব্যবহারকারী প্রোফাইলে নেভিগেট করুন।
  • সেই সংগ্রহস্থলের জন্য ট্র্যাভিসিসিআই সক্ষম করতে গিটহাব সংগ্রহস্থলের পাশের স্লাইডারটি ক্লিক করুন।

পদক্ষেপ 2: সেটআপ ট্রিগার

যেহেতু আমরা গিটঅপস অনুশীলন করছি, আমরা কেবল অনুমোদিত অনুমোদনের অনুরোধে মোতায়েন করতে চাই। আপনি আরও বিকল্পসমূহ → সেটিংস ক্লিক করে ট্র্যাভিসে এটি কনফিগার করতে পারেন।

  • নিশ্চিত করুন যে বিল্ড পুশ শাখাগুলি পরীক্ষা করা হয়েছে
  • নিশ্চিত করুন যে "পুশ-পুল অনুরোধগুলি তৈরি করুন" চেক করা হয়েছে

ট্র্যাভিস এর সর্বাধিক নির্দেশনাটি আপনার ভাণ্ডারে সঞ্চিত যমল ফাইল থেকে পান। আপনার সংগ্রহস্থলের মূলটিতে .travis.yml নামে একটি খালি ফাইল তৈরি করুন এবং আমরা এটি আমাদের সংগ্রহস্থলের .travis.yml ফাইলটি ব্যবহার করে কনফিগার করতে পারি:

  • লাইন 1: নির্দেশ করে যে কেবলমাত্র একটি বিল্ড মাস্টার শাখায় করা উচিত। একটি বাস্তব বিশ্বের পরিবেশে, আমরা সম্ভবত একটি শাখা অফিসে ধাক্কা কার্যকর করতে পারি, তবে উত্পাদন পরিবেশে নয়, একটি পরীক্ষার পরিবেশে। একটি উপায় হ'ল পরিবেশ স্ক্রিপ্টগুলি ব্যবহারের স্ক্রিপ্টে শর্তযুক্ত লজিক প্রয়োগ করতে। তবে এই পোস্টের জন্য এটি অনুমোদিত নয়।
  • লাইন 4: ইঙ্গিত করে যে আমাদের নির্ভরতাগুলি ইনস্টল করতে sudo সহ আমাদের রুট সুবিধাগুলি প্রয়োজন
  • লাইন 5: এটি এই ব্লকের শুরু যেখানে আমরা আমাদের প্রতিটি স্ক্রিপ্টকে সম্পাদনযোগ্য করে তোলার জন্য অনুমতিগুলি সেট করেছিলাম।
  • লাইন 10: এটি ব্লকের শুরু যেখানে আমরা স্ক্রিপ্টগুলি নির্দিষ্ট করি যেখানে সিআই এনভায়রনমেন্ট সেটআপ করার জন্য প্রথমে চালানো দরকার যা আমরা প্রকৃত স্থাপনার কাজ করে স্ক্রিপ্টগুলি চালাতে পারি।
  • লাইন 13: এটি এই ব্লকের শুরু যেখানে আমরা স্ক্রিপ্টগুলি নির্দিষ্ট করি যা স্থাপনার কার্য সম্পাদন করতে চালানো হবে।

পদক্ষেপ 3: গোপনীয়তা পরিচালনা করুন

আমরা আমাদের পাবলিক স্টোরগুলিতে আমাদের AWS গোপনীয়তা পরিষ্কার রাখতে চাই না। এটি একটি অত্যন্ত খারাপ তথ্য সুরক্ষা অনুশীলন হবে। ট্র্যাভিস একটি সি এল এল সরঞ্জাম সরবরাহ করে যা আপনার গোপনীয়তাগুলি তৈরির সময় ইনজেকশনের জন্য ব্যবহার করতে ব্যবহৃত হতে পারে। ট্র্যাভিস প্রতিটি নতুন অ্যাকাউন্টের জন্য একটি নতুন জুটি পাবলিক এবং প্রাইভেট কী তৈরি করে। এই গোপনীয়তাগুলি এই কী জুটির সাথে এনক্রিপ্ট করা হয় এবং প্রতিবার বিল্ডটি চালিত হওয়ার সাথে সাথে পরিবেশ পরিবর্তনশীল হিসাবে .োকানো হয়। এটি করতে, আপনার সংগ্রহস্থলের মূল থেকে নিম্নলিখিত কমান্ডগুলি চালনা করুন এবং অনুরোধ করা বিশদটি দিয়ে লগ ইন করুন:

do sudo রত্ন ইনস্টল ট্র্যাভিস $ ট্র্যাভিস লগইন --org

আমাদের সংগ্রহস্থলের বিল্ড স্ক্রিপ্ট ডিরেক্টরিতে দুটি প্রাক ইনস্টল থাকা স্ক্রিপ্ট রয়েছে যা আপনার গোপনীয়তা প্রবেশের জন্য উপলব্ধ। আমাদের কে 8 এস টিউটোরিয়াল সংগ্রহস্থলের স্থানীয় কপি থেকে বিল্ড_স্ক্রিপ্ট ডিরেক্টরিটি আপনার নিজের কে 8 এস-সিআই সংগ্রহস্থলে অনুলিপি করুন এবং এটি নিম্নলিখিত হিসাবে আপডেট করুন:

  • large-secrets.txt: আপনার কুবেরনেটস অ্যাক্সেস কী যুক্ত করুন। আপনি এটি ~ / .kube / config এ খুঁজে পেতে পারেন
  • setup-secrets.sh: আপনার কুবেরনেটস পাসওয়ার্ড যুক্ত করুন (আবার ~ / .kube / কনফিগারেশনে পাওয়া যাবে) এবং W / .aws / শংসাপত্রগুলিতে AWS অ্যাক্সেস কীগুলি যুক্ত করুন

তারপরে নিম্নলিখিত কমান্ডের সাহায্যে আপনার সংগ্রহস্থলের মূল থেকে setup-secrets.sh স্ক্রিপ্টটি চালান:

$ chmod 755 বিল্ড-স্ক্রিপ্টস / সেটআপ-secrets.sh /। / বিল্ড-স্ক্রিপ্টস / সেটআপ-secrets.sh

ওপেনসেল কমান্ডটি একটি নোট করুন যে সেটআপ-secrets.sh স্ক্রিপ্টটি পরবর্তীতে ফিরে আসে, কারণ গোপনীয়তাগুলি ডিক্রিপ্ট করার জন্য এটি প্রয়োজন।

এই স্ক্রিপ্টটি ট্র্যাভিসের সাথে আপনার গোপনীয়তাগুলি এনক্রিপ্ট করে এবং আপনার .travis.yml ফাইল আপডেট করে। এনক্রিপ্ট করা গোপনীয়তাগুলি আপনার ভান্ডারে স্থানান্তর করুন:

it গিটটি বিল্ড-স্ক্রিপ্টস / লার্জ সিক্রেটস.টেক্সট.এনসি। ট্রাভিস.আইএমএল $ গিট কমিট-এম "এনক্রিপ্টেড সিক্রেটস কমিট করুন"

ট্র্যাভিসে আপনার গোপনীয়তাগুলির ব্যাক আপ করা এখন, আমরা সমস্ত ফাইল এবং স্ক্রিপ্ট থেকে এগুলি সরিয়ে দেওয়ার দৃ strongly়ভাবে পরামর্শ দিই। দুর্ঘটনাক্রমে উত্স নিয়ন্ত্রণের গোপনীয়তা প্রকাশ করা খুব সহজ হতে পারে এবং আপনার লেখকরা উভয়ই সেই পাপের জন্য দোষী! দুর্ঘটনাজনিত গোপনীয়তা আবিষ্কার করতে আমরা গিট-সিক্রেট ব্যবহার করি। আপনি নিম্নলিখিত পদক্ষেপের সাথে এটি সেট আপ করতে পারেন:

$ গিট-সিক্রেটস ইনস্টল করুন it গিট-সিক্রেটস - ইনস্টল করুন

পদক্ষেপ 4: নির্ভরতা ইনস্টল করুন

যেহেতু ট্র্যাভিসিসিআই একটি পরিষ্কার ডকার পাত্রে প্রতিটি বিল্ড চালায়, তাই আমাদের প্রতিবার আমাদের নির্ভরতা ইনস্টল করতে হবে। এই নির্ভরতাগুলি এই নিবন্ধের "আপনি শুরু করার আগে" বিভাগে বর্ণিত নির্ভরতাগুলির সমান। বিল্ড-স্ক্রিপ্টস ফোল্ডারে ইনস্টল-ডিপেন্ডেন্সি.শ নামে একটি ফাইল তৈরি করুন এবং নিম্নলিখিত কনফিগারেশনটি আটকে দিন:

এখন এই ফাইলটি আপনার ভান্ডারে স্থানান্তর করুন:

$ গিট ইনস্টল করুন-নির্ভরতা.শ $ গিট কমিট-এম যোগ করুন "নির্ভরতা ইনস্টল করতে একটি স্ক্রিপ্ট যুক্ত করুন"

পদক্ষেপ 5: আমাদের গোপনীয়তাগুলি ইনজেকশন করুন

ডকার পাত্রে আমাদের গোপনীয়তা স্থাপনের জন্য এখন আমাদের একটি স্ক্রিপ্ট দরকার যেখানে আমরা আমাদের বিল্ডিং পদক্ষেপগুলি করব। বিল্ড-স্ক্রিপ্ট ফোল্ডারে ইনজেক্ট-সেক্রেটস.শ নামে একটি ফাইল তৈরি করুন। নিম্নলিখিত স্ক্রিপ্ট আটকান এবং নিম্নলিখিত হিসাবে এটি আপডেট করুন:

  • আপনার কুবেরনেটস ক্লাস্টারের url দিয়ে here আপনার ক্লাস্টারের url এখানে প্রতিস্থাপন করুন
  • এই বিভাগের ৩ য় ধাপে আপনি লিখেছেন ওপেনএসএসএল কমান্ডটি প্রতিস্থাপন করুন - এখানে এনক্রিপশন পর্ব থেকে আপনার ওপেনএসএল কমান্ড with এবং বৃহত সিক্রেটস.txt.enc এর আগে। / বিল্ড-স্ক্রিপ্টগুলি যুক্ত করুন
  • আপনি যে AWS অঞ্চলটি ব্যবহার করছেন তার সাথে {আপনার-আউজ-অঞ্চল Rep প্রতিস্থাপন করুন

এই স্ক্রিপ্টটি ট্র্যাভিস পরিবেশ থেকে আমাদের গোপনীয়তা নিয়ে যায়, সেগুলি ডিক্রিপ্ট করে এবং উপযুক্ত কনফিগারেশন ফাইলগুলিতে সন্নিবেশ করায়।

আপনি উপরের স্ক্রিপ্টে লক্ষ্য করবেন যে এটি বিল্ড স্ক্রিপ্ট ডিরেক্টরিতে একটি ফাইল যা কুবেকনফিগ নামে পরিচিত - আমাদের এটিও তৈরি করতে হবে। নিম্নলিখিত বিষয়বস্তুতে আটকান এবং আপনার কুবেরনেটস ক্লাস্টারের url সহ {আপনার ক্লাস্টার url এখানে} পরিবর্তনশীল প্রতিস্থাপন করুন।

এই দুটি ফাইল আপনার ভান্ডারে স্থানান্তর করুন:

it git add inject-secrets.sh kubeconfig it git comm -m "গোপনীয়তা সন্নিবেশ করানোর জন্য একটি স্ক্রিপ্ট এবং একটি কুবেকনফিগ ফাইল যুক্ত করা হচ্ছে"

ধাপ:: পরিবেশ স্থাপন করুন up

আমরা অ্যাপ্লিকেশন মোতায়েন করার আগে আমাদের kube2iam এবং বহিরাগত-ডিএনএসের জন্য কনফিগারেশন স্থাপন করে গুচ্ছ তৈরি করতে হবে। এই সরঞ্জামগুলির প্রত্যেকটির জন্য কনফিগারেশন অবশ্যই একটি সেট অর্ডারে প্রয়োগ করা উচিত:

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

আমরা আমাদের স্থাপনার স্ক্রিপ্ট তৈরি করব যাতে ক্লাস্টারটি সর্বদা প্রথমে কনফিগার করা থাকে।

আমাদের সংগ্রহশালা থেকে বহিরাগত-ডিএনএস এবং কুবে 2 আইয়ামের টেমপ্লেটগুলি সহ আপনার ভাণ্ডারে অনুলিপি করুন।

প্রথমত, আমরা একটি স্ক্রিপ্ট তৈরি করব যা আমাদের Terraform কনফিগারেশন প্রয়োগ করবে apply বিল্ড-স্ক্রিপ্ট ডিরেক্টরিতে deploy-terraform.sh নামে একটি ফাইল তৈরি করুন এবং নিম্নলিখিত কোডটি যুক্ত করুন:

এই স্ক্রিপ্টটি আমাদের সংগ্রহস্থলের ডিরেক্টরি কাঠামোর মাধ্যমে পুনরাবৃত্তি করে এবং এটি খুঁজে পাওয়া কোনও Terraform কনফিগারেশন ফাইল প্রয়োগ করে।

(দ্রষ্টব্য: সত্যিকারের বিশ্বের উত্পাদনের পরিবেশে, Terraform দূষিতভাবে ব্যবহার হচ্ছে না তা নিশ্চিত করতে আমরা আমাদের সিআই পাইপলাইন পর্যালোচনা করব))

এটি আপনার সংগ্রহস্থলে প্রয়োগ করুন:

it git add deploy-terraform.sh it git comm -m "terraform ডিপ্লোয়মেন্ট স্ক্রিপ্ট যুক্ত করুন"

এখন আমরা আমাদের 3 টি পরিষেবার প্রতিটি জন্য টেরেরফর্ম কনফিগারেশন আপডেট করতে পারি এবং এটি সংগ্রহস্থলে স্থানান্তর করতে পারি:

  • বহিরাগত_ডনস / পড-ভূমিকা-বিশ্বাস-নীতি.জসন আপডেট করুন এবং আপনার ক্লাস্টারের কুবেরনেট নোডের জন্য আইএএম-আরএন-এর সাথে {আপনার-নোড-আইম-রোল-আরন-এর সাথে প্রতিস্থাপন করুন। নিম্নলিখিত কমান্ডটি চালিয়ে এটি নির্ধারণ করা যেতে পারে:
list aws আমি তালিকা-রোলস | গ্রেপ গিঁট
  • আপনি যে AWS অঞ্চলে কাজ করছেন তার সাথে {আপনার-আউজ-অঞ্চল replace এবং the আপনার-টিএফ-বালতি replace যে বালতিতে আপনার টেরফর্ম স্টেট স্টোর রয়েছে তার নামের সাথে প্রতিস্থাপন করতে বাহ্যিক_ডনস / মেইন.টিএফ আপডেট করুন সংরক্ষণ করেছেন

আপনার সংগ্রহস্থলে পরিষেবা কনফিগারেশন প্রয়োগ করুন:

it গিটার যুক্ত করুন বহিরাগত_ডিএনএস / পোড-ভূমিকা-বিশ্বাস-নীতি j পরিষেবা কনফিগারেশন যুক্ত করুন "

ট্র্যাভিস প্রতিটি সময় এটি ঠেলে দেওয়ার সময় মাস্টারটিতে কনফিগারেশন প্রয়োগ করতে কনফিগার করা হয়। সুতরাং এখন একটি ধাক্কা:

it গিট ধাক্কা

আমাদের এডাব্লুএস অ্যাকাউন্টে প্রয়োগ করা টেরেরফর্মের সমস্ত কনফিগারেশনটি কাজের লগে প্রদর্শিত হবে।

আমরা এখন আইএএম এর সমস্ত ভূমিকা এবং বিশ্বাসের সম্পর্ক তৈরি করেছি যা আমাদের কুবেরনেট পরিবেশের প্রয়োজন।

এরপরে পরিবেশগত প্রয়োজনীয়তার জন্য কুবেরনেটস কনফিগারেশনগুলি প্রয়োগ করতে আমাদের একটি স্ক্রিপ্ট দরকার। এই পদক্ষেপটি সম্পূর্ণ করার জন্য, আপনাকে আমাদের সংগ্রহশালা থেকে আপনার সংগ্রহস্থলে নিম্নলিখিত ফাইলগুলি অনুলিপি এবং আপডেট করতে হবে:

  • বহিরাগত_ডিএনএস / বহিরাগত_ডিএনএস.আইএমএল: আপনি যে ডিএনএস জোনটি ব্যবহার করছেন তার সাথে {আপনার-ডিএনএস-জোন Rep প্রতিস্থাপন করুন, {আপনার আইডি something এমন কোনও কিছু দিয়ে যাতে বাহ্যিক-ডিএনএস দ্বারা উত্পাদিত ডিএনএস এন্ট্রি রয়েছে (উদাঃ আপনার নাম) এবং ra আপনার-বহিরাগত-dns-iam-role-arn the টেরফর্ম কনফিগারেশন প্রয়োগ করার সময় তৈরি করা ভূমিকার জন্য আইএএম এআরএন-এর সাথে। নিম্নলিখিত কমান্ডটি চালিয়ে এটি নির্ধারণ করা যেতে পারে:
ws aws iam get-role - রোলের নাম বহিরাগত_ডিএনএস_পোড_রোল
  • kube2iam এবং rbac /: আপডেটের প্রয়োজন নেই

এই আপডেটগুলি নির্দেশ করে যে যখন AWS API- এ অ্যাক্সেস করার দরকার হয় তখন প্রতিটি পোডের কোন আইএএম ভূমিকা পালন করা উচিত।

এখন এই ফাইলগুলি সংগ্রহস্থলে স্থানান্তর করুন:

it গিটটি বহিরাগত_ডিএনএস / বহিরাগত_ডনস.আইএমএল আরবিসি / কুবে 2 আইয়াম / it গিট কমিট-এম "কে 8 এস এর জন্য বাহ্যিক ডিএনএস কনফিগারেশন যুক্ত করুন"

এখন আমরা আমাদের কুবারনেটস পরিষেবার জন্য আমাদের স্থাপনার স্ক্রিপ্ট তৈরি করতে যাচ্ছি। বিল্ড-স্ক্রিপ্ট ফোল্ডারে deploy-k8s.sh নামের একটি ফাইল তৈরি করুন। এই জাতীয় শিরোনাম দিয়ে ফাইলটি শুরু করুন:

এরপরে, নিম্নলিখিত পদক্ষেপগুলি যুক্ত করুন যা কুবারনেটস আরবিএসি কনফিগারেশনটি ক্লাস্টারে স্থাপন করবে:

এই পদক্ষেপগুলি প্রয়োজনীয় কারণ বাহ্যিক ডিএনএস পরিষেবাটির এই পরিষেবাটি চালনা করতে এবং এটি ক্লাস্টারে উপলব্ধ করার জন্য কুবারনেটসের এপিআই অধিকার দরকার। অনুস্মারক হিসাবে, আরবিএসি নিশ্চিত করে যে পোডগুলিতে ডিফল্টরূপে কুবারনেটস এপিআইতে অ্যাক্সেস নেই। এটি ন্যূনতম সুবিধার নীতির সাথে সামঞ্জস্যপূর্ণ এবং কোনও কারণে যদি আপস করা হয় তবে শুঁটিগুলি ক্লাস্টার সেটিংস পরিবর্তন করতে বাধা দেয়।

ট্র্যাভিসিসিআই এই পরিবর্তনগুলি প্রয়োগ করার জন্য, ডিপ্লোই- কে 8 এস.এস চালানোর জন্য আমাদের আমাদের ট্র্যাভিস.আইএমএলে একটি অতিরিক্ত পদক্ষেপ যুক্ত করতে হবে। নিম্নলিখিতটি পূর্বে ইনস্টল বিভাগে যুক্ত করুন:

- chmod + x ./build-scriptts/deploy-k8s.sh

এবং স্ক্রিপ্টে নিম্নলিখিত: বিভাগ:

- "./ বিল্ড-স্ক্রিপ্টস / ডিপ্লয়- কে 8 এস.এস"

এখন deploy-k8s.sh, .travis.yml স্থানান্তর করুন এবং আপনার সংগ্রহস্থলকে মাস্টারে স্থানান্তর করুন এবং ট্র্যাভিস বিল্ড লগে কোনও ত্রুটি নেই তা নিশ্চিত করুন:

it গিট অ্যাড বিল্ড-স্ক্রিপ্টস / deploy-k8s.sh .travis.yml it গিট কমিট-এম "কে 8 এস কনফিগারেশন মোতায়েনের জন্য ট্র্যাভিস কনফিগারেশন যুক্ত করা হচ্ছে" $ গিট পুশ

আমরা আমাদের সিআই / সিডি পাইপলাইনে টেরারফর্ম এবং আরবিএসি কনফিগারেশন যুক্ত করার পরে, আসুন আমাদের সংযুক্তি- k8s.sh স্ক্রিপ্টে নিম্নলিখিত পদক্ষেপগুলি যুক্ত করুন কুবে 2 আইয়াম স্থাপন করতে:

kube2iam প্রথমে মোতায়েন করা হয়েছে কারণ বহিরাগত-ডিএনএস অ্যাডাব্লুএস এপিআই কে কুবের 2 আইয়ামের সাথে ব্রোকার বলে।

এখন আপনার সংগ্রহস্থলটিকে মাস্টারের কাছে সরিয়ে নিন এবং বিল্ড লগে কোনও ত্রুটি নেই তা নিশ্চিত করুন:

it গিট অ্যাড বিল্ড-স্ক্রিপ্টস / deploy-k8s.sh it গিট কমিট -m "কে 8 এস কনফিগারেশন সরবরাহ করতে ট্র্যাভিস কনফিগারেশন আপডেট করুন" $ গিট পুশ

সমস্ত পরিষেবা সঠিকভাবে সরবরাহ করা হয়েছে তা নিশ্চিত করার জন্য এখন আমাদের ক্লাস্টারটি পরীক্ষা করুন। বহিরাগত-ডিএনএস হল একটি স্থাপনা যাতে আমরা স্থিতি পেতে নিম্নলিখিত কমান্ডটি চালাতে পারি:

ub কুবেটেল ডিপ্লোমেন্ট - নেমস্পেস = কুবে-সিস্টেম পান

যদি সবকিছু সঠিকভাবে প্রয়োগ করা হয় তবে আপনি দেখতে পাবেন:

পছন্দসই নাম বর্তমানের প্রাপ্ত বয়স্ক ক্যালিকো-কুবে-নিয়ামক 1 1 1 1 1h ক্যালিকো-নীতি-নিয়ামক 0 0 0 0 1h ডিএনএস-নিয়ন্ত্রক 1 1 1 1 1h বহিরাগত-ডিএনএস 1 1 1 1 1m কুবের-ডিএনএস 2 2 2 2 1h কুবের -ডিএনএস-অটোক্যাসেলার 1 1 1 1 1 এইচ

ডাবমনসেট হিসাবে kube2iam স্থাপন করা হয়েছে কারণ AWS API এ কল রিলে চালানোর জন্য এটি সমস্ত নোডে চলমান হওয়া দরকার running এর স্থিতি পেতে আমরা নিম্নলিখিত কমান্ডটি চালাই:

ub কুবেটেল --namespace = কিউব-সিস্টেম পায়

সবকিছু ঠিকঠাক থাকলে আমাদের কিছু দেখতে পাওয়া উচিত:

নামটি জরুরীভাবে উপলভ্য ন্যড-সিলেক্টর বয়সী কালিকোককনটেন 6 6 6 6 6 6 1 ঘ কুবে 2 আইয়াম 3 3 3 3 3 7 মি

পদক্ষেপ 7: একটি পরীক্ষার আবেদন স্থাপন করুন Dep

এখন আমাদের ক্লাস্টার স্থাপনে কঠোর পরিশ্রমের সুযোগ নেওয়ার এবং সহজেই একটি পরীক্ষা অ্যাপ্লিকেশন স্থাপনের কোড হিসাবে আমাদের ওয়ার্কফ্লো এবং অবকাঠামোর শক্তি দেখার সময়!

প্রথমত, আমাদের আমাদের স্থাপনা-কে 8 এস.এস স্ক্রিপ্টে একটি স্থাপনার পদক্ষেপ যুক্ত করতে হবে যা আমাদের অ্যাপ্লিকেশনগুলি মোতায়েন করবে:

এই পদক্ষেপটি ক্লোস্টারটিতে আমাদের সংগ্রহস্থলের অ্যাপ্লিকেশন ডিরেক্টরিতে সমস্ত কুবেরনেটস কনফিগারেশন ফাইল প্রয়োগ করে। এই পরিবর্তনটি প্রয়োগ করুন এবং এটি মাস্টারকে প্রেরণ করুন:

it গিট বিল্ড-স্ক্রিপ্টগুলি / deploy-k8s.sh it গিট কমিট-এম "অ্যাপ্লিকেশনগুলির জন্য কে 8 এস কনফিগারেশন মোতায়েনের জন্য ট্র্যাভিস কনফিগারেশন আপডেট করুন" $ গিট পুশ

আমরা গিটঅপ্সের দিকে রওনা হওয়ার আগে আসুন একটি পরীক্ষা অ্যাপ্লিকেশন স্থাপনের জন্য একটি গিটপস প্রক্রিয়া প্রবাহ অনুসরণ করুন:

  • নিম্নলিখিত কমান্ডটি চালিয়ে একটি স্থানীয় শাখা তৈরি করুন:
it গিট চেকআউট-বি টেস্টআপ
  • আপনার ভাণ্ডারে অ্যাপ্লিকেশন নামের একটি ফোল্ডার তৈরি করুন
  • অ্যাপস ফোল্ডারে, হ্যালো_অ্যাপ_ডেপমেন্ট.আইএমএল নামে একটি ফাইল তৈরি করুন এবং নিম্নলিখিতগুলি যুক্ত করুন:

এই কনফিগারেশনটিতে 2 টি বিভাগ রয়েছে:

  1. স্থাপনা: এটি আমাদের যে পাত্রে চলবে তার বিবরণ দেয়, কতগুলি সংখ্যক সংখ্যক অ্যাক্সেস করা যায়, পাত্রে অ্যাপ্লিকেশনটি কী পোর্টে অ্যাক্সেস করতে পারে এবং যে অ্যাপ্লিকেশনটি আমরা চালাতে চাইছি তার সংখ্যার সংখ্যা দেয়। এই ক্ষেত্রে আমরা "সালাম, গ্লোব!" নামে একটি সাধারণ পাত্রে চালাব will এবং তারপরে 8080 পোর্টে ধারকটির হোস্টের নাম আউটপুট করে। আমরা জানিয়েছি যে আমরা তিনটি প্রতিলিপি চালাচ্ছি - আমাদের প্রতিটি ক্লাস্টার নোডের জন্য একটি।
  2. পরিষেবা: স্থাপনা কীভাবে অভ্যন্তরীণ বা বাহ্যিকভাবে উপলব্ধ করা উচিত তা নির্দিষ্ট করে। আমাদের পরীক্ষার আবেদনের ক্ষেত্রে, আমরা এটি 80 পোর্টে ক্লাস্টার আইপিতে অভ্যন্তরীণভাবে প্রকাশ করি। আমরা ব্যবহারকারী-বান্ধব এফকিউডিএন (উদাঃ saluations.yourdomain.com) সরবরাহ করি যার মাধ্যমে আমাদের অ্যাপ্লিকেশনটি অ্যাক্সেস করা যায়। আপনাকে আপনার বন্ধুত্বপূর্ণ এফকিউডিএন দিয়ে {আপনার এফকিউডিএন এখানে replace প্রতিস্থাপন করতে হবে।

এখন এই ফাইলটি আপনার স্থানীয় শাখায় স্থানান্তর করুন এবং ব্রাঞ্চটি দূরবর্তী সংগ্রহস্থলে স্থানান্তর করুন:

it গিট যোগ করুন হ্যালো_এপ_ডেপমেন্ট.আইএমএল it গিট কমিট-এম "টেস্ট অ্যাপ্লিকেশন যুক্ত করুন" it গিট পুশ-ইউ উত্স টেপআপ

এখন যখন আমরা গিটহাবটিতে লগইন করি আমাদের দেখতে হবে যে আমাদের "টেস্টআপ" নামে একটি নতুন শাখা রয়েছে:

আমরা একটি টানার অনুরোধটি ট্রিগার করতে এবং এটি মাস্টারের সাথে একীভূত করতে চাই। সুতরাং "তুলনা করুন এবং টানুন অনুরোধ" ক্লিক করুন এবং এই ক্রিয়াকলাপটি সম্পূর্ণ করার জন্য নির্দেশাবলী অনুসরণ করুন।

একবার স্থাপনাটি সম্পূর্ণ হয়ে গেলে, আমরা নিম্নলিখিত পরীক্ষাটি প্রয়োগ করে অনুরূপ আউটপুট যাচাই করে আমাদের পরীক্ষা অ্যাপ্লিকেশনটি সঠিকভাবে স্থাপন করেছে তা যাচাই করতে পারি:

$ কুবেটেল মোতায়েনের নমুনা-স্থাপনা পান
নাম আবশ্যক বর্তমান প্রাপ্ত বয়স্ক অ্যাড্রেস ফর্ম 3 3 3 3 24 ডি
ub কুবেটেল সেবা গ্রহণ করে সালাম পরিষেবা
নাম ক্লাস্টার-আইপি এক্সটারন-আইপি পোর্ট (এস) অলটার সালাম পরিষেবা 100.65.66.9 a78b874f74ed0 ... 80: 32439 / টিসিপি 6 ডি

আসল প্রমাণ যাইহোক, আমাদের বন্ধুত্বপূর্ণ এফকিউডিএন এর মাধ্যমে আমাদের আবেদনের সাথে সংযোগ! যদি সবকিছু যথাযথভাবে মোতায়েন করা থাকে তবে আপনার দেখতে হবে:

সাফল্য! আপনি যদি এখন এই পৃষ্ঠাটি রিফ্রেশ করেন, আপনার ব্রাউজারটি যখন কোনও ভিন্ন কুবারনেট নোডে চলমান অ্যাপ্লিকেশনটি অ্যাক্সেস করতে ক্লাসিক লোড ব্যালেন্সার ব্যবহার করে তখন হোস্টের নামটি পরিবর্তন করা উচিত।

সারসংক্ষেপ

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

এটি আপনার সরঞ্জামচেইনে যুক্ত হওয়ার পরে কুবেরনেটগুলি আপনার বিকাশকারী এবং ডেভঅপস দক্ষতা আনতে পারে এমন অসংখ্য সুবিধার সহজ উদাহরণ মাত্র!