গুগল কুবারনেটস ইঞ্জিনে কোনও কুবারনেটস লোড ব্যালেন্সারের বাহ্যিক আইপি ঠিকানা কীভাবে চয়ন করবেন


16

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

পোদের জন্য আমি যে ইয়ামল ফাইলটি ব্যবহার করেছি তা হ'ল:

apiVersion: v1
kind: Pod
metadata:
  name: my-pod
  labels:
    app: my-app
spec:
  containers:
  - name: my-container
    image: gcr.io/my-project/my-app:latest

আমি এটি ব্যবহার করে একটি লোড ব্যালেন্সার সেটআপ করতে পারি:

apiVersion: v1
kind: Service
metadata:
  name: my-load-balancer
spec:
  ports:
  - port: 80
    targetPort: 80
  selector:
    app: my-app
  type: LoadBalancer

এটি একটি বাহ্যিক আইপি সরবরাহ করে যার উপর অ্যাপ্লিকেশনটি অ্যাক্সেসযোগ্য। তবে আমি যে আইপি চাই তা ব্যবহার করতে এটি কনফিগার করার কোনও উপায় খুঁজে পাচ্ছি না। সেবা ডকুমেন্টেশন একটি spec.clusterIP সেটিং উল্লেখ, কিন্তু এই বহিস্থিত IP সঙ্গে সম্পর্কযুক্ত বলে মনে হচ্ছে না। তেমনিভাবে, লোড ব্যালেন্সার সেট আপ হয়ে গেলে, পরিষেবার স্থিতি.লোডবেলেন্সআরিংস্রেস.আইপি ক্ষেত্রটি তার বাহ্যিক আইপি ঠিকানায় সেট করা থাকলেও এটি কনফিগার করার মতো সেটিংস বলে মনে হয় না।

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

আমি যা চাই তা করার কোনও উপায় আছে - একটি নির্বাচিত স্ট্যাটিক আইপি ঠিকানায় গুগল কুবারনেটস ইঞ্জিনে একটি কুবারনেট পোড (বা রেপ্লিকেশন কন্ট্রোলার) এক্সপোজ করার জন্য?

উত্তর:


9

টি এল; ডিআর গুগল কনটেইনার ইঞ্জিন চলমান Kubernetes v1.1 সমর্থন loadBalancerIPঠিক যেমন স্বয়ংক্রিয় নির্ধারিত আইপি চিহ্নিত স্ট্যাটিক প্রথম।

Kubernetes v1.1 সমর্থন externalIPs :

apiVersion: v1
kind: Service
spec:
  type: LoadBalancer
  loadBalancerIP: 10.10.10.10
  ...

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

ক্রস-অঞ্চল ভারসাম্য বজায় রাখার ডকুমেন্টেশন কম্পিউট ইঞ্জিন এবং Kubernetes / কনটেইনার ইঞ্জিন জন্য বেশিরভাগ হয়, কিন্তু এটি এখনও দরকারী বিশেষত অংশ "কনফিগার ভারসাম্য বজায় রাখার সেবা"।

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


হালনাগাদ

এটি এখন সমর্থিত (যদিও নথিভুক্ত থাকলেও):

  1. আপনি কুবেরনেটস ১.১ বা তারপরে চালাচ্ছেন কিনা তা পরীক্ষা করুন ( জিকেই এর অধীনে আপনার ক্লাস্টারটি সম্পাদনা করুন এবং "নোড সংস্করণ" দেখুন)
  2. নেটওয়ার্কিং> বহিরাগত আইপি ঠিকানাগুলির অধীনে আপনার ক্লাস্টারের ভিএম উদাহরণের দিকে ইঙ্গিত করে কিছু ইফেমেরাল চিহ্নিত করা উচিত (যদি না হয় বা নিশ্চিত না হয় তবে একবারে মোতায়েন loadBalancerIPকরুন, আপনি চালনার সময় কোনও বাহ্যিক আইপি বরাদ্দ হওয়া পর্যন্ত অপেক্ষা করুন kubectl get svcএবং সেই আইপিটি দেখুন যে পৃষ্ঠাতে তালিকা)। যেমন তাদের একজন চিহ্নিত করুন স্ট্যাটিক , চল বলে এক্সটার্নাল ঠিকানা হল 10.10.10.10
  3. সম্পাদনা করুন আপনার LoadBalancer আছে loadBalancerIP=10.10.10.10উপরের মতো (আইপি যে Google দ্বারা আপনাকে দেওয়া হয়েছিল মানিয়ে)।

এখন আপনি যদি নিজের লোডবালেন্সার বা এমনকি আপনার নেমস্পেসটি মুছে ফেলেন তবে সেই ক্লাস্টারে পুনরায় প্রয়োগ করার পরে সেই আইপি ঠিকানাটি সংরক্ষণ করা উচিত। যদি আপনাকে ক্লাস্টার পরিবর্তন করতে হয় তবে কিছু ম্যানুয়াল ফিডলিং সম্ভব হওয়া উচিত:

  1. "নেটওয়ার্ক লোড ব্যালেন্সিং" বিভাগের অধীনে , "টার্গেট পুল" ট্যাব , "টার্গেট পুল তৈরি করুন" বোতামটি ক্লিক করুন:
    • নাম: cluster-pool(বা অন্য কোনও নাম)
    • অঞ্চল: আপনার ক্লাস্টারের একটি নির্বাচন করুন
    • স্বাস্থ্য পরীক্ষা: ptionচ্ছিক, যদি আপনি চান
    • বিদ্যমান উদাহরণ গ্রুপগুলি নির্বাচন করুন: আপনার কুবেরনেটস ক্লাস্টার
  2. "নেটওয়ার্ক লোড ব্যালেন্সিং" বিভাগের অধীনে , "ফরওয়ার্ডিং বিধিগুলি" ট্যাব , "ফরওয়ার্ডিং নিয়ম তৈরি করুন" বোতামটি ক্লিক করুন:
    • নাম: http-cross-region-gfr(বা অন্য কোনও নাম)
    • অঞ্চল: আপনার ক্লাস্টারের একটি নির্বাচন করুন
    • বাহ্যিক আইপি: loadbalancer-ip-crossregionআপনি কেবল সংরক্ষিত নির্বাচন করুন
    • লক্ষ্য পুল: cluster-poolসবেমাত্র তৈরি করেছেন তা নির্বাচন করুন

এগুলি কি এখনও প্রাসঙ্গিক?
বেন

8

ভাল খবর. এটি কুবারনেটস v1.1 এ স্থির করা হবে। আপনি service.spec.loadBalancerIPনিজের মালিকানা জানেন এমন কোনও আইপিতে আপনি ক্ষেত্রটি সেট করতে পারেন ।


আগে:

এটি একটি বৈশিষ্ট্য যা ফাটলগুলির মধ্যে পড়েছিল। এটি কাজ করার কথা ছিল (এবং এমনকি এটি কোনও সময়ে কাজও করতে পারে), তবে ভালভাবে পরীক্ষা করা হয়নি এবং সেই পথে ভেঙে পড়েছিল এবং পরে ঘটনাক্রমে ডিজাইনের (সাময়িকভাবে) সাজানো হয়েছিল।

1.0 এর পরে জিনিসগুলি ঠিক করার জন্য এটি আমার সংক্ষিপ্ত তালিকায় রয়েছে।

https://github.com/GoogleCloudPlatform/kubernetes/issues/10323


এটি সম্ভবত একটি মন্তব্য নয়, উত্তর নয়।
ওয়ার্ড - মনিকা পুনরায়

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