একাধিক পরিবেশ (স্টেজিং, কিউএ, উত্পাদন ইত্যাদি) কুবারনেটসের সাথে


121

একাধিক পরিবেশ (কিউএ, স্টেজিং, প্রোডাকশন, দেব ইত্যাদি) পরিচালনার জন্য কে 8 এস এর সাথে একটি ভাল অনুশীলন হিসাবে বিবেচনা করা হয়?

উদাহরণস্বরূপ, বলুন যে একটি দল এমন একটি পণ্য নিয়ে কাজ করছে যাতে সামনের দিকে অ্যাপ্লিকেশন সহ কয়েকটি এপিআই মোতায়েন করা প্রয়োজন। সাধারণত, এর জন্য কমপক্ষে 2 টি পরিবেশ প্রয়োজন হবে:

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

সুতরাং, ধরে নিচ্ছি দলটি কুবেরনেটস ব্যবহার করছে, এই পরিবেশগুলি হোস্ট করার জন্য কী ভাল অনুশীলন হবে? এখন পর্যন্ত আমরা দুটি বিকল্প বিবেচনা করেছি:

  1. প্রতিটি পরিবেশের জন্য একটি কে 8 এস ক্লাস্টার ব্যবহার করুন
  2. কেবলমাত্র একটি কে 8 এস ক্লাস্টার ব্যবহার করুন এবং এটিকে বিভিন্ন নেমস্পেসে রাখুন।

(1) এটি সম্ভাব্য মানুষের ভুল এবং মেশিনের ব্যর্থতার ঝুঁকি হ্রাস করার পরে সবচেয়ে নিরাপদ বিকল্প বলে মনে হচ্ছে, যা উত্পাদন পরিবেশকে বিপদে ফেলতে পারে। তবে এটি আরও মাস্টার মেশিনের ব্যয় এবং আরও অবকাঠামো পরিচালনার ব্যয় নিয়ে আসে।

(২) দেখে মনে হচ্ছে এটি পরিকাঠামো এবং স্থাপনার ব্যবস্থাপনাকে সহজতর করে কারণ একটি একক ক্লাস্টার রয়েছে তবে এটি কয়েকটি প্রশ্ন উত্থাপন করে যেমন:

  • কীভাবে একজন নিশ্চিত করে যে কোনও মানুষের ভুল উত্পাদন পরিবেশে প্রভাব ফেলতে পারে?
  • কেউ কীভাবে নিশ্চিত করতে পারে যে মঞ্চে পরিবেশে একটি উচ্চ লোড উত্পাদন পরিবেশে কর্মক্ষমতা হ্রাস না ঘটায়?

অন্য কিছু উদ্বেগ থাকতে পারে, তাই লোকেরা কীভাবে এই ধরণের চ্যালেঞ্জগুলি মোকাবেলা করছে সে সম্পর্কে আরও ভাল ধারণা পেতে আমি স্ট্যাক ওভারফ্লোতে কে 8 সম্প্রদায়ের কাছে পৌঁছে যাচ্ছি।


2
আপনি এই কাজ শেষ কিভাবে? দয়া করে আপনি কি আমাদের জানাতে পারেন ... আমিও শিখছি এবং সর্বোত্তম উপায়ে কাজ করার চেষ্টা করছি। পৃথক ক্লাস্টার স্থাপনের মতো শোনার সম্ভবত সম্ভবত সঠিক পথ ...
পাইওটার কুলা

3
আমরা দুটি ক্লাস্টার রেখে শেষ করেছি, একটি স্টেজিংয়ের জন্য এবং অন্যটি উত্পাদনের জন্য। একটি অবকাঠামোগত দৃষ্টিকোণ থেকে মাথার উপরে অতিরিক্ত ব্যবস্থা রয়েছে তবে আমাদের ক্ষেত্রে বিচ্ছিন্নতা স্তরের পক্ষে এটি মূল্য ছিল।
ইয়োনিস গিল

1
@ ইউয়ানিসগিলের কোনও উত্তর আছে যা আপনি গ্রহণযোগ্য হিসাবে চিহ্নিত করতে পারেন?
tdensmore

3
@tdensmore বেশিরভাগ উত্তর তাদের নিজস্ব উপায়ে ভাল। জিনিসটি হল, কেবল একটি উত্তর নেই এবং এটি প্রশ্নে ব্যবহারের ক্ষেত্রে নির্ভর করে। আমার মনে হয় কে 8 এস এবং এর সম্প্রদায়টি যথেষ্ট পরিপক্ক হয়েছে যখন আমি এই প্রশ্নটি প্রথম জিজ্ঞাসা করেছি (প্রায় 3 বছর এখন) এবং কমপক্ষে কয়েকটি ক্লাস্টার ব্যবহার করা হয় এবং কোন উদ্দেশ্যে ব্যবহৃত হয় তা নির্বিশেষে কমপক্ষে কয়েকটি নূন্যতম সেরা অভ্যাস প্রয়োগ করা যেতে পারে বলে মনে হয় ( আমি নেমস্পেস, নেটওয়ার্ক নীতি, নোড নির্বাচক, সেকম্পম্প, ইত্যাদি) ভাবছি।
Yoanis গিল

উত্তর:


33

একাধিক ক্লাস্টার বিবেচনা

ভাদিম আইজেনবার্গের ( আইবিএম / ইসতিও ) এই ব্লগ পোস্টটি একবার দেখুন : চেকলিস্ট: একাধিক কুবেরনেটস ক্লাস্টার ব্যবহার করার পক্ষে এবং কীভাবে তাদের মধ্যে কাজের চাপ বিতরণ করবেন

আমি কিছু উপকার / ধারণাটি হাইলাইট করতে চাই:

একাধিক ক্লাস্টার থাকার কারণ

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

একটি ক্লাস্টার থাকার কারণ

  • সেটআপ, রক্ষণাবেক্ষণ এবং প্রশাসনের ওভারহেড হ্রাস করুন
  • ব্যবহারের উন্নতি করুন
  • মূল্য সংকোচন

গড় রক্ষণাবেক্ষণ সহ একটি অতি ব্যয়বহুল পরিবেশ বিবেচনা করা এবং এখনও উত্পাদন অ্যাপ্লিকেশনগুলির জন্য সুরক্ষা বিচ্ছিন্নতা নিশ্চিত করা, আমি সুপারিশ করব:

  • ডিইভি এবং স্ট্যাগিংয়ের জন্য ১ টি ক্লাস্টার ( ক্যালিকোর মতো নেটওয়ার্ক পলিসি ব্যবহার করে নাম-স্থানগুলি দ্বারা পৃথক করা, এমনকি বিচ্ছিন্ন এমনকি )
  • পিআরডির জন্য ১ টি ক্লাস্টার

পরিবেশ সমতা

বিকাশ, মঞ্চায়ন এবং উত্পাদন যতটা সম্ভব সাদৃশ্য রাখার জন্য এটি একটি ভাল অভ্যাস :

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

সঙ্গে একটি শক্তিশালী সি আই / সিডি টুল একত্রিত হাল । আপনি ডিফল্ট কনফিগারেশন সেট করতে হেলম মানগুলির নমনীয়তাটি ব্যবহার করতে পারেন , কেবলমাত্র একটি পরিবেশ থেকে অন্যের চেয়ে আলাদা কনফিগারেশনগুলিকে ওভাররাইড করে।

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

একাধিক ক্লাস্টার পরিচালনা ( kubectlইন্টারঅ্যাকশন)

আপনি যখন একাধিক কুবেরনেটস ক্লাস্টারগুলির সাথে কাজ করছেন, তখন প্রসঙ্গের সাথে জড়িয়ে পড়া এবং kubectlভুল ক্লাস্টারে চালানো সহজ । এর বাইরেও, কুবেরনেটসের ক্লায়েন্ট ( ) এবং সার্ভারের (কুবার্নেটস মাস্টার) মধ্যে ভার্চুয়াল সংস্করণে নিষেধাজ্ঞার সীমাবদ্ধতা রয়েছে kubectl, সুতরাং সঠিক প্রসঙ্গে কমান্ডগুলি চালনা করার অর্থ সঠিক ক্লায়েন্ট সংস্করণটি চালানো নয়।

এটি কাটিয়ে উঠতে:

  • asdfএকাধিক kubectlসংস্করণ পরিচালনা করতে ব্যবহার করুন
  • KUBECONFIGএকাধিক kubeconfigফাইলের মধ্যে পরিবর্তন করতে env ভার সেট করুন
  • kube-ps1আপনার বর্তমান প্রসঙ্গ / নেমস্পেসের উপর নজর রাখতে ব্যবহার করুন
  • ব্যবহার করুন kubectxএবংkubensক্লাস্টার / নেমস্পেসের মধ্যে দ্রুত পরিবর্তন করতে
  • সমস্ত একসাথে একত্রিত করতে এলিয়াস ব্যবহার করুন

আমার একটি নিবন্ধ রয়েছে যা এটি কীভাবে সম্পাদন করতে হবে তার উদাহরণ দেয়: একাধিক কুবারনেটস ক্লাস্টারগুলির সাথে বিভিন্ন কুবেক্টেল সংস্করণ ব্যবহার করে

আমি নিম্নলিখিত পড়ার সুপারিশ করছি:


26

ডেকার ইমেজগুলি বিকাশের জন্য এবং তৈরি করার জন্য অবশ্যই একটি পৃথক ক্লাস্টার ব্যবহার করুন যাতে আপনার মঞ্চ / উত্পাদন ক্লাস্টারগুলি সুরক্ষার ভিত্তিতে লক করতে পারে। আপনি staging + productionঝুঁকি / খরচের উপর ভিত্তি করে সিদ্ধান্ত নিতে আলাদা আলাদা ক্লাস্টার ব্যবহার করছেন কিনা - অবশ্যই এগুলিকে আলাদা রাখলে stagingক্ষতিগ্রস্থ হওয়া এড়াতে সহায়তা করবেproduction

আমি আপনার পরিবেশের মধ্যে আপনার অ্যাপ্লিকেশনগুলির সংস্করণ প্রচার করতে গিটপস ব্যবহার করার জন্য অত্যন্ত সুপারিশ করব।

মানুষের ত্রুটি কমাতে আমি আপনাকে সিআই / সিডি এবং প্রচারের জন্য যথাসময়ে স্বয়ংক্রিয়করণের দিকে নজর দেওয়ার পরামর্শ দিই।

এখানে জেনকিনস এক্স বেশিরভাগ কুবারনেট ক্লাস্টার সমর্থন করলেও জেলকিন্স এক্স বেশিরভাগ কুবারনেট ক্লাস্টারকে সমর্থন করলেও পুল টু রিকোয়েস্টসে পরিবেশ এবং পূর্বরূপ পরিবেশের মধ্যে প্রচারের জন্য গিটপস ব্যবহার করে কুবারনেটসে একাধিক পরিবেশ সহ সিআই / সিডি কীভাবে স্বয়ংক্রিয় করবেন তা এখানে একটি ডেমো রয়েছে' s


1
লিঙ্কটি নষ্ট হয়ে গেছে বলে মনে হচ্ছে
তিবিন

19

এটি প্রতিটি দৃশ্যে আপনি কী পরীক্ষা করতে চান তার উপর নির্ভর করে। সাধারণভাবে আমি অপ্রয়োজনীয় পার্শ্ব প্রতিক্রিয়া (পারফরম্যান্স ইফেক্ট ইত্যাদি) এড়াতে প্রোডাকশন ক্লাস্টারে টেস্টের দৃশ্যপট চালানো এড়াতে চেষ্টা করব।

যদি আপনার উদ্দেশ্যটি কোনও মঞ্চ সিস্টেমের সাথে পরীক্ষা করে যা সঠিকভাবে উত্পাদন সিস্টেমকে নকল করে আমি সম্পূর্ণ ক্লাস্টারের একটি সঠিক প্রতিলিপি ছড়িয়ে দেওয়ার পরামর্শ দিচ্ছি এবং আপনি পরীক্ষা শেষ করে এবং স্থাপনাটিকে উত্পাদনে নিয়ে যাওয়ার পরে এটি বন্ধ করে দেওয়ার পরামর্শ দেব।

যদি আপনার উদ্দেশ্যটি কোনও মঞ্চ ব্যবস্থা পরীক্ষা করে যা অ্যাপ্লিকেশনটির পরীক্ষা করতে দেয় মোতায়েনের জন্য আমি স্থায়ীভাবে একটি ছোট স্টেজিং ক্লাস্টার চালাব এবং নিয়মিত পরীক্ষার জন্য প্রয়োজনীয় মোতায়েনগুলি (মোতায়েনের একটি ছোট আকারের সংস্করণ সহ) আপডেট করব।

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


3
এটি এখনও বিতর্কের জন্য রয়েছে তবে আমি এই আলোচনাকে সহায়ক বলে মনে করেছি: groups.google.com/forum/#!topic/kubernetes-users/GPaGOGxCDD8
গুপ্ত

1
আমি দুটি ধরণের মঞ্চ পরিবেশের কথা উল্লেখ করে আপত্তি জানাই।
জন ডেভিড

8

এটি পরিষ্কার যে মঞ্চ থেকে প্রযোজনা ক্লাস্টার অ্যাপার্ট রেখে, উত্পাদন পরিষেবাগুলিকে প্রভাবিত করার সম্ভাব্য ত্রুটির ঝুঁকি হ্রাস পাবে। তবে এটি আরও অবকাঠামো / কনফিগারেশন পরিচালনার জন্য ব্যয় করে আসে কারণ এটির জন্য কমপক্ষে:

  • প্রোডাকশন ক্লাস্টারের জন্য কমপক্ষে 3 মাস্টার এবং মঞ্চের জন্য কমপক্ষে একজন মাস্টার
  • সিআই / সিডি সিস্টেমে 2 টি কুবেক্টেল কনফিগারেশন ফাইল যুক্ত করতে হবে

আসুন এটিও ভুলে যাবেন না যে একাধিক পরিবেশ থাকতে পারে। উদাহরণস্বরূপ আমি এমন সংস্থাগুলিতে কাজ করেছি যেখানে কমপক্ষে 3 টি পরিবেশ রয়েছে:

  • প্রশ্ন: এখানে আমরা প্রতিদিন মোতায়েন করেছি এবং ক্লায়েন্টকে ছেড়ে দেওয়ার আগে যেখানে আমরা আমাদের অভ্যন্তরীণ QA করেছি)
  • ক্লায়েন্ট কিউএ: এটি যেখানে আমরা উত্পাদনে মোতায়েনের আগে মোতায়েন করেছি যাতে ক্লায়েন্ট উত্পাদন ছাড়ার আগে পরিবেশটিকে বৈধতা দিতে পারে)
  • উত্পাদন: এই যেখানে উত্পাদন পরিষেবা মোতায়েন করা হয়।

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

আমি অনুমান করি যে আমি বর্ণিতদের মতো পরিস্থিতিগুলির জন্য কী কী নিদর্শনগুলি ব্যবহার করা হয় তা দেখতে আমি k8s সম্প্রদায়ের কাছে পৌঁছাতে চেয়েছিলাম।


6

সম্মতি বা অন্যান্য প্রয়োজনীয়তা অন্যথায় নির্দেশ না করা পর্যন্ত, আমি সমস্ত পরিবেশের জন্য একটি ক্লাস্টারের পক্ষে আছি। এই পদ্ধতির সাথে, মনোযোগ পয়েন্টগুলি হ'ল:

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

  • আপনার নেমস্পেসগুলি সাবনেট হিসাবে বিবেচনা করুন এবং ডিফল্টরূপে সমস্ত অ্যাড্রেস / ইনগ্রিস ট্র্যাফিক নিষিদ্ধ করুন। Https://kubernetes.io/docs/concepts/services-networking/network-polferences/ দেখুন ।

  • পরিষেবা অ্যাকাউন্ট পরিচালনা করার জন্য কৌশল আছে। ClusterRoleBindingsকোনও ক্লাস্টার একাধিক পরিবেশের হোস্ট করলে আলাদা কিছু বোঝায় imp

  • হেলমের মতো সরঞ্জাম ব্যবহার করার সময় যাচাই বাছাই করুন। কিছু চার্ট স্পষ্টতই ক্লাস্টার-প্রশস্ত অনুমতি সহ পরিষেবা অ্যাকাউন্টগুলি ইনস্টল করে তবে পরিষেবা অ্যাকাউন্টগুলিতে অনুমতিগুলি তারা যে পরিবেশে রয়েছে তার মধ্যে সীমাবদ্ধ থাকতে হবে।


ক্লাস্টার আপগ্রেডেশন ব্যর্থতার জন্য আপনি কীভাবে পরিকল্পনা করতে পারেন?
তিবিন

2

উত্পাদন এবং "অ-উত্পাদন" এর মধ্যে শক্তিশালী বিচ্ছিন্নতা প্রয়োগের খুব তালিকায় একাধিক ক্লাস্টার ব্যবহার করা আদর্শ।

সেই চেতনায়, মনে রাখবেন যে গিটল্যাব 13.2 (জুলাই 2020) এখন অন্তর্ভুক্ত:

কোরে একাধিক কুবেরনেটস ক্লাস্টার স্থাপনা

গিটল্যাব ব্যবহার করে গিটল্যাবের সাথে একাধিক কুবারনেটস ক্লাস্টার স্থাপনের জন্য আগে একটি প্রিমিয়াম লাইসেন্সের প্রয়োজন।
আমাদের সম্প্রদায় কথা বলেছিল এবং আমরা শুনেছি: একাধিক ক্লাস্টারে মোতায়েন করা এমনকি ব্যক্তিগত অবদানকারীদের জন্যও কার্যকর।
আপনার প্রতিক্রিয়ার ভিত্তিতে, গিটল্যাব ১৩.২ থেকে শুরু করে, আপনি কোরে একাধিক গ্রুপ এবং প্রকল্প ক্লাস্টারে নিযুক্ত করতে পারেন।

https://about.gitlab.com/images/13_2/MultipleProjectClusters.png

দেখুন ডকুমেন্টেশন এবং ইস্যু /


1

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

নেটওয়ার্ক নীতি - প্রোড / স্টেজিং স্টোরগুলির সাথে ইন্টারঅ্যাক্ট করার জন্য দেব / কিউ পরিবেশগত কাজের চাপকে নিষিদ্ধ করা।

অ্যাক্সেস নিয়ন্ত্রণ - যারা ক্লাস্টাররোলস, ভূমিকা ইত্যাদি ব্যবহার করে বিভিন্ন পরিবেশের সংস্থানগুলিতে অ্যাক্সেস পেয়েছেন

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.