একটি পাঙ্ক রক ব্যান্ড মত শোনাচ্ছে. তবে এটি একেবারে নতুন অর্কেস্ট্রেশন প্রক্রিয়া, বা বরং, ডকারে উপলব্ধ অর্কেস্ট্রেশনের উন্নতি। এটিকে সংক্ষিপ্ত এবং মিষ্টি রাখতে, আপনি যদি ডকারের একটি পুরানো সংস্করণ ব্যবহার করেন তবে আপনাকে ডকার ক্লাস্টার তৈরি করতে ম্যানুয়ালি সোয়ার্ম সেটআপ করতে হবে। সংস্করণ 1.12 দিয়ে শুরু করে, ডকার ইঞ্জিন একটি স্থানীয় বাস্তবায়নের সাথে আসে যা একটি বিজোড় ক্লাস্টারিং সেটআপের অনুমতি দেয়। যে কারণে আমরা এখানে আছি।
এই টিউটোরিয়ালে, আমি অর্কেস্ট্রেশনের ক্ষেত্রে ডকার কী করতে পারে তার একটি স্বাদ দেওয়ার চেষ্টা করব। এই নিবন্ধটি কোনওভাবেই সমস্ত অন্তর্ভুক্ত (বিছানা এবং প্রাতঃরাশ) বা সর্বজনবিদিত নয়, তবে এটি আপনাকে আপনার ক্লাস্টারিং যাত্রা শুরু করতে যা লাগে তা রয়েছে৷ আমার পরে.
প্রযুক্তি ওভারভিউ
খুব বিশদ এবং অত্যন্ত দরকারী ডকার ডকুমেন্টেশন নিবন্ধটি রিহ্যাশ করা আমার জন্য লজ্জাজনক হবে, তাই আমি কেবল প্রযুক্তির একটি সংক্ষিপ্ত বিবরণ তুলে ধরব। তাই আমরা ডকার আছে, ডান. এখন, আপনি ডকার হোস্ট হিসাবে একটি একক সার্ভারের বেশি ব্যবহার করতে চান তবে আপনি চান যে সেগুলি একই লজিক্যাল সত্তার অন্তর্গত হোক। অতএব, ক্লাস্টারিং.
এর একটি ক্লাস্টার দ্বারা শুরু করা যাক. আপনি যখন একটি হোস্টের উপর ঝাঁক শুরু করেন, তখন এটি ক্লাস্টারের ম্যানেজার হয়ে যায়। প্রযুক্তিগতভাবে বলতে গেলে, এটি একটি নোডের একটি ঐক্যমত্য গ্রুপ হয়ে যায়। পিছনের গাণিতিক যুক্তি রাফ্ট অ্যালগরিদমের উপর ভিত্তি করে। ম্যানেজার কর্ম নির্ধারণের জন্য দায়ী। কাজগুলি কর্মী নোডগুলিতে অর্পণ করা হবে, একবার এবং যদি তারা ঝাঁকে ঝাঁকে যোগ দেয়। এটি নোড API দ্বারা পরিচালিত হয়। আমি API শব্দটিকে ঘৃণা করি, কিন্তু আমাকে অবশ্যই এখানে ব্যবহার করতে হবে।
সার্ভিস API এই বাস্তবায়নের দ্বিতীয় উপাদান। এটি ম্যানেজার নোডগুলিকে ঝাঁকের সমস্ত নোডগুলিতে বিতরণ পরিষেবা তৈরি করতে দেয়। পরিষেবাগুলি প্রতিলিপি করা যেতে পারে, যার অর্থ তারা ভারসাম্য প্রক্রিয়া ব্যবহার করে ক্লাস্টার জুড়ে ছড়িয়ে রয়েছে, বা সেগুলি বিশ্বব্যাপী হতে পারে, যার অর্থ প্রতিটি নোডে পরিষেবার একটি উদাহরণ চলছে।
এখানে কাজ করার জন্য আরও অনেক কিছু আছে, কিন্তু এটি আপনাকে প্রাইমড এবং পাম্প করার জন্য যথেষ্ট। এখন, এর কিছু বাস্তব হ্যান্ডস-অন জিনিস করা যাক. আমাদের লক্ষ্য প্ল্যাটফর্মটি CentOS 7.2, যা বেশ আকর্ষণীয়, কারণ যখন আমি এই টিউটোরিয়ালটি লিখেছিলাম, তখন এটির রেপোতে শুধুমাত্র ডকার 1.10 ছিল, এবং ঝাঁক ব্যবহার করার জন্য আমাকে ম্যানুয়ালি ফ্রেমওয়ার্ক আপগ্রেড করতে হয়েছিল। আমরা এটি একটি পৃথক টিউটোরিয়ালে আলোচনা করব। তারপর, আমাদের কাছে একটি ফলো-আপ গাইডও থাকবে, যেখানে আমরা আমাদের ক্লাস্টারে নতুন নোড যোগ করব, এবং আমরা ফেডোরার সাথে একটি অপ্রতিসম সেটআপ চেষ্টা করব। এই মুহুর্তে, অনুগ্রহ করে অনুমান করুন সঠিক সেটআপটি রয়েছে এবং চলুন একটি ক্লাস্টার পরিষেবা চালু করা যাক।
ছবি ও পরিষেবা সেটআপ করুন
আমি একটি লোড-ব্যালেন্সড Apache পরিষেবা সেটআপ করার চেষ্টা করব, একাধিক দৃষ্টান্ত একটি একক আইপি ঠিকানার মাধ্যমে সামগ্রী পরিবেশন করে৷ বেশ মানক। আপনি একটি ক্লাস্টার কনফিগারেশনের সাথে কেন যাবেন তা সাধারণ কারণগুলিও এটি হাইলাইট করে - প্রাপ্যতা, অপ্রয়োজনীয়তা, অনুভূমিক স্কেলিং এবং কর্মক্ষমতা। অবশ্যই, আপনাকে নেটওয়ার্কিং অংশ, সেইসাথে স্টোরেজ বিবেচনা করতে হবে, তবে এটি এমন কিছু যা এই গাইডের তাত্ক্ষণিক সুযোগের বাইরে যায়।
প্রকৃত ডকারফাইল টেমপ্লেট httpd এর অধীনে অফিসিয়াল রিপোজিটরিতে উপলব্ধ। কাজ শুরু করার জন্য আপনাকে একটি ন্যূনতম সেটআপের প্রয়োজন হবে। এই টিউটোরিয়ালের শুরুতে লিঙ্ক করা আমার ইন্ট্রো গাইডে কীভাবে ইমেজ ডাউনলোড করতে হয়, কীভাবে আপনার নিজের তৈরি করতে হয় এবং এই ধরনের বিস্তারিত বিবরণ পাওয়া যায়।
ডকার বিল্ড -t my-apache2।
ডকার ডেমন 2.048 kB-তে বিল্ড প্রসঙ্গ পাঠানো হচ্ছে
ধাপ 1:httpd থেকে:2.4
সংগ্রহস্থল docker.io/library/httpd টানার চেষ্টা করা হচ্ছে ...
2.4:docker.io/library/httpd থেকে টেনে আনা
8ad8b3f87b37:টান সম্পূর্ণ
c95e1f92326d:টান সম্পূর্ণ
96e8046a7a4e:টান সম্পূর্ণ
00a0d292c371:টান সম্পূর্ণ
3f7586acab34:টান সম্পূর্ণ
ডাইজেস্ট:sha256:3ad4d7c4f1815bd1c16788a57f81b413...a915e50a0d3a4
স্থিতি:docker.io/httpd:2.4 এর জন্য নতুন ছবি ডাউনলোড করা হয়েছে
---> fe3336dd034d
ধাপ 2 :কপি করুন ../public-html/ /usr/local/apache2/htdocs/
...
আপনি আরও এগিয়ে যাওয়ার আগে, আপনাকে একটি একক উদাহরণ শুরু করতে হবে এবং দেখতে হবে যে আপনার ধারকটি কোনো ত্রুটি ছাড়াই তৈরি হয়েছে এবং আপনি ওয়েব সার্ভারের সাথে সংযোগ করতে পারেন৷ একবার আমরা এটি প্রতিষ্ঠা করলে, আমরা একটি বিতরণ পরিষেবা তৈরি করব।
docker run -dit --name my-running-app my-apache2
আইপি ঠিকানা পরীক্ষা করুন, একটি ব্রাউজারে পাঞ্চ করুন, দেখুন কী দেয়।
ঝাঁক শুরু এবং সেটআপ
পরবর্তী ধাপ হল ঝাঁক বেড়ানো। এখানে সবচেয়ে মৌলিক কমান্ড রয়েছে যা আপনাকে এগিয়ে নিয়ে যাবে, এবং এটি ডকার ব্লগে ব্যবহৃত উদাহরণের অনুরূপ:
ডকার পরিষেবা তৈরি করুন --name frontend --replicas 5 -p 80:80/tcp my-apache2:latest
এখানে আমাদের কি আছে? আমরা পাঁচটি কন্টেইনার উদাহরণ সহ ফ্রন্টএন্ড নামে একটি পরিষেবা তৈরি করছি। আমরা আমাদের হোস্টপোর্ট 80কে কন্টেইনারপোর্ট 80 এর সাথে আবদ্ধ করছি। এবং আমরা এর জন্য আমার সদ্য তৈরি অ্যাপাচি ইমেজ ব্যবহার করছি। যাইহোক, আপনি যখন এটি করবেন, আপনি নিম্নলিখিত ত্রুটিটি পাবেন:
ডকার পরিষেবা তৈরি করুন --নাম ফ্রন্টএন্ড --প্রতিলিপি 5 -p 80:80/tcp my-apache2:সর্বশেষ
ডেমন থেকে ত্রুটি প্রতিক্রিয়া:এই নোডটি একটি সোয়ার্ম ম্যানেজার নয়। এই নোডটিকে সোয়ার্মের সাথে সংযুক্ত করতে "ডকার সোয়ার্ম ইনিট" বা "ডকার সোয়ার্ম জয়েন" ব্যবহার করুন এবং আবার চেষ্টা করুন।
এর মানে হল আপনি বর্তমান হোস্ট (নোড) একটি ঝাঁক ব্যবস্থাপক হতে সেটআপ করেননি। আপনাকে হয় ঝাঁক শুরু করতে হবে বা বিদ্যমান একটিতে যোগ দিতে হবে। যেহেতু আমাদের এখনও একটি নেই, আমরা এখন এটি শুরু করব:
ডকার ঝাঁক init
ঝাঁক শুরু:বর্তমান নোড (dm58mmsczqemiikazbfyfwqpd) এখন একজন ম্যানেজার।
এই ঝাঁকটিতে একজন কর্মী যোগ করতে, নিম্নলিখিত কমান্ডটি চালান:
ডকার ঝাঁক যোগদান \
--টোকেন SWMTKN-1-4ofd46a2nfyvrqwu8w5oetukrbylyznxla
9srf9vxkxysj4p8-eu5d68pu5f1ci66s7w4wjps1u \
10.0.2.15:2377
এই ঝাঁকটিতে একজন ম্যানেজার যোগ করতে, 'ডকার সোয়ার্ম জয়েন-টোকেন ম্যানেজার' চালান এবং নির্দেশাবলী অনুসরণ করুন।
আউটপুট মোটামুটি স্ব ব্যাখ্যামূলক. আমরা একটি ঝাঁক তৈরি করেছি। নতুন নোডের ঝাঁকে যোগ দিতে সঠিক টোকেন ব্যবহার করতে হবে। আপনার যদি ফায়ারওয়াল নিয়মের প্রয়োজন হয় তবে আপনার আইপি ঠিকানা এবং পোর্ট সনাক্ত করা আছে। তাছাড়া, আপনি ঝাঁকটিতে পরিচালকদেরও যোগ করতে পারেন। এখন, পরিষেবা তৈরি কমান্ডটি পুনরায় চালান:
ডকার পরিষেবা তৈরি করুন --নাম ফ্রন্টএন্ড --প্রতিলিপি 5 -p 80:80/tcp my-apache2:সর্বশেষ
6lrx1vhxsar2i50is8arh4ud1
সংযোগ পরীক্ষা করুন
এখন, আমাদের পরিষেবাটি আসলে কাজ করে কিনা তা পরীক্ষা করা যাক। একটি উপায়ে, এটি Vagrant এবং coreOS এর সাথে আমরা যা করেছি তার অনুরূপ। সর্বোপরি, ধারণাগুলি প্রায় অভিন্ন। এটি একই ধারণার শুধু ভিন্ন বাস্তবায়ন। প্রথমত, ডকার পিএস সঠিক আউটপুট দেখাতে হবে। আপনার তৈরি করা পরিষেবার জন্য একাধিক প্রতিলিপি থাকা উচিত।
ডকার পিএস
কন্টেইনার আইডি চিত্র কমান্ড
নাম
cda532f67d55 my-apache2:latest "httpd-ফোরগ্রাউন্ড"
2 মিনিট আগে 2 মিনিট 80/tcp ফ্রন্টএন্ড.1.2sobjfchdyucschtu2xw6ms9a
75fe6e0aa77b my-apache2:latest "httpd-ফোরগ্রাউন্ড"
2 মিনিট আগে 2 মিনিট 80/tcp frontend.4.ag77qtdeby9fyvif5v6c4zcpc
3ce824d3151f my-apache2:latest "httpd-ফোরগ্রাউন্ড"
2 মিনিট আগে 2 মিনিট 80/tcp frontend.2.b6fqg6sf4hkeqs86ps4zjyq65
eda01569181d my-apache2:latest "httpd-ফোরগ্রাউন্ড"
2 মিনিট আগে 2 মিনিট 80/tcp frontend.5.0rmei3zeeh8usagg7fn3olsp4
497ef904e381 my-apache2:latest "httpd-ফোরগ্রাউন্ড"
2 মিনিট আগে 2 মিনিট 80/tcp frontend.3.7m83qsilli5dk8rncw3u10g5a
আমি বিভিন্ন, অ-ডিফল্ট পোর্টের সাথেও পরীক্ষা করেছি এবং এটি ভাল কাজ করে। আপনি কিভাবে সার্ভারের সাথে সংযোগ করতে পারেন এবং প্রতিক্রিয়া পেতে পারেন সে সম্পর্কে আপনার অনেক অবকাশ রয়েছে। আপনি সঠিক পোর্ট সহ স্থানীয় হোস্ট বা ডকার ইন্টারফেস আইপি ঠিকানা ব্যবহার করতে পারেন। নীচের উদাহরণটি 1080 পোর্ট দেখায়:
এখন, এটি একটি খুব রুক্ষ, খুব সহজ শুরু. আসল চ্যালেঞ্জ হল অপ্টিমাইজ করা, মাপযোগ্য পরিষেবাগুলি তৈরি করা, তবে তাদের একটি সঠিক প্রযুক্তিগত ব্যবহারের ক্ষেত্রে প্রয়োজন। তাছাড়া, আপনার ক্লাস্টার কীভাবে আচরণ করছে সে সম্পর্কে আরও জানতে আপনার ডকার তথ্য এবং ডকার পরিষেবা (পরিদর্শন| পিএস) কমান্ডগুলিও ব্যবহার করা উচিত।
সম্ভাব্য সমস্যা
ডকার এবং ঝাঁকের সাথে খেলার সময় আপনি কিছু ছোট (বা এত ছোট নয়) সমস্যার সম্মুখীন হতে পারেন। উদাহরণস্বরূপ, SELinux অভিযোগ করতে পারে যে আপনি কিছু অবৈধ করার চেষ্টা করছেন। যাইহোক, ত্রুটি এবং সতর্কতাগুলি আপনাকে খুব বেশি বাধা দেবে না।
ডকার পরিষেবা একটি ডকার কমান্ড নয়
আপনি যখন একটি প্রতিলিপিকৃত পরিষেবা শুরু করার জন্য প্রয়োজনীয় কমান্ড চালানোর চেষ্টা করেন, তখন আপনি একটি ত্রুটি পান যা ডকার বলে:'পরিষেবা' একটি ডকার কমান্ড নয়। এর মানে হল যে আপনার কাছে ডকারের সঠিক সংস্করণ নেই (-v দিয়ে চেক করুন)। আমরা একটি ফলো-আপ টিউটোরিয়ালে এটি ঠিক করব।
ডকার পরিষেবা তৈরি করুন --নাম ফ্রন্টএন্ড --প্রতিলিপি 5 -p 80:80/tcp my-apache2:সর্বশেষ
docker:'পরিষেবা' একটি ডকার কমান্ড নয়।
ডকার ট্যাগ স্বীকৃত নয়
আপনি নিম্নলিখিত ত্রুটিটিও দেখতে পারেন:
ডকার পরিষেবা তৈরি -নাম ফ্রন্টএন্ড -প্রতিলিপি 5 -p 80:80/tcp my-apache2:সর্বশেষ
ডেমন থেকে ত্রুটির প্রতিক্রিয়া:rpc ত্রুটি:code =3 desc =ContainerSpec:"-name" একটি বৈধ সংগ্রহস্থল/ট্যাগ নয়
এই চারপাশে বেশ কিছু আলোচনা থ্রেড আছে. ত্রুটি আসলে বেশ নির্দোষ হতে পারে. আপনি একটি ব্রাউজার থেকে কমান্ড অনুলিপি করতে পারেন, এবং হাইফেন সঠিকভাবে পার্স নাও হতে পারে. এর মত সহজ.
আরো পড়া
ডকার 1.12-এর পূর্বে সোয়ার্ম বাস্তবায়নের পাশাপাশি ডকার ইঞ্জিনের বর্তমান সংস্করণ সহ এই বিষয়ে আরও অনেক কিছু বলার আছে। বুদ্ধিমত্তার জন্য, অনুগ্রহ করে অলস হবেন না এবং পড়ার জন্য কিছু সময় ব্যয় করুন:
ডকার সোয়ার্ম ওভারভিউ (স্বতন্ত্র সোয়ার্ম ইনস্টলেশনের জন্য)
উৎপাদনের জন্য একটি সোয়ার্ম ক্লাস্টার তৈরি করুন (স্বতন্ত্র সেটআপ)
একটি ডকার সোয়ার্ম (স্বতন্ত্র সেটআপ)
ইনস্টল করুন এবং তৈরি করুনডকার ইঞ্জিন সোয়ার্ম ওভারভিউ (সংস্করণ 1.12 এর জন্য)
ঝাঁক মোড দিয়ে শুরু করা (সংস্করণ 1.12 এর জন্য)
উপসংহার
এই নাও. এই মুহুর্তে খুব বড় কিছু নেই, তবে আমি বিশ্বাস করি আপনি নিবন্ধটি দরকারী পাবেন। It covers several key concepts, there's an overview of how the swarm mode works and what it does, and we successfully managed to download and create our own Web server image and then run several clustered instances of it. We did this on a single node for now, but we will expand in the future. Also, we tackled some common problems.
I hope you find this guide interesting. Combined with my previous work on Docker, this should give you a decent understand of how to work with images, the networking stack, storage, and now clusters. Warming up. Indeed, enjoy and see you soon with fresh new tutorials on Docker. I just can't contain [sic] myself.
চিয়ার্স।