ডাউনটাইম ছাড়াই ডকারের ধারক আপডেট করুন


17

ধরা যাক আমার কাছে একটি ওয়েব সার্ভারের সাথে একটি ডকারের ধারক রয়েছে (অ্যাপাচি 2 এর মতো)। এখন আমি এর অধীনে ওএস আপডেট করতে চাই। এই এসএফ উত্তরটি বলেছে সবচেয়ে ভাল উপায় হ'ল বেস চিত্র এবং আমার অ্যাপাচি চিত্রটি পুনর্নির্মাণ করা। তবে চিত্র মোতায়েনের অর্থ ডাউনটাইম কারণ আমি নতুনটি তৈরি করার আগে আমাকে পুরানো ধারকটি মুছতে হবে, সুতরাং কেবলমাত্র একটি ধারক রয়েছে যা 80/443 পোর্টে আবদ্ধ হয়।

তবে আমি কীভাবে শূন্য ডাউনটাইমের সাথে এই আপডেটটি স্থাপন করব? আমার কি ভার ভারসাম্যপূর্ণ ব্যবহার করা উচিত এবং আন্তঃবাহক যোগাযোগ ব্যবহার করা উচিত? এবং আমি কীভাবে ভারসাম্য আপডেট করব?

উত্তর:


18

আদর্শ লক্ষ্য দৃশ্যের

হ্যাঁ, আপনার একটি ভার ভারসাম্যপূর্ণ ব্যবহার করা উচিত এবং একবারে একটি উদাহরণ আপডেট করা উচিত। আন্ত: ধারক যোগাযোগ কোথায় আসে তা আমি নিশ্চিত নই।

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

তারপরে, আপনি ব্যাকেন্ডগুলি আপগ্রেড করতে চান, যা এই ক্ষেত্রে অ্যাপাচি উদাহরণ।

  1. লোড ব্যালান্সারের জন্য যোগ্য ব্যাকএন্ডের বাইরে বি কে নিয়ে যান যাতে এটি আর কোনও ট্র্যাফিক গ্রহণ করে না।
  2. বর্তমানের লাইভ অনুরোধগুলি পরিবেশন করার জন্য এবং বিদ্যমান সংযোগগুলি বন্ধ করার জন্য অপেক্ষা করুন।
  3. বি সরবরাহ করে এমন ধারক বা অন্তর্নিহিত ভিএম আপডেট করুন
  4. পুনরায় চালু করুন, এটি লোড হওয়ার জন্য অপেক্ষা করুন এবং কাজ শুরু করুন
  5. এটি সঠিকভাবে নতুন অনুরোধগুলি সরবরাহ করছে তা নিশ্চিত করার জন্য বি পরীক্ষা করুন
  6. ট্র্যাফিক পুনরায় সক্ষম করতে লোকে ব্যালেন্সার ব্যাকএন্ড পুলে বিটিকে যুক্ত করুন

তারপরে, সি, ডি ইত্যাদির জন্য একই প্রক্রিয়াটি করুন

মনে রাখবেন যে নভেম্বর ২০১৩ থেকে ডকারের পাত্রে স্থান পরিবর্তন করার জন্য একটি উন্মুক্ত অনুরোধ রয়েছে , তবে এটির তেমন অগ্রগতি বলে মনে হচ্ছে না সুতরাং উপরের সমাধানটি আপনাকে মাঝামাঝি সময়ে কী করা উচিত।

বিদ্যমান লাইভ সাইটের জন্য কী করবেন

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

আসুন ধরে নেওয়া যাক:

  • আপনার ধারকটির দিকে ইঙ্গিত করে আপনার একটি ডিএনএস নাম রয়েছে
  • আপনার ধারকটি কিছু আইপি ঠিকানায় চলে
  • আপনার ব্যবহারকারীরা ধারকটির আইপি ঠিকানা জানেন না এবং এটি কোথাও হার্ড-কোডড নয়

যদি এই অনুমানগুলি মিথ্যা হয় তবে আপনার প্রথমে এটি ঠিক করা উচিত এটি সঠিক।

তারপরে, এই পদক্ষেপগুলি অনুসরণ করুন:

  1. একটি নতুন আইপিতে লোড ব্যালেন্সার তৈরি করুন এবং এটি কেবলমাত্র ব্যাকএন্ড হিসাবে বিদ্যমান ধারকটিতে এটি নির্দেশ করুন
  2. সরাসরি কনটেইনার আইপির চেয়ে লোড ব্যালান্সারের দিকে নির্দেশ করতে ডিএনএস পরিবর্তন করুন
  3. একই ভিএম + ধারক সেটআপ সহ অভিন্ন অ্যাপাচি ব্যাকএন্ড যুক্ত করুন
  4. এখন আপনার দুটি বি এবং সি সহ লোড ব্যালেন্সার রয়েছে, তাই একবারে একবারে আপগ্রেড করার জন্য "আদর্শ লক্ষ্য দৃশ্যাবলী" বিভাগের দিকনির্দেশগুলি অনুসরণ করুন

কীভাবে একটি ভারসাম্য আপডেট করতে হয়

সহজ (হোস্টেড) উপায়

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

ম্যানুয়াল উপায়

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

  • যে আমাদের হোস্টের নামটি আমাদের লোড ব্যালেন্সার এ এর ​​আইপি সমাধান করছে যা আমরা আপডেট করতে চাই
  • আমাদের লোড ব্যালান্সারের পি 1, পি 2 ইত্যাদির ব্যাকএন্ড পুল রয়েছে has

আমরা নিম্নলিখিত হিসাবে এগিয়ে যান:

  • নতুন সফ্টওয়্যার সংস্করণ সহ একটি নতুন লোড ব্যালেন্সার বি তৈরি করুন
  • আমাদের নতুন লোড ব্যালান্সার বি তে ব্যাকএন্ড হিসাবে সমস্ত ব্যাকএন্ড পুলের উদাহরণ পি 1, পি 2 ইত্যাদি যুক্ত করুন
  • এ এর সাথে ডিএনএস রেজোলিউশনে বি এর আইপি ঠিকানা যুক্ত করুন

    • এখন আমরা কার্যকরভাবে লোড ব্যালেন্সার হিসাবে ডিএনএস ব্যবহার করছি
    • যদি A এবং B এর প্রবেশদ্বয় অপ্রকাশিত হয় তবে সেগুলি কার্যকরভাবে 50-50 হয়
    • এখন বি কীভাবে পারফর্ম করে তা দেখুন, কোনও ত্রুটি রয়েছে কিনা ইত্যাদি now
    • বি এর সাথে যদি কিছু ভুল হয় তবে নিম্নলিখিত হিসাবে পূর্বাবস্থায় ফিরে যান:

      1. ডিএনএস কনফিগারেশন থেকে বি সরান
      2. ডিএনএসে বি এন্ট্রি অদৃশ্য হওয়ার জন্য অপেক্ষা করুন (যেমন, টিটিএলটির মেয়াদ শেষ হওয়ার অপেক্ষা করুন )
      3. নিচে খ
  • ধরে নিন আপনি বি এর জন্য "বার্ন-ইন" পরীক্ষা করেছেন এবং সবকিছু ঠিক আছে
  • ধীরে ধীরে ডিএনএস-এ বিয়ের জন্য অগ্রাধিকার এবং ওজন আপডেট করুন
  • সম্পূর্ণভাবে ডিএনএস থেকে এটিকে সরিয়ে ফেলুন
  • ডিএনএস টিটিএলটির মেয়াদ শেষ হওয়ার অপেক্ষা করুন; এ আর কোনও অনুরোধ পাবে না
  • নিচে A

এবং তুমি করে ফেলেছ.

বিশদ, চিত্র এবং সরঞ্জামাদি tool

এই লিখনগুলি এবং সরঞ্জামগুলি দেখুন যা আপনাকে প্রক্রিয়াটি স্বয়ংক্রিয় করতে সহায়তা করতে পারে তবে সাধারণ ধারণাটি একই:

নৈতিক

"কম্পিউটার সায়েন্সের সমস্ত সমস্যা অনেক বেশি ইন্ডিরিয়ারেশনের সমস্যা বাদে অন্য একটি ইন্ডিরিয়ারেশন দ্বারা সমাধান করা যেতে পারে।" - ডেভিড হুইলার


কিন্তু যখন লোড ব্যালেন্সারটিও খুব ধারক মধ্যে থাকে (কোরিওএস ব্যবহার করার সময়), আমি এই ধারকটি কীভাবে আপডেট করব?
দাস_জ

@ ডাস_জে আমি লোড ব্যালান্সার আপডেট করার জন্য কীভাবে যুক্ত করতে উত্তরটি সম্পাদনা করেছি। ইঙ্গিত: এগুলি সমস্ত অন্য ইন্ডিয়ারেশন সম্পর্কে about :-)
মিশা ব্রুকম্যান

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

@ স্টেফানলাসিউস্কি আপনি একদম ঠিক আছেন এবং আমি একটি শিরোনামে "পাত্রে" নোটটি সরিয়েছি। বাহ্যিক ব্যবহারকারীর কাছে, কোনও অ্যাপ্লিকেশন বা লোড ব্যালেন্সার খালি ধাতু, ধারক বা ভিএম-তে চলছে কিনা তা মূলত অদৃশ্য।
মিশা ব্রুকম্যান
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.