GKE এর সাথে পরিষেবাগুলি প্রকাশ এবং ব্যবহার করতে ব্যক্তিগত পরিষেবা সংযোগ ব্যবহার করে৷

১. ভূমিকা

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

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

45b90d50690dd111.png

চিত্র ২. প্রাইভেট সার্ভিস কানেক্ট এন্ডপয়েন্ট এবং সার্ভিস অ্যাটাচমেন্ট ব্যবহার করে সার্ভিস কনজিউমারদেরকে তাদের নিজস্ব ভিপিসি নেটওয়ার্ক থেকে সার্ভিস প্রডিউসারের ভিপিসি নেটওয়ার্কে থাকা সার্ভিসগুলোতে ট্র্যাফিক পাঠাতে দেয় (বড় করে দেখতে ক্লিক করুন)।

আপনি যা শিখবেন

  • ব্যক্তিগত পরিষেবা সংযোগের সুবিধাগুলি
  • পরিষেবা গ্রাহকদের জন্য মূল ধারণা
  • পরিষেবা উৎপাদকদের জন্য মূল ধারণা
  • একটি উৎপাদনকারী পরিবেশ তৈরি করুন
  • একটি সার্ভিস অ্যাটাচমেন্টের মাধ্যমে সার্ভিসটি (প্রডিউসার এনভায়রনমেন্ট) উন্মুক্ত করুন।
  • একটি ভোক্তা পরিবেশ তৈরি করুন
  • কনজিউমার নেটওয়ার্কে একটি ফরওয়ার্ডিং নিয়ম তৈরি করুন
  • ভোক্তার প্রবেশাধিকার যাচাই করুন
  • পলিসি অ্যাক্সেস নিয়ন্ত্রণ সক্ষম করুন
  • কনজিউমার ফরওয়ার্ডিং রুলে অ্যাক্সেস ব্লক করতে একটি ইগ্রেস ফায়ারওয়াল রুল ব্যবহার করুন।

আপনার যা যা লাগবে

  • GKE ক্লাস্টার এবং পরিষেবা স্থাপনের জ্ঞান
  • অভ্যন্তরীণ লোড ব্যালেন্সার সম্পর্কে জ্ঞান
  • দুটি প্রকল্পে ভিপিসি তৈরি করার ক্ষমতা
  • GKE ক্লাস্টার তৈরি করার ক্ষমতা

২. ব্যক্তিগত পরিষেবা সংযোগের সুবিধা

VPC Peering ব্যবহারের তুলনায় PSC ব্যবহারে আপনি বেশ কিছু সুবিধা পাবেন:

ব্যক্তিগত আইপি স্পেসের উপর আরও ভালো নিয়ন্ত্রণ

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

উন্নত নিরাপত্তা এবং বিচ্ছিন্নতা

  • পরিষেবা গ্রাহক হিসেবে, শুধুমাত্র আপনিই পরিষেবা প্রদানকারীর সাথে যোগাযোগ শুরু করতে পারেন। এই একমুখী সংযোগ ফায়ারওয়াল কনফিগারেশনকে ব্যাপকভাবে সরল করে এবং সেই সাথে পরিষেবা প্রদানকারীর কাছ থেকে আসা অনাকাঙ্ক্ষিত ট্র্যাফিকের ঝুঁকিও হ্রাস করে।
  • একজন পরিষেবা প্রদানকারী হিসেবে, গ্রাহকের VPC-তে থাকা সাবনেট রেঞ্জের উপর ভিত্তি করে আপনার ফায়ারওয়াল নিয়ম পরিবর্তন করার প্রয়োজন নেই। আপনি কেবল আপনার পরিষেবার জন্য কনফিগার করা NAT IP অ্যাড্রেস রেঞ্জের জন্য ফায়ারওয়াল নিয়ম তৈরি করতে পারেন।

উন্নততর পরিমাপযোগ্যতা

  • PSC হাজার হাজার কনজিউমারকে সমর্থন করার মাধ্যমে অত্যন্ত স্কেলেবল ডিজাইন সক্ষম করে এবং সার্ভিস প্রডিউসারদের অত্যন্ত স্কেলেবল মাল্টি-টেন্যান্ট বা সিঙ্গেল-টেন্যান্ট পরিষেবা প্রদান করার সুযোগ দেয়।
  • প্রাইভেট সার্ভিস কানেক্ট ব্যবহারকারী একজন পরিষেবা গ্রাহক হিসেবে, আপনি আপনার VPC-তে প্রয়োজন অনুযায়ী রিসোর্স তৈরি করতে পারেন। প্রডিউসার VPC-তে তৈরি করা এই ধরনের রিসোর্সের সংখ্যা দ্বারা এর পরিধি প্রভাবিত হয় না।

৩. সেবাগ্রহীতাদের জন্য মূল ধারণাসমূহ

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

এন্ডপয়েন্ট

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

আপনি এন্ডপয়েন্টে ট্র্যাফিক পাঠান, যা সেটিকে আপনার VPC নেটওয়ার্কের বাইরের টার্গেটগুলোতে ফরোয়ার্ড করে দেয়।

লক্ষ্য

প্রাইভেট সার্ভিস কানেক্ট এন্ডপয়েন্টগুলোর একটি টার্গেট থাকে, যেটি হলো সেই সার্ভিস যার সাথে আপনি সংযোগ করতে চান:

  • একটি এপিআই বান্ডেল :
  • সমস্ত এপিআই: বেশিরভাগ গুগল এপিআই
  • VPC-SC: যে API-গুলো VPC সার্ভিস কন্ট্রোল সমর্থন করে
  • অন্য একটি VPC নেটওয়ার্কে প্রকাশিত একটি সার্ভিস । এই সার্ভিসটি আপনার নিজস্ব প্রতিষ্ঠান বা কোনো তৃতীয় পক্ষ দ্বারা পরিচালিত হতে পারে।

প্রকাশিত পরিষেবা

আপনার এন্ডপয়েন্টকে কোনো সার্ভিস প্রডিউসারের সার্ভিসের সাথে সংযুক্ত করতে, আপনার সেই সার্ভিসের সার্ভিস অ্যাটাচমেন্ট প্রয়োজন। সার্ভিস অ্যাটাচমেন্ট URI-এর ফরম্যাটটি হলো: projects/SERVICE_PROJECT/regions/REGION/serviceAttachments/SERVICE_NAME

৪. পরিষেবা প্রদানকারীদের জন্য মূল ধারণা

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

ব্যক্তিগত পরিষেবা সংযোগ সাবনেট

একটি পরিষেবা উন্মুক্ত করার জন্য, পরিষেবা প্রদানকারী প্রথমে ‘প্রাইভেট সার্ভিস কানেক্ট’ উদ্দেশ্যে এক বা একাধিক সাবনেট তৈরি করে

যখন কোনো কনজিউমার VPC নেটওয়ার্ক থেকে একটি অনুরোধ পাঠানো হয়, তখন কনজিউমারের সোর্স আইপি অ্যাড্রেসটিকে সোর্স NAT (SNAT) ব্যবহার করে প্রাইভেট সার্ভিস কানেক্ট সাবনেটগুলোর মধ্য থেকে নির্বাচিত একটি আইপি অ্যাড্রেসে রূপান্তর করা হয়।

আপনি যদি গ্রাহক সংযোগের আইপি অ্যাড্রেসের তথ্য সংরক্ষণ করতে চান, তাহলে ‘গ্রাহক সংযোগের তথ্য দেখা ’ দেখুন।

এই সাবনেটগুলি ভিএম ইনস্ট্যান্স বা ফরওয়ার্ডিং নিয়মের মতো রিসোর্সের জন্য ব্যবহার করা যাবে না। সাবনেটগুলি শুধুমাত্র আগত কনজিউমার সংযোগের SNAT-এর জন্য আইপি অ্যাড্রেস সরবরাহ করতে ব্যবহৃত হয়।

প্রাইভেট সার্ভিস কানেক্ট সাবনেটে প্রতি ৬৩টি কনজিউমার ভিএম-এর জন্য অন্তত একটি আইপি অ্যাড্রেস অবশ্যই থাকতে হবে, যাতে নেটওয়ার্ক অ্যাড্রেস ট্রান্সলেশনের জন্য প্রতিটি কনজিউমার ভিএম-কে ১,০২৪টি সোর্স টাপল বরাদ্দ করা হয়।

একটি প্রাইভেট সার্ভিস কানেক্ট সাবনেটের সর্বনিম্ন আকার হলো /24।

পরিষেবা সংযুক্তি

সেবা প্রদানকারীরা একটি সার্ভিস অ্যাটাচমেন্টের মাধ্যমে তাদের সেবা তুলে ধরেন।

  • কোনো সার্ভিসকে উন্মুক্ত করার জন্য, একজন সার্ভিস প্রডিউসার একটি সার্ভিস অ্যাটাচমেন্ট তৈরি করেন যা সার্ভিসটির লোড ব্যালেন্সার ফরওয়ার্ডিং রুলকে নির্দেশ করে।
  • কোনো পরিষেবা অ্যাক্সেস করার জন্য, একজন পরিষেবা গ্রাহক একটি এন্ডপয়েন্ট তৈরি করেন যা পরিষেবা অ্যাটাচমেন্টটিকে নির্দেশ করে।

সংযোগ পছন্দ

যখন আপনি কোনো পরিষেবা তৈরি করেন, তখন আপনি সেটি কীভাবে উপলব্ধ করবেন তা বেছে নেন। দুটি বিকল্প রয়েছে:

  • সকল প্রোজেক্টের জন্য স্বয়ংক্রিয়ভাবে সংযোগ গ্রহণ করুন - যেকোনো পরিষেবা ব্যবহারকারী একটি এন্ডপয়েন্ট কনফিগার করে স্বয়ংক্রিয়ভাবে পরিষেবাটির সাথে সংযুক্ত হতে পারেন।
  • নির্বাচিত প্রকল্পগুলির জন্য সংযোগ গ্রহণ করুন - পরিষেবা গ্রাহকরা পরিষেবাটির সাথে সংযোগ করার জন্য একটি এন্ডপয়েন্ট কনফিগার করে এবং পরিষেবা প্রদানকারী সংযোগের অনুরোধগুলি গ্রহণ বা প্রত্যাখ্যান করে।

প্রয়োজনীয়তা এবং সীমাবদ্ধতা

  • প্রাইভেট সার্ভিস কানেক্ট-এর ক্ষেত্রে সীমাবদ্ধতা প্রযোজ্য।
  • আপনি GKE ভার্সন 1.21.4-gke.300 এবং এর পরবর্তী ভার্সনগুলোতে একটি সার্ভিস অ্যাটাচমেন্ট তৈরি করতে পারেন।
  • একাধিক সার্ভিস অ্যাটাচমেন্ট কনফিগারেশনে আপনি একই সাবনেট ব্যবহার করতে পারবেন না।
  • আপনাকে অবশ্যই একটি GKE পরিষেবা তৈরি করতে হবে যা একটি অভ্যন্তরীণ TCP/UDP লোড ব্যালেন্সার ব্যবহার করে।

৫. পরীক্ষার পরিবেশ

কনজিউমার নেটওয়ার্কে একটি স্ট্যাটিক আইপি অ্যাড্রেস থাকে যা সার্ভিস প্রডিউসারের কাছে রিকোয়েস্ট পাঠানোর জন্য ব্যবহৃত হয়, এবং এর সাথে টার্গেট-সার্ভিস-অ্যাটাচমেন্টও থাকে যা প্রডিউসারের সার্ভিস অ্যাটাচমেন্টের (পাবলিশড সার্ভিস) সাথে ম্যাপ করা থাকে।

1ce5607c0c56d77d.jpeg

এখন, চলুন প্রডিউসার নেটওয়ার্কটি দেখি। লক্ষ্য করুন, প্রডিউসার নেটওয়ার্কের সাথে কনজিউমার নেটওয়ার্কের কোনো ম্যাপিং নেই; এর পরিবর্তে, প্রডিউসার নেটওয়ার্কে একটি সার্ভিস অ্যাটাচমেন্ট (পাবলিশড সার্ভিস) থাকে, যা কনজিউমার বিভিন্ন সার্ভিসের জন্য ব্যবহার করে। প্রডিউসারের সার্ভিস অ্যাটাচমেন্টটি একটি GKE ইনগ্রেস L4 ILB (পাবলিশড সার্ভিস) দ্বারা উন্মুক্ত করা হয়, যা GKE পড এবং সংশ্লিষ্ট অ্যাপ্লিকেশনগুলোর সাথে যোগাযোগ স্থাপন করতে সক্ষম করে।

যখন কোনো কনজিউমার ভিপিসি নেটওয়ার্ক থেকে অনুরোধ পাঠানো হয়, তখন কনজিউমারের সোর্স আইপি অ্যাড্রেসকে সোর্স ন্যাট (SNAT) ব্যবহার করে প্রাইভেট সার্ভিস কানেক্ট সাবনেটগুলোর মধ্য থেকে নির্বাচিত একটি আইপি অ্যাড্রেসে রূপান্তর করা হয়।

এই সাবনেটগুলি ভিএম ইনস্ট্যান্স বা ফরওয়ার্ডিং নিয়মের মতো রিসোর্সের জন্য ব্যবহার করা যাবে না। সাবনেটগুলি শুধুমাত্র আগত কনজিউমার সংযোগের SNAT-এর জন্য আইপি অ্যাড্রেস সরবরাহ করতে ব্যবহৃত হয়।

GKE প্রাইভেট সার্ভিস কানেক্ট-এর জন্য L4ILB সম্পর্কে আরও জানতে এবং এই ল্যাবটি তৈরি করতে ব্যবহৃত বিষয়বস্তুতে সরাসরি প্রবেশাধিকার পেতে নিম্নলিখিতটি দেখুন।

স্ব-গতিতে পরিবেশ সেটআপ

  1. Google Cloud Console- এ সাইন-ইন করুন এবং একটি নতুন প্রজেক্ট তৈরি করুন অথবা বিদ্যমান কোনো প্রজেক্ট পুনরায় ব্যবহার করুন। যদি আপনার আগে থেকে Gmail বা Google Workspace অ্যাকাউন্ট না থাকে, তবে আপনাকে অবশ্যই একটি তৈরি করতে হবে।

96a9c957bc475304.png

b9a10ebdf5b5a448.png

a1e3c01a38fa61c2.png

  • প্রজেক্টের নামটি হলো এই প্রজেক্টের অংশগ্রহণকারীদের প্রদর্শিত নাম। এটি একটি ক্যারেক্টার স্ট্রিং যা গুগল এপিআই ব্যবহার করে না, এবং আপনি যেকোনো সময় এটি আপডেট করতে পারেন।
  • সমস্ত গুগল ক্লাউড প্রজেক্ট জুড়ে প্রজেক্ট আইডি অবশ্যই অনন্য হতে হবে এবং এটি অপরিবর্তনীয় (একবার সেট করার পর পরিবর্তন করা যায় না)। ক্লাউড কনসোল স্বয়ংক্রিয়ভাবে একটি অনন্য স্ট্রিং তৈরি করে; সাধারণত এটি কী তা নিয়ে আপনার মাথা ঘামানোর দরকার নেই। বেশিরভাগ কোডল্যাবে, আপনাকে প্রজেক্ট আইডি উল্লেখ করতে হবে (এবং এটি সাধারণত PROJECT_ID হিসাবে চিহ্নিত করা হয়), তাই যদি এটি আপনার পছন্দ না হয়, তবে এলোমেলোভাবে অন্য একটি তৈরি করুন, অথবা, আপনি নিজের আইডি দিয়ে চেষ্টা করে দেখতে পারেন যে সেটি উপলব্ধ আছে কিনা। এরপর প্রজেক্ট তৈরি হয়ে গেলে এটি "স্থির" হয়ে যায়।
  • তৃতীয় আরেকটি ভ্যালু আছে, যা হলো প্রজেক্ট নম্বর এবং কিছু এপিআই এটি ব্যবহার করে। এই তিনটি ভ্যালু সম্পর্কে আরও জানতে ডকুমেন্টেশন দেখুন।
  1. এরপরে, ক্লাউড রিসোর্স/এপিআই ব্যবহার করার জন্য আপনাকে ক্লাউড কনসোলে বিলিং চালু করতে হবে। এই কোডল্যাবটি সম্পন্ন করতে খুব বেশি খরচ হওয়ার কথা নয়, এমনকি আদৌ কোনো খরচ নাও হতে পারে। এই টিউটোরিয়ালের পর যাতে কোনো বিলিং না হয়, সেজন্য রিসোর্সগুলো বন্ধ করতে কোডল্যাবের শেষে দেওয়া যেকোনো "ক্লিন-আপ" নির্দেশাবলী অনুসরণ করুন। গুগল ক্লাউডের নতুন ব্যবহারকারীরা ৩০০ মার্কিন ডলারের ফ্রি ট্রায়াল প্রোগ্রামের জন্য যোগ্য।

ক্লাউড শেল শুরু করুন

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

GCP কনসোল থেকে উপরের ডানদিকের টুলবারে থাকা ক্লাউড শেল আইকনে ক্লিক করুন:

bce75f34b2c53987.png

পরিবেশটি প্রস্তুত করতে এবং এর সাথে সংযোগ স্থাপন করতে মাত্র কয়েক মুহূর্ত সময় লাগবে। এটি শেষ হলে, আপনি এইরকম কিছু দেখতে পাবেন:

f6ef2b5f13479f3a.png

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

৬. শুরু করার আগে

কোডল্যাবের জন্য দুটি প্রজেক্ট প্রয়োজন, যদিও PSC-এর জন্য এটি বাধ্যতামূলক নয়। একটি বা একাধিক প্রজেক্ট সমর্থনের জন্য রেফারেন্সগুলো লক্ষ্য করুন।

একক প্রকল্প - উৎপাদক এবং ভোক্তা নেটওয়ার্ককে সমর্থন করার জন্য প্রকল্পটি আপডেট করুন

ক্লাউড শেলের ভিতরে, নিশ্চিত করুন যে আপনার প্রজেক্ট আইডি সেট আপ করা আছে।

gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
prodproject=YOUR-PROJECT-NAME
consumerproject=YOUR-PROJECT-NAME
echo $prodproject
echo $consumerproject

একাধিক প্রকল্প - প্রযোজক নেটওয়ার্ককে সমর্থন করার জন্য প্রকল্পটি আপডেট করুন

ক্লাউড শেলের ভিতরে, নিশ্চিত করুন যে আপনার প্রজেক্ট আইডি সেট আপ করা আছে।

gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
prodproject=YOUR-PROJECT-NAME
echo $prodproject

নিম্নলিখিত রঙ-কোড রীতিটি লক্ষ্য করুন:

f251ebb137e37136.png

৭. প্রডিউসার ভিপিসি নেটওয়ার্ক তৈরি করুন

afe738fc869f0d6e.png

ভিপিসি নেটওয়ার্ক

ক্লাউড শেল থেকে

gcloud compute networks create gke-producer-l4-vpc --project=$prodproject --subnet-mode=custom 

GKE ক্লাস্টার সাবনেট তৈরি করুন

ক্লাউড শেল থেকে

gcloud compute networks subnets create node-subnet1 --project=$prodproject --range=192.168.10.0/24 --network=gke-producer-l4-vpc --region=us-central1 --secondary-range=pod=10.10.10.0/24,service=10.10.20.0/24 --enable-private-ip-google-access

GKE ক্লাস্টার তৈরি করুন

ক্লাউড শেল থেকে

gcloud container clusters create gke-psc-l4 \
    --release-channel=rapid \
    --enable-ip-alias \
    --zone=us-central1-a \
    --network gke-producer-l4-vpc \
    --num-nodes 1 \
    --subnetwork node-subnet1 \
    --cluster-secondary-range-name pod \
    --services-secondary-range-name service

প্রাইভেট সার্ভিস কানেক্টের জন্য একটি সাবনেট (NAT সাবনেট) তৈরি করুন

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

প্রাইভেট সার্ভিস কানেক্ট সাবনেট সম্পর্কে তথ্যের জন্য, প্রাইভেট সার্ভিস কানেক্ট সাবনেট দেখুন।

ক্লাউড শেল থেকে

gcloud beta compute networks subnets create gke-nat-subnet \
    --project $prodproject \
    --network gke-producer-l4-vpc \
    --region us-central1 \
    --range 100.100.10.0/24 \
    --purpose PRIVATE_SERVICE_CONNECT

৮. ওয়ার্কলোড এবং সার্ভিসগুলো ডিপ্লয় করুন

নিম্নলিখিত ম্যানিফেস্টটি একটি ডিপ্লয়মেন্টের বর্ণনা দেয় যা একটি নমুনা ওয়েব অ্যাপ্লিকেশন কন্টেইনার ইমেজ চালায়। ক্লাউড শেল থেকে ম্যানিফেস্টটি my-deployment.yaml নামে সংরক্ষণ করুন।

apiVersion: apps/v1
kind: Deployment
metadata:
  name: psc-ilb
spec:
  replicas: 3
  selector:
    matchLabels:
      app: psc-ilb
  template:
    metadata:
      labels:
        app: psc-ilb
    spec:
      containers:
      - name: whereami
        image: gcr.io/google-samples/whereami:v1.2.1
        ports:
          - name: http
            containerPort: 8080
        readinessProbe:
          httpGet:
            path: /healthz
            port: 8080
            scheme: HTTP
          initialDelaySeconds: 5
          timeoutSeconds: 1

ক্লাউড শেল থেকে আপনার ক্লাস্টারে ম্যানিফেস্টটি প্রয়োগ করুন

kubectl apply -f my-deployment.yaml

একটি পরিষেবা তৈরি করুন

নিম্নলিখিত ম্যানিফেস্টটি এমন একটি সার্ভিসের বর্ণনা দেয় যা TCP পোর্ট 8080-এ একটি অভ্যন্তরীণ TCP/UDP লোড ব্যালান্সার তৈরি করে। ক্লাউড শেল থেকে ম্যানিফেস্টটি my-service.yaml নামে সেভ করুন।

apiVersion: v1
kind: Service
metadata:
  name: gke-l4-psc
  annotations:
    networking.gke.io/load-balancer-type: "Internal"
spec:
  type: LoadBalancer
  selector:
    app: psc-ilb
  ports:
  - port: 80
    targetPort: 8080
    protocol: TCP

ক্লাউড শেল থেকে আপনার ক্লাস্টারে ম্যানিফেস্টটি প্রয়োগ করুন

kubectl apply -f my-service.yaml

সার্ভিস অ্যাটাচমেন্ট তৈরি করুন

নিম্নলিখিত ম্যানিফেস্টটি একটি সার্ভিসঅ্যাটাচমেন্টের বর্ণনা দেয়, যা আপনার তৈরি করা সার্ভিসটিকে সার্ভিস কনজিউমারদের কাছে উন্মুক্ত করে। ক্লাউড শেল থেকে ম্যানিফেস্টটি my-psc.yaml নামে সংরক্ষণ করুন।

apiVersion: networking.gke.io/v1beta1
kind: ServiceAttachment
metadata:
 name: emoji-sa
 namespace: default
spec:
 connectionPreference: ACCEPT_AUTOMATIC
 natSubnets:
 - gke-nat-subnet
 proxyProtocol: false
 resourceRef:
   kind: Service
   name: gke-l4-psc

ক্লাউড শেল থেকে আপনার ক্লাস্টারে ম্যানিফেস্টটি প্রয়োগ করুন

kubectl apply -f my-psc.yaml

সার্ভিসঅ্যাটাচমেন্ট- এ নিম্নলিখিত ফিল্ডগুলো রয়েছে:

  • সংযোগের পছন্দ: এটি সেই সংযোগের পছন্দ যা নির্ধারণ করে গ্রাহকরা কীভাবে পরিষেবাটির সাথে সংযোগ স্থাপন করবে। আপনি ACCEPT_AUTOMATIC ব্যবহার করে স্বয়ংক্রিয় প্রকল্প অনুমোদন অথবা ACCEPT_MANUAL ব্যবহার করে সুস্পষ্ট প্রকল্প অনুমোদন ব্যবহার করতে পারেন। আরও তথ্যের জন্য, ‘প্রাইভেট সার্ভিস কানেক্ট ব্যবহার করে পরিষেবা প্রকাশ করা’ দেখুন।
  • natSubnets : সার্ভিস অ্যাটাচমেন্টের জন্য ব্যবহার্য সাবনেটওয়ার্ক রিসোর্স নামগুলোর একটি তালিকা।
  • proxyProtocol: এটি 'true' সেট করা হলে, রিকোয়েস্টগুলোতে কনজিউমার সোর্স আইপি এবং প্রাইভেট সার্ভিস কানেক্ট কানেকশন আইডি পাওয়া যায়। এই ফিল্ডটি ঐচ্ছিক এবং প্রদান না করা হলে এর ডিফল্ট মান 'false' থাকে।
  • consumerAllowList: সেইসব কনজিউমার প্রজেক্টের তালিকা, যেগুলোকে ServiceAttachment-এর সাথে সংযোগ করার অনুমতি দেওয়া হয়েছে। এই ফিল্ডটি শুধুমাত্র তখনই ব্যবহার করা যাবে যখন connectionPreference-এর মান ACCEPT_MANUAL হবে। এই ফিল্ড এবং অন্যান্য অপশন সম্পর্কে আরও তথ্যের জন্য, “Private Service Connect ব্যবহার করে পরিষেবা প্রকাশ করা” দেখুন।

প্রযোজক যাচাইকরণ

সার্ভিস অ্যাটাচমেন্টের বিবরণ দেখা

ক্লাউড শেল থেকে নিম্নলিখিত কমান্ডটি ব্যবহার করে আপনি একটি সার্ভিস অ্যাটাচমেন্টের বিবরণ দেখতে পারেন।

kubectl describe serviceattachment emoji-sa

GKE L4 ILB দেখুন

ক্লাউড কনসোল থেকে, নেটওয়ার্ক সার্ভিসেস → লোড ব্যালান্সিং → ফ্রন্টএন্ডস-এ যান।

পূর্বে সংজ্ঞায়িত নোড সাবনেট 192.168.10.0/24-এর সাথে সামঞ্জস্যপূর্ণ ফ্রন্টএন্ড আইপি অ্যাড্রেসটি শনাক্ত করুন, নিচের স্ক্রিনশটটি দেখুন, আপনার আইপি অ্যাড্রেস ভিন্ন হতে পারে।

ed7a25ed4774977b.png

প্রকাশিত পরিষেবা দেখুন

ক্লাউড কনসোল থেকে, নেটওয়ার্ক সার্ভিসেস → প্রাইভেট সার্ভিস কানেক্ট → পাবলিশড সার্ভিসেস-এ যান।

ল্যাবে ব্যবহৃত নেটওয়ার্ক, gke-producer-l4-vpc, দিয়ে সার্ভিসটি শনাক্ত করুন, নিচের স্ক্রিনশটটি দেখুন, যদিও আপনার সার্ভিস এবং টার্গেট ভ্যালু ভিন্ন হতে পারে।

5a00836ee514b918.png

সার্ভিসের নামে ক্লিক করলে আপনাকে নিচের স্ক্রিনে নিয়ে যাওয়া হবে, বেসিক ইনফো-তে থাকা সার্ভিস অ্যাটাচমেন্টের বিবরণগুলো লক্ষ্য করুন। আরও লক্ষ্য করুন, 'কানেক্টেড প্রজেক্টস' খালি আছে, কারণ গ্রাহক এখনও সার্ভিসটিতে রেজিস্টার করেননি। যেহেতু কানেকশন প্রেফারেন্স "ACCEPT_AUTOMATICALLY"- তে সেট করা আছে, তাই ACCEPT এবং REJECT অপশন দুটি ধূসর হয়ে থাকবে। সার্ভিস অ্যাটাচমেন্ট yaml (my-psc.yaml) ফাইলটি পরিবর্তন করে এই অপশনটি যেকোনো সময় "ACCEPT_MANUAL"- এ পরিবর্তন করা যেতে পারে।

497f5f43920018c0.png

e246063a23771273.png

৯. কনজিউমার ভিপিসি নেটওয়ার্ক তৈরি করুন

1f3c90f1e139e906.png

পরবর্তী অংশে কনজিউমার ভিপিসি একটি পৃথক প্রজেক্টে কনফিগার করা হয়েছে। কনজিউমার নেটওয়ার্কে সংজ্ঞায়িত সার্ভিস অ্যাটাচমেন্টের মাধ্যমে কনজিউমার ও প্রডিউসার নেটওয়ার্কের মধ্যে যোগাযোগ সম্পন্ন করা হয়।

কোডল্যাবের জন্য দুটি প্রজেক্ট প্রয়োজন, যদিও PSC-এর জন্য এটি বাধ্যতামূলক নয়। একটি বা একাধিক প্রজেক্ট সমর্থনের জন্য রেফারেন্সগুলো লক্ষ্য করুন।

একক প্রকল্প - উৎপাদক এবং ভোক্তা নেটওয়ার্ককে সমর্থন করার জন্য প্রকল্পটি আপডেট করুন

ক্লাউড শেলের ভিতরে, নিশ্চিত করুন যে আপনার প্রজেক্ট আইডি সেট আপ করা আছে।

gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
consumerproject=YOUR-PROJECT-NAME
prodproject=YOUR-PROJECT-NAME
echo $prodproject
echo $consumerproject

একাধিক প্রকল্প - গ্রাহক নেটওয়ার্ক সমর্থন করার জন্য প্রকল্পটি আপডেট করুন

ক্লাউড শেলের ভিতরে, নিশ্চিত করুন যে আপনার প্রজেক্ট আইডি সেট আপ করা আছে।

gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
consumerproject=YOUR-PROJECT-NAME
echo $consumerproject

ভিপিসি নেটওয়ার্ক

ক্লাউড শেল থেকে

gcloud compute networks create vpc-demo-consumer --project=$consumerproject --subnet-mode=custom

PSC-এর জন্য একটি সাবনেট তৈরি করুন

ক্লাউড শেল থেকে

gcloud compute networks subnets create consumer-subnet --project=$consumerproject  --range=10.0.60.0/24 --network=vpc-demo-consumer --region=us-central1

ভিএম ইনস্ট্যান্সগুলোর জন্য একটি সাবনেট তৈরি করুন

ক্লাউড শেল থেকে

gcloud compute networks subnets create consumer-subnet-vm --project=$consumerproject  --range=10.0.70.0/24 --network=vpc-demo-consumer --region=us-central1

প্রকাশিত পরিষেবাটি অ্যাক্সেস করতে একটি স্ট্যাটিক আইপি অ্যাড্রেস তৈরি করুন।

ক্লাউড শেল থেকে

gcloud compute addresses create vpc-consumer-psc --region=us-central1 --subnet=consumer-subnet --addresses 10.0.60.100

ফায়ারওয়াল নিয়ম তৈরি করুন

আপনার VM ইনস্ট্যান্সগুলিতে IAP-কে সংযোগ করার অনুমতি দিতে, এমন একটি ফায়ারওয়াল নিয়ম তৈরি করুন যা:

  • এটি সেই সমস্ত VM ইনস্ট্যান্সের ক্ষেত্রে প্রযোজ্য, যেগুলোকে আপনি IAP ব্যবহার করে অ্যাক্সেসযোগ্য করতে চান।
  • 35.235.240.0/20 আইপি রেঞ্জ থেকে ইনগ্রেস ট্র্যাফিকের অনুমতি দেয়। এই রেঞ্জে সেই সমস্ত আইপি অ্যাড্রেস রয়েছে যা IAP টিসিপি ফরওয়ার্ডিংয়ের জন্য ব্যবহার করে।

ক্লাউড শেল থেকে

gcloud compute firewall-rules create psclab-iap-consumer --network vpc-demo-consumer --allow tcp:22 --source-ranges=35.235.240.0/20 --enable-logging

PSC-এর জন্য আবশ্যক না হলেও, প্রডিউসারের সার্ভিস অ্যাটাচমেন্টে কনজিউমার PSC ট্র্যাফিক নিরীক্ষণের জন্য একটি ইগ্রেস ফায়ারওয়াল নিয়ম তৈরি করুন।

gcloud compute --project=$consumerproject firewall-rules create vpc-consumer-psc --direction=EGRESS --priority=1000 --network=vpc-demo-consumer --action=ALLOW --rules=all --destination-ranges=10.0.60.0/24 --enable-logging

১০. কনজিউমার টেস্ট ইনস্ট্যান্স ১ তৈরি করুন

ক্লাউড শেল থেকে

gcloud compute instances create consumer-instance-1 --zone=us-central1-a --machine-type=e2-micro --private-network-ip=10.0.70.10 --no-address --subnet=consumer-subnet-vm --tags=google1 --image-family=debian-10 --image-project=debian-cloud

১১. কনজিউমার টেস্ট ইনস্ট্যান্স ২ তৈরি করুন

ক্লাউড শেল থেকে

gcloud compute instances create consumer-instance-2 --zone=us-central1-a --machine-type=e2-micro --private-network-ip=10.0.70.20 --no-address --subnet=consumer-subnet-vm --tags=google2 --image-family=debian-10 --image-project=debian-cloud

১২. একটি পরিষেবা সংযুক্তি তৈরি করুন

পূর্ববর্তী ধাপে, আপনি 'Producer Service Attachment' স্ট্রিংটি একটি নিরাপদ স্থানে কপি করেছিলেন, চলুন সংরক্ষিত মানটি 'target-service-attachment' ফিল্ডে প্রবেশ করাই।

7abaccc4e24f1ef7.png

ক্লাউড শেল থেকে

gcloud compute forwarding-rules create vpc-consumer-psc-fr --region=us-central1 --network=vpc-demo-consumer --address=vpc-consumer-psc --target-service-attachment=yoursavedproducerserviceattachment

১৩. যাচাইকরণ - ভোক্তা

আমরা কনজিউমার ও প্রডিউসারের যোগাযোগ যাচাই করার জন্য CURL ও ফায়ারওয়াল লগ ব্যবহার করব।

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

1f3c90f1e139e906.png

কনজিউমার ভিপিসি ক্লাউড থেকে শেল ব্যবহার করে ফরওয়ার্ডিং রুল এবং স্ট্যাটিক আইপি শনাক্ত করুন।

gcloud compute forwarding-rules describe vpc-consumer-psc-fr --region us-central1

আউটপুট নিচে দেওয়া হলো, আমরা পরবর্তী ধাপে প্রডিউসারের কাছে পৌঁছানোর জন্য 10.0.60.100 ব্যবহার করব।

IPAddress: 10.0.60.100
creationTimestamp: '2021-09-30T21:13:54.124-07:00'
id: '3564572805904938477'
kind: compute#forwardingRule
labelFingerprint: 42WmSpB8rSM=
name: vpc-consumer-psc-fr
network: https://www.googleapis.com/compute/v1/projects/deepakmichaelstage/global/networks/vpc-demo-consumer
networkTier: PREMIUM
pscConnectionId: '36583161500548196'
pscConnectionStatus: ACCEPTED

সংযুক্ত পরিষেবা দেখুন

ক্লাউড কনসোল থেকে, Network Services → Private Service Connect → Connected Endpoints-এ যান এবং নতুন তৈরি করা এন্ডপয়েন্টটি দেখুন।

206bc00297aaa260.png

চলুন consumer-instance-1- এ লগ ইন করে Producer Published Service-এ অ্যাক্সেস পরীক্ষা করি।

ক্লাউড শেল থেকে + চিহ্নে ক্লিক করে একটি নতুন ট্যাব খুলুন।

81f3210b29faebd3.png

ক্লাউড শেল থেকে নিম্নলিখিতগুলি সম্পাদন করুন:

gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectname=YOUR-PROJECT-NAME
echo $projectname

gcloud compute ssh --zone "us-central1-a" "consumer-instance-1" --project "$projectname"

consumer-instance-1 ইনস্ট্যান্সে লগ ইন করার পর, ফরওয়ার্ডিং রুলের IP Address 10.0.60.100-এর বিরুদ্ধে একটি curl কমান্ড চালান।

ক্লাউড শেল থেকে নিম্নলিখিতগুলি সম্পাদন করুন:

user@consumer-instance-1:~$ curl 10.0.60.100

উদাহরণ আউটপুট

user@consumer-instance-1:~$ curl 10.0.60.100
{
  "cluster_name": "gke-psc-l4",
  "host_header": "10.0.60.100",
  "node_name": "gke-gke-psc-l4-default-pool-f2c6e301-vnlz.c.prodprojectid.internal",
  "pod_name": "psc-ilb-588887dfdb-w7tbr",
  "pod_name_emoji": "🤷",
  "project_id": "prodorijectid",
  "timestamp": "2021-10-01T17:43:37",
  "zone": "us-central1-a"

চলুন consumer-instance-2- এ লগ ইন করে Producer Published Service-এ অ্যাক্সেস পরীক্ষা করি।

ক্লাউড শেল থেকে + চিহ্নে ক্লিক করে একটি নতুন ট্যাব খুলুন।

81f3210b29faebd3.png

ক্লাউড শেল থেকে নিম্নলিখিতগুলি সম্পাদন করুন:

gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectname=YOUR-PROJECT-NAME
echo $projectname

gcloud compute ssh --zone "us-central1-a" "consumer-instance-2" --project "$projectname"

ক্লাউড শেল থেকে নিম্নলিখিতগুলি সম্পাদন করুন:

user@consumer-instance-2:~$ curl 10.0.60.100

উদাহরণ আউটপুট

deepakmichael@consumer-instance-2:~$ curl 10.0.60.100
{
  "cluster_name": "gke-psc-l4",
  "host_header": "10.0.60.100",
  "node_name": "gke-gke-psc-l4-default-pool-f2c6e301-vnlz.c.prodproject.internal",
  "pod_name": "psc-ilb-588887dfdb-4jdql",
  "pod_name_emoji": "🧑🏿",
  "project_id": "prodproject",
  "timestamp": "2021-10-01T17:49:51",
  "zone": "us-central1-a"

১৪. ফায়ারওয়াল লগিং - বরাদ্দ যাচাইকরণ

লগস এক্সপ্লোরার ব্যবহার করে যাচাই করুন যে "vpc-consumner-psc" ফায়ারওয়াল নিয়মটি ভিএম ইনস্ট্যান্স এবং স্ট্যাটিক আইপি-এর মধ্যেকার প্রবাহকে ক্যাপচার করছে।

  1. ক্লাউড কনসোল থেকে, অপারেশন লগিং শনাক্ত করুন → লগ এক্সপ্লোরার
  2. Query ফিল্ডে নিচের এন্ট্রিটি আপনার কনজিউমার প্রজেক্ট দিয়ে আপডেট করুন এবং 'Run Query' সিলেক্ট করুন।

logName:(projects/ yourconsumerprojectID /logs/compute.googleapis.com%2Ffirewall) AND jsonPayload.rule_details.reference:("network:vpc-demo-consumer/firewall:vpc-consumer-psc")

  1. প্রদত্ত স্ক্রিনশট অনুযায়ী কোয়েরির ফলাফল নিম্নরূপ।

23e427b3060473.png

  1. লগটি এক্সপ্যান্ড করুন (jsonPayload → Connection) এবং নিচে দেওয়া আউটপুটটি শনাক্ত করুন। লক্ষ্য করুন যে, dest_ip: 10.0.60.100 হলো Producer Service অ্যাক্সেস করার জন্য ব্যবহৃত STATIC TCP IP এবং src_ip: 10.0.70.10 অথবা 10.0.70.20 হলো VM ইনস্ট্যান্সের IP অ্যাড্রেস(গুলো)। Disposition হলো Allowed।

2669743fd1f1cb0d.png

১৫. যাচাইকরণ - উৎপাদক

afe738fc869f0d6e.png

Producers প্রজেক্ট থেকে সার্ভিস অ্যাটাচমেন্টটি সফলভাবে সংযুক্ত হয়েছে কিনা তা যাচাই করুন। Network Services → Private Service Connect → Published Services-এ যান।

89ded87a63888f60.png

পরিষেবাটিতে ক্লিক করলে আপনার সংযুক্ত গ্রাহক প্রকল্প এবং তার অবস্থা দেখা যাবে, যা নিচে চিত্রিত করা হয়েছে।

15966d47423ebc5f.png

১৬. প্রকাশিত পরিষেবাতে প্রবেশাধিকার সীমাবদ্ধ করুন

1f3c90f1e139e906.png

এখন পর্যন্ত আমরা নিশ্চিত করেছি যে উভয় ইনস্ট্যান্সেরই প্রকাশিত পরিষেবাগুলিতে অ্যাক্সেস আছে, চলুন কনজিউমার-ইনস্ট্যান্স-২-কে প্রকাশিত পরিষেবাতে অ্যাক্সেস থেকে বঞ্চিত করার জন্য একটি ইগ্রেস ফায়ারওয়াল নিয়ম তৈরি করি।

ডিফল্টরূপে GCP সমস্ত বহির্গমন (Egress) ট্র্যাফিকের অনুমতি দেয়, কিন্তু সমস্ত অন্তর্গমন (Ingress) ট্র্যাফিককে বাধা দেয়। নিম্নলিখিত ধাপগুলিতে, আমরা কনজিউমার-ইনস্ট্যান্স-২ (consumer-instance-2) তৈরির সময় ব্যবহৃত পূর্বে সংজ্ঞায়িত নেটওয়ার্কিং ট্যাগ 'google2'-এর উপর ভিত্তি করে একটি ফায়ারওয়াল নিয়ম তৈরি করব, যার উদ্দেশ্য হবে প্রকাশিত পরিষেবাটিতে (Published Service) প্রবেশাধিকার অস্বীকার করা।

7fa2cda1dfec33a.png

+ চিহ্নে ক্লিক করে একটি নতুন ক্লাউড শেল ট্যাব খুলুন এবং ক্লাউড শেলে নিম্নলিখিত ফায়ারওয়াল নিয়মটি কার্যকর করুন।

gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectname=YOUR-PROJECT-NAME
echo $projectname

gcloud compute --project=$projectname firewall-rules create psc-endpoint-deny-egress --direction=EGRESS --priority=999 --network=vpc-demo-consumer --action=DENY --rules=all --destination-ranges=10.0.60.100/32 --target-tags=google2 --enable-logging

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

gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectname=YOUR-PROJECT-NAME
echo $projectname

gcloud compute ssh --zone "us-central1-a" "consumer-instance-2" --project "$projectname"

ক্লাউড শেল থেকে নিম্নলিখিতগুলি সম্পাদন করুন:

user@consumer-instance-2:~$ curl 10.0.60.100

উদাহরণ আউটপুট

user@consumer-instance-2:~$ curl 10.0.60.100
curl: (7) Failed to connect to 10.0.60.100 port 80: Connection timed out

ফায়ারওয়াল লগিং - যাচাইকরণ প্রত্যাখ্যাত

লগস এক্সপ্লোরার ব্যবহার করে যাচাই করুন যে "psc-endpoint-deny-egress" ফায়ারওয়াল নিয়মটি ভিএম ইনস্ট্যান্স এবং স্ট্যাটিক আইপি-এর মধ্যেকার প্রবাহকে ক্যাপচার করছে।

  1. ক্লাউড কনসোল থেকে, অপারেশন লগিং শনাক্ত করুন → লগ এক্সপ্লোরার
  2. Query ফিল্ডে নিচের এন্ট্রিটি আপনার কনজিউমার প্রজেক্ট দিয়ে আপডেট করুন এবং 'Run Query' সিলেক্ট করুন।

logName:(projects/ yourconsumerprojectID /logs/compute.googleapis.com%2Ffirewall) AND jsonPayload.rule_details.reference:("network:vpc-demo-consumer/firewall:psc-endpoint-deny-egress")

  1. প্রদত্ত স্ক্রিনশট অনুযায়ী কোয়েরির ফলাফল নিম্নরূপ।

83b4fc7348ac93cd.png

  1. লগটি এক্সপ্যান্ড করুন এবং নিচে প্রদত্ত আউটপুটটি শনাক্ত করুন। লক্ষ্য করুন যে dest_ip: 10.0.60.100 হলো স্ট্যাটিক TCP IP এবং src_ip: 10.0.70.10 অথবা 10.0.70.20 হলো VM ইনস্ট্যান্সের IP অ্যাড্রেস(গুলো)। ডিসপোজিশন হলো ডিনাইড।

a344f75f67590655.png

১৭. পরিষ্কার করার পদক্ষেপ

প্রযোজক নেটওয়ার্ক পরিষ্কার করার পদক্ষেপ

afe738fc869f0d6e.png

প্রডিউসার প্রজেক্ট টার্মিনালের একটিমাত্র ক্লাউড শেল থেকে ল্যাব কম্পোনেন্টগুলো ডিলিট করুন।

gcloud container clusters delete gke-psc-l4 --region us-central1-a --quiet

gcloud compute networks subnets delete gke-nat-subnet --region=us-central1 --quiet

gcloud compute networks subnets delete node-subnet1 --region=us-central1 --quiet

gcloud compute networks delete gke-producer-l4-vpc --quiet

1f3c90f1e139e906.png

ভোক্তা নেটওয়ার্ক পরিষ্কার করার পদক্ষেপ

কনজিউমার প্রজেক্ট টার্মিনালের একটিমাত্র ক্লাউড শেল থেকে ল্যাব কম্পোনেন্টগুলো ডিলিট করুন।

gcloud compute instances delete consumer-instance-1 --zone=us-central1-a --quiet

gcloud compute instances delete consumer-instance-2 --zone=us-central1-a --quiet

gcloud compute forwarding-rules delete vpc-consumer-psc-fr --region=us-central1 --quiet

gcloud compute addresses delete vpc-consumer-psc --region=us-central1 --quiet

gcloud compute firewall-rules delete psclab-iap-consumer --quiet

gcloud compute networks subnets delete consumer-subnet --region=us-central1 --quiet

gcloud compute networks subnets delete consumer-subnet-vm --region=us-central1 --quiet

gcloud compute firewall-rules delete vpc-consumer-psc --quiet

gcloud compute firewall-rules delete psc-endpoint-deny-egress --quiet

gcloud compute networks delete vpc-demo-consumer --quiet

১৮. অভিনন্দন!

কোডল্যাবটি সম্পন্ন করার জন্য অভিনন্দন।

আমরা যা আলোচনা করেছি

  • ব্যক্তিগত পরিষেবা সংযোগের সুবিধাগুলি
  • পরিষেবা গ্রাহকদের জন্য মূল ধারণা
  • পরিষেবা উৎপাদকদের জন্য মূল ধারণা
  • একটি উৎপাদনকারী পরিবেশ তৈরি করুন
  • একটি সার্ভিস অ্যাটাচমেন্টের মাধ্যমে সার্ভিসটি (প্রডিউসার এনভায়রনমেন্ট) উন্মুক্ত করুন।
  • একটি ভোক্তা পরিবেশ তৈরি করুন
  • কনজিউমার নেটওয়ার্কে একটি ফরওয়ার্ডিং নিয়ম তৈরি করুন
  • ভোক্তার প্রবেশাধিকার যাচাই করুন
  • পলিসি অ্যাক্সেস নিয়ন্ত্রণ সক্ষম করুন
  • একটি কনজিউমার ফরওয়ার্ডিং রুলে অ্যাক্সেস ব্লক করতে একটি ইগ্রেস ফায়ারওয়াল রুল ব্যবহার করা হয়েছে।