বিড়াল বনাম কুকুর + ফ্লাস্ক + ডকার + কুবেরনেটস

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

আপনি এখানে সম্পূর্ণ কোড খুঁজে পেতে পারেন। একটি দ্রুত ডেমো দেখার জন্য http://130.211.229.36/.( শুধুমাত্র jpg চিত্র আপলোড করুন)

পূর্বশর্তসমূহ = ডকারের বোঝা

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

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

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

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

একটি নোড

এটি এমন একটি নোড যা তাদের পোড আইপি অ্যাড্রেসগুলির সাথে অনেকগুলি শুঁটিযুক্ত।

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

এবং অবশেষে আসে একটি পরিষেবা ব্যবহার করে আপনার অ্যাপ্লিকেশনটি প্রকাশ করা। যখন কোনও কর্মী নোড মারা যায়, নোডে চলমান পডগুলিও হারিয়ে যায়। একটি রেপ্লিকা সেট তারপরে আপনার অ্যাপ্লিকেশনটি চালিয়ে যাওয়ার জন্য নতুন পড তৈরির মাধ্যমে এই ক্লাস্টারটিকে গতিশীলভাবে কাঙ্ক্ষিত অবস্থায় ফিরিয়ে আনতে পারে। এটি service.yaml ফাইলের মাধ্যমে সম্পন্ন হয়।

কুবেরনেটস অবকাঠামো আরও ভাল করে বোঝার জন্য আমি এমন একটি ভিডিওর প্রস্তাব দিচ্ছি যা সমস্ত ধারণাগুলিকে সরলীকৃতভাবে লিঙ্কে ব্যাখ্যা করে।

আসুন আমাদের ওয়েব অ্যাপ্লিকেশনটি শুরু করা যাক।

আমি আমার নিউরাল নেটওয়ার্ক মডেলকে প্রশিক্ষণ দিয়ে এটিকে জেএসএন-তে সংরক্ষণ করেছি এবং ওজনকে এইচ 5 ফাইলেও সংরক্ষণ করেছি। আমি JSON থেকে প্রশিক্ষিত মডেলটি লোড করতে এবং নতুন চিত্রটি পূর্বাভাস দিতে একটি use_model.py লিখেছি wrote

আমি একটি ওয়েব অ্যাপ তৈরি করতে FLASK ব্যবহার করেছি। অ্যাপ্লিকেশনটি সহজ এটি ইমেজটি নেয় এবং বিড়াল বা কুকুরটি ইউজ_মডেল.পি ব্যবহার করে ভবিষ্যদ্বাণী করে এবং "আপনি একটি কুকুর" বা "আপনি একটি বিড়াল" তা প্রত্যাবর্তন করে। অ্যাপ.পি এইভাবে চলে যায় (ধারক তৈরি করার সময় আমি হোস্ট = 0.0.0.0 পরিবর্তন করেছি))

তারপরে সর্বাধিক গুরুত্বপূর্ণ অংশটি হ'ল ডকারফি চিত্রটি ডকার চিত্রটি তৈরি করতে সক্ষম হতে।

কমান্ডগুলি অ্যাপট-গেট আপডেট করুন & অজগর 3 ইনস্টল করুন ...

আপনার বর্তমান ডিরেক্টরি অনুলিপি করুন। পাইপ ইনস্টল প্রয়োজনীয়তা। txt

এক্সপোজ পোর্ট (যেখানে আপনার app.py পরিবেশিত হচ্ছে)

তারপরে পাইথন 3 app.py কমান্ডটি চালান। আপনাকে চালনার চূড়ান্ত কমান্ড দেওয়ার জন্য সিএমডি সর্বদা এন্ট্রিপয়েন্টে যুক্ত হবে।

আপনি স্থানীয়ভাবে ধারকটি তৈরি করতে পারেন এবং আপনার ধারকযুক্ত ফ্লাস্ক অ্যাপটি পরীক্ষা করতে পারেন (আপনার প্রকল্প ডিরেক্টরিতে এই আদেশগুলি চালান)

ডকার বিল্ড -t ইমেজ_ক্লাসিফায়ার: সর্বশেষ।
ডকার রান -িট 5500: 3000 ইমেজ_ক্লাসিফায়ার

এটি আপনার অ্যাপ.পি চালাবে এবং স্থানে পোর্ট ফরওয়ার্ডিং সহ আপনি নিজের ব্রাউজারে ওয়েবপ্যাপটি HTTP: // লোকালহোস্ট: 5000 এ অ্যাক্সেস করতে পারবেন।

এখন আসে সর্বাধিক প্রত্যাশিত অংশ।

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

গিট ক্লোন <আপনার_প্রজেক্ট>
সিডি আপনার_প্রজেক্ট

নীচের কমান্ডটি চালিয়ে ক্লকাউডে প্রাক-কনফিগার করা প্রজেক্ট আইডিটি পুনরুদ্ধার করে আপনার শেলের মধ্যে PROJECT_ID এনভায়রনমেন্ট ভেরিয়েবল সেট করুন:

PROJECT_ID = "$ (gcloud কনফিগার গেট-ভ্যালু প্রকল্প-কিউ)" রফতানি করুন

PROJECT_ID এর মানটি আপনার ব্যক্তিগত কনটেইনার রেজিস্ট্রিতে চাপ দেওয়ার জন্য ধারক চিত্রটি ট্যাগ করতে ব্যবহৃত হবে।

এখন আপনি ধারক চিত্রটি তৈরি করতে পারেন:

ডকার বিল্ড -t gcr.io/${PROJECT_ID}/< চিত্র_নাম>>.0.0.0
ডকার পুশ gcr.io/${PROJECT_ID}/>.0.0.0

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

ধারক ইমেজ নির্মাণ

একটি ধারক গোষ্ঠী তৈরি করা:

এখন যে ধারক চিত্রটি একটি রেজিস্ট্রিতে সঞ্চিত আছে, আপনাকে ধারক ইমেজটি চালানোর জন্য একটি ধারক গোষ্ঠী তৈরি করতে হবে। একটি ক্লাস্টারে কুবেরনেটস চলমান কম্পিউট ইঞ্জিন ভিএম উদাহরণগুলির একটি পুল রয়েছে।

গ্লকউড কনটেইনার ক্লাস্টারগুলি <<

এটি সম্পূর্ণ হতে কিছুক্ষণ সময় নেবে, সমাপ্তির পরে আপনি "gcloud compute উদাহরণ তালিকা" কমান্ড দিয়ে যাচাই করতে পারবেন।

আপনার অ্যাপ্লিকেশন স্থাপন করা:

কুবেটেল চালনা <কিছু নাম> --image = gcr.io / {{PROJECT_ID} / <চিত্র_নাম>: 1.0.0 - বন্দুক 3000

"কুবেটেল পড পেতে" কমান্ডটি ডিপোপমেন্টের দ্বারা তৈরি পডটি দেখতে।

আপনার অ্যাপ্লিকেশনটি ইন্টারনেটে প্রকাশ করা:

কুবেটেল মোতায়েন মোতায়েন <কিছু নাম> --type = লোডবালেন্সার - 80 - দেরি-বন্দর 3000

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

সেবা পেতে kubectl

আউটপুট আপনাকে একটি বাহ্যিক আইপি দেবে (নীচের চিত্রের নীচে):

আপনার বাহ্যিক আইপি পান

একবার আপনি আপনার অ্যাপ্লিকেশনটির জন্য বাহ্যিক আইপি ঠিকানা নির্ধারণ করার পরে, আইপি ঠিকানাটি অনুলিপি করুন। আপনার অ্যাপ্লিকেশন অ্যাক্সেসযোগ্য কিনা তা পরীক্ষা করতে আপনার ব্রাউজারটিকে এই ইউআরএলে (যেমন http://130.211.229.36) নির্দেশ করুন।

বাহ্যিক আইপি পরিদর্শন করার সময়

নোট 1. আমি যেখানেই ব্যবহার করেছি <> আপনার পছন্দসই নাম যুক্ত করতে নির্দ্বিধায়। ২. আপনি যদি ডিজিটালওসন বা অন্য কোনও মেঘ প্ল্যাটফর্ম ব্যবহার করেন তবে আমি আমার গিথুবে ইয়ামল ফাইলও লিখেছি।

এই ব্লগ সহায়ক। কোনও সন্দেহ এবং প্রশ্নের জন্য নীচে মন্তব্য করুন।