একটি পোড এবং একটি স্থাপনার মধ্যে পার্থক্য কি?


241

আমি এর সাথে শুঁটি তৈরি type:deploymentকরছি তবে আমি দেখতে পাচ্ছি যে কিছু ডকুমেন্টেশন ব্যবহার করে type:pod, বিশেষত মাল্টি-কনটেইনার পোডগুলির জন্য ডকুমেন্টেশন :

apiVersion: v1
kind: Pod
metadata:
  name: ""
  labels:
    name: ""
  namespace: ""
  annotations: []
  generateName: ""
spec:
  ? "// See 'The spec schema' for details."
  : ~

তবে শুঁটি তৈরি করতে আমি কেবল একটি স্থাপনার ধরণ ব্যবহার করতে পারি :

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: ""
spec:
  replicas: 3
  template:
    metadata:
      labels:
        app: ""
    spec:
      containers:
        etc

আমি লক্ষ করেছি যে পোড ডকুমেন্টেশন বলেছেন:

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

দ্রষ্টব্য: আমরা শুঁটি তৈরিতে একটি স্থাপনা ব্যবহার করার পরামর্শ দিই। আপনি যদি কোনও স্থাপনা তৈরি করতে না চান তবে আপনার নীচের নির্দেশাবলীটি ব্যবহার করা উচিত।

কিন্তু এটি প্রশ্ন উত্থাপন করে kind:podভাল কি জন্য? আপনি কি কোনও উপায়ে রেফারেন্স শুঁটি করতে পারেন? আমি কোন উপায় দেখিনি। দেখে মনে হচ্ছে আপনি পোড দিয়ে যা পান তা হ'ল কিছু অতিরিক্ত মেটাডেটা তবে মোতায়েনের বিকল্পগুলি replicaবা যেমন পুনঃসূচনা নীতিগুলির কোনওটিই নয়। একটি পোড যা ডেটা অব্যাহত রাখে না, পুনঃসূচনা থেকে বেঁচে থাকে তা কী ভাল? আমি মনে করি আমিও একটি স্থাপনার সাথে একটি মাল্টি-ধারক শুঁটি তৈরি করতে সক্ষম হব।

উত্তর:


190

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


7
ধন্যবাদ, তবে আপনি কখন সরাসরি পোড তৈরি করবেন?
বিজয়ন

11
একটি কাস্টম নিয়ামক থাকা এমন একটি ক্ষেত্রে যেখানে আপনি সম্ভবত উচ্চতর স্তরের বিমূর্তি ব্যবহার না করে সরাসরি শুঁটি তৈরি এবং পরিচালনা করতে চান।
অনিরুধ রমনাথন

24
@ জর্জন টিপলিং যখন মোছা হয় তখন পোডগুলি পুনরায় তৈরি করার জন্য আমার যখন কুবারনেটের প্রয়োজন হয় না তখন আমি মোস্তক ছাড়াই শিং তৈরি করি। একটি ব্যবহারের ক্ষেত্রে হ'ল প্রথমে একটি পোড তৈরি করে জিনিসগুলি পরীক্ষা করা।
ব্যবহারকারী 2526795

243

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

কারণ আপনি একটি প্রয়োজন স্থাপনার বা অন্যান্য Kubernetes এপিআই বস্তু একটি মত - বস্তুর রেপ্লিকেশন নিয়ামক বা replicaset - যে চাহিদা রাখার প্রতিলিপি (pods) জীবিত (kubernetes ব্যবহার করে বিন্দু ধরনের যে)।

সাধারণ অ্যাপ্লিকেশনটির জন্য আপনি অনুশীলনে যা ব্যবহার করবেন তা হ'ল:

  1. ডিপ্লোয়মেন্ট অবজেক্ট (যেখানে আপনি আপনার অ্যাপ্লিকেশন ধারক / পাত্রে নির্দিষ্ট করবেন) যা আপনার অ্যাপ্লিকেশনটির ধারককে কিছু অন্যান্য স্পেসিফিকেশন সহ হোস্ট করবে।

  2. পরিষেবা অবজেক্ট (এটি একটি গ্রুপিং অবজেক্টের মতো এবং এটিতে podsএকটি নির্দিষ্ট লেবেল রয়েছে এমনগুলির জন্য এটি তথাকথিত ভার্চুয়াল আইপি (ক্লাস্টার আইপি দেয়) - এবং সেগুলি podsমূলত এমন অ্যাপ্লিকেশন ধারক যা আপনি প্রাক্তন স্থাপনা অবজেক্টের সাথে নিযুক্ত করেছেন )।

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

সুতরাং আপনার একটি পরিষেবার মতো একটি বিষয় প্রয়োজন , এটি তাদের podsএকটি স্থিতিশীল আইপি দেয় ।

কেবল আপনাকে চারপাশে কিছু প্রসঙ্গ দিতে চেয়েছিলাম pods, যাতে জিনিসগুলি কীভাবে একসাথে কাজ করে তা আপনি জানেন।

আশা করি যে আপনার জন্য কয়েকটি জিনিস সাফ করে দেয়, খুব শীঘ্রই আমি তোমার জুতোতে ছিলাম :)


1
উত্তম উত্তর, আমাদের কি একটি প্রতিলিপি বা একটি প্রতিলিপি নিয়ন্ত্রক প্রয়োজন কারণ আমি চেষ্টা করেছি যে ডিপ্লোয়মেন্ট অবজেক্টগুলি এই বিষয়গুলি রেপ্লিকাসগুলি নিয়ন্ত্রণ করে?
ব্যবহারকারীর_মদা

3
হ্যাঁ, ডিপ্লোয়মেন্ট অবজেক্টটি রেপ্লিকেশনটি পরিচালনা করে তবে আপনি এই ধরণের সাহায্যে কোনও বস্তুও ব্যবহার করতে পারেন: রেপ্লিকেশন কনট্রোলার বা ধরনের: আপনি যদি সত্যিই চাইতেন তবে এটির নিজস্ব প্রতিরূপিকা, তবে বাস্তবে আমি তেমন কিছুই দেখিনি ...
টমিসলভ মিকুলিন

2
kind: Podউদাহরণস্বরূপ এটি কেন একাধিক কুবেরনেটস নথি দেয় ? যেমন, সিক্রেটস গ্রাস কিভাবে env Vars হিসাবে: kubernetes.io/docs/concepts/configuration/secret/...
rm.rf.etc

1
আমি পুরোপুরি নিশ্চিত নই, সম্ভবত কারণ কে 8-তে ধারণাগুলি ব্যাখ্যা করা সহজ ... নিয়ন্ত্রক, মোতায়েন ইত্যাদির ওজন না দিয়ে ...
টমিসালভ মিকুলিন

1
কিছু ক্ষেত্রে রয়েছে যখন আপনি পড তৈরি করতে চান, উদাহরণস্বরূপ আপনি যদি কোনও পরীক্ষা সিডিকার চালাচ্ছেন (উদাহরণস্বরূপ helm test) যেখানে আপনার চিরতরে অ্যাপ্লিকেশন চালানোর দরকার নেই, এবং আমাদের একাধিক প্রতিলিপি প্রয়োজন নেই, সেই ক্ষেত্রে পড উপযুক্ত is
বালকৃষ্ণ

61

কুবারনেটসের তিনটি অবজেক্ট টাইপ রয়েছে যা সম্পর্কে আপনার জানা উচিত:

  • শুঁটি - এক বা একাধিক ঘনিষ্ঠভাবে সম্পর্কিত পাত্রে চালায়
  • পরিষেবাদি - একটি কুবেরনেটস ক্লাস্টারে নেটওয়ার্কিং সেট আপ করে
  • স্থাপনা - তাদের সঠিক কনফিগারেশন রয়েছে এবং এগুলির সঠিক সংখ্যা রয়েছে কিনা তা নিশ্চিত করে অভিন্ন পোডগুলির একটি সেট বজায় রাখে।

pods:

  • একক পাত্রে সেট চালায়
  • এক-দেব দেব উদ্দেশ্যে ভাল
  • কদাচিৎ সরাসরি উত্পাদন ব্যবহৃত হয়

ডিপ্লোয়মেন্ট:

  • অভিন্ন পোডগুলির একটি সেট চালায়
  • প্রতিটি পোডের অবস্থা পর্যবেক্ষণ করে প্রয়োজনীয় হিসাবে আপডেট করে
  • দেবের জন্য ভাল
  • উত্পাদন জন্য ভাল

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

সুতরাং, এইর মতো ত্রুটি বার্তাগুলির সাথে লড়াই করার পরিবর্তে:

নিষিদ্ধ: পড আপডেটগুলি বাদে ক্ষেত্র পরিবর্তন করতে পারে না spec.containers[*].image

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


9

পড কনটেইনার উদাহরণ।

এখানে চিত্র বর্ণনা লিখুন

এটিই আউটপুট replicas: 3

কারও মনে রাখুন deploymentঅনেকগুলি চলমান দৃষ্টান্ত (প্রতিলিপি) থাকতে পারে।

//deployment.yaml
apiVersion: apps/v1beta2
kind: Deployment
metadata:
  name: tomcat-deployment222
spec:
  selector:
    matchLabels:
      app: tomcat
  replicas: 3
  template:
    metadata:
      labels:
        app: tomcat
    spec:
      containers:
      - name: tomcat
        image: tomcat:9.0
        ports:
        - containerPort: 8080

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

সুতরাং আমরা কি পোডটিকে ডিপ্লোমেন্টের প্রতিরূপ থেকে এক হিসাবে নামকরণ করতে পারি?
কিওরিয়া

@ কিওরিয়া, "মোতায়েনের প্রতিলিপি" বলতে কী বোঝ?
সারকান

@ সেরকান আমি এই প্রতিলিপিগুলি বোঝাতে চাইছি: ডিপ্লোয়মেন্ট স্পেক থেকে 3।
কিওরিয়া

@ কেওরিয়া, replicas: 3চিত্রের শীর্ষ অংশের উল্লেখ, এর অর্থ "হেই, আপনি যখন এই প্রক্রিয়াটি চালাবেন, তখন 3 ভার্চুয়াল / রিয়েল কম্পিউটার তৈরি করুন - উদাহরণস্বরূপ"। "ডিপ্লোয়মেন্টস" এর মতো এটি একটি বাড়ি এবং "শুঁটি" ব্যক্তি। একটি বাড়ী এবং এর ভিতরে তিন জন ব্যক্তি কাজ করে। আপনি এই নির্দিষ্ট করতে কি চেষ্টা করছেন?
সারকান

6

পড হ'ল কনটেইনারগুলির সংগ্রহ এবং কুবার্তেসের মূল অবজেক্ট। পোডের সমস্ত পাত্রে একই নোড থাকে।

  • উত্পাদনের জন্য উপযুক্ত নয়
  • কোনও ঘূর্ণায়মান আপডেট নেই

স্থাপনা কুবেরনেটসে এক ধরণের নিয়ামক।

Controllers use a Pod Template that you provide to create the Pods for which it is responsible.

স্থাপনা একটি প্রতিলিপি তৈরি করে যা ফলস্বরূপ নিশ্চিত করে যে, কারেন্টেরেলপ্লিকাস সর্বদা পছন্দসই রেপ্লিকাসের সমান।

সুবিধাদি :

  • আপনি স্থাপনা ব্যবহার করে আপনার পরিবর্তনগুলি রোলআউট এবং রোলব্যাক করতে পারেন
  • প্রতিটি পোডের অবস্থা পর্যবেক্ষণ করে
  • উত্পাদনের জন্য সেরা উপযুক্ত
  • রোলিং আপডেট সমর্থন করে

4

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

pods

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

একটি রেপ্লিকাসেট , নামটি থেকে বোঝা যায়, তাদের পুনর্বিবেচনার ইতিহাসের সাথে বজায় রাখা প্রতিরূপ (পডস) এর একটি সেট ।

( রেপ্লিকাসেট রিপ্লিকেশনকন্ট্রোলার নামে পরিচিত একটি পুরানো অবজেক্টকে প্রসারিত করে - যা হুবহু একই তবে সংশোধন ইতিহাস ছাড়া))

একটি রেপ্লিকাসেট ক্রমাগত চলমান শিংগুলির তালিকা পর্যবেক্ষণ করে এবং নিশ্চিত করে যে কোনও নির্দিষ্ট স্পেসিফিকেশনের সাথে মেলে এমন পোডের চলমান সংখ্যা সর্বদা পছন্দসই সংখ্যার সাথে মেলে।

এখানে চিত্র বর্ণনা লিখুন

Removing a pod from the scope of the ReplicationController comes in handy
when you want to perform actions on a specific pod. For example, you might 
have a bug that causes your pod to start behaving badly after a specific amount 
of time or a specific event.

একটি স্থাপনা

অ্যাপ্লিকেশন মোতায়েন এবং তাদের ঘোষণামূলকভাবে আপডেট করার জন্য একটি উচ্চ-স্তরের সংস্থান।

আপনি যখন কোনও স্থাপনা তৈরি করেন , নীচে একটি প্রতিলিপি সংস্থান তৈরি করা হয় (অবশেষে সেগুলির মধ্যে আরও কিছু)। রেপ্লিকাসেটগুলিও পোডগুলি প্রতিলিপি এবং পরিচালনা করে। একটি নিয়োজন ব্যবহার করার সময়, প্রকৃত pods নির্মিত এবং এর দ্বারা পরিচালিত ডিপ্লোয়মেন্ট এর ReplicaSets , না দ্বারা ডিপ্লোয়মেন্ট সরাসরি এখানে চিত্র বর্ণনা লিখুন

আসুন কী ঘটেছিল সে সম্পর্কে ভাবি। আপনার ডিপ্লোয়মেন্ট রিসোর্সে পড টেমপ্লেট পরিবর্তন করে আপনি নিজের অ্যাপটিকে নতুন সংস্করণে আপডেট করেছেন a একক ক্ষেত্র পরিবর্তন করে!

এখানে চিত্র বর্ণনা লিখুন

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

এই চিত্রগুলি কুবারনেটস ইন অ্যাকশন বইয়েরও


2

পডগুলি এড়ানোর চেষ্টা করুন এবং নোডের ব্যর্থতা বা পোড সমাপ্তির ঘটনায় ধরণের পোডের জিনিসগুলি পুনরায় নির্ধারণ করা হবে না (যেমন পডের জিনিসগুলি) পাত্রে পরিচালনার জন্য পরিবর্তে ডিপোয়লেটগুলি বাস্তবায়ন করুন।

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


1

কুবারনেটে পডগুলি ক্ষুদ্রতম মোতায়েনযোগ্য ইউনিট। প্রতিবার যখনই আমরা ডিগ্রিমেন্টস, রেপ্লিকা-সেটস, স্টেটফুলসেটস, ডেমনসেটের মতো কুবেরনেটস অবজেক্ট তৈরি করি তখন এটি পড তৈরি করে।

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

কিছু ক্ষেত্রে আছে যখন আপনি পড তৈরি করতে চান, উদাহরণস্বরূপ, আপনি যদি কোনও পরীক্ষা সিডিকার চালাচ্ছেন যেখানে আপনাকে চিরতরে অ্যাপ্লিকেশন চালানোর দরকার নেই, আপনার একাধিক প্রতিরূপের প্রয়োজন হবে না এবং আপনি যখন অ্যাপ্লিকেশন চালাতে চান তখন অ্যাপ্লিকেশন চালান you কেস পড উপযুক্ত। উদাহরণস্বরূপ helm test, এটি কোন পড সংজ্ঞা যা চালানোর জন্য প্রদত্ত কমান্ড সহ একটি ধারক নির্দিষ্ট করে।

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