এই পরিবর্তনের বিপজ্জনক সংস্করণটি হলো এমন একটি কমান্ড যা এন্ডপয়েন্ট উল্টে দেয় এবং একই সঙ্গে সব প্রশাসককে আটকে দেয়। নিরাপদ সংস্করণটি দুটি পথই খোলা রাখে, VPN থেকে প্রাইভেট পথটি কাজ করছে বলে প্রমাণ করে এবং কেবল তারপরই পাবলিক এন্ডপয়েন্ট অবসরে পাঠায়। একটি বিদ্যমান ক্লাস্টার, তার VPC-তে অনুমোদিত টানেল এবং আগে থেকেই কাজ করা একটি kubeconfig ধরে নিন; কাজটি হলো Kubernetes API-তে প্রাইভেট অ্যাক্সেস, প্রাইভেট নোড নয় এবং নতুন অনুমতি মডেলও নয়। নিচের প্রতিটি ধাপে এমন একটি যাচাই আছে যেখানে আপনি নিরাপদে ব্যর্থ হতে পারেন।

1. এন্ডপয়েন্টের তালিকা করুন এবং ফিরে আসার পথ রাখুন

পরিবর্তনের আগে বর্তমান অবস্থা লিখে রাখুন, যার মধ্যে পাবলিক CIDR অনুমতিসূচি এবং ক্লাস্টার সিকিউরিটি গ্রুপ অন্তর্ভুক্ত। কিছু কাজ করা বন্ধ করলে আপনি এই দুটির সঙ্গেই তুলনা করবেন, আর প্রাইভেট রুট ভুল প্রমাণিত হলে অনুমতিসূচিই আপনার রোলব্যাক পথ।

aws eks describe-cluster --region REGION --name CLUSTER \
  --query 'cluster.{endpoint:endpoint,public:resourcesVpcConfig.endpointPublicAccess,private:resourcesVpcConfig.endpointPrivateAccess,cidrs:resourcesVpcConfig.publicAccessCidrs}'

REGION এবং CLUSTER এখানে প্লেসহোল্ডার। প্রাইভেট ফ্ল্যাগটি এখন কী দেখাচ্ছে তা লক্ষ্য করুন, কারণ আগে থেকেই প্রাইভেট অ্যাক্সেস চালু থাকা ক্লাস্টারের প্রথম ধাপ ভিন্ন হবে এমন ক্লাস্টারের তুলনায় যেটিতে এটি কখনো ছিল না। রূপান্তরের সময় অন্তত একটি অনুমোদিত প্রশাসনিক পথ খোলা রাখুন; যে VPN একই ক্লাস্টারে পৌঁছানোর উপর নির্ভর করে সেটি পুনরুদ্ধারের পথ নয়।

2. নেটওয়ার্ক পথ প্রস্তুত থাকলে প্রাইভেট অ্যাক্সেস চালু করুন

ফ্ল্যাগ চালু করা সহজ অর্ধেক। টানেলের এন্ডপয়েন্টের প্রাইভেট ঠিকানাগুলোতে একটি রুট দরকার, আর ক্লাস্টার সিকিউরিটি গ্রুপের দরকার VPN যে উৎস উপস্থাপন করে সেখান থেকে TCP 443। একটি Client VPN অ্যাসোসিয়েশন, একটি সাইট-টু-সাইট গেটওয়ে এবং একটি peered VPC সবই ভিন্ন উৎস ঠিকানা উপস্থাপন করতে পারে, তাই সাধারণ প্রাইভেট রেঞ্জের বদলে আপনি যে মডেল মোতায়েন করেছেন সেটি ব্যবহার করুন।

aws eks update-cluster-config --region REGION --name CLUSTER \
  --resources-vpc-config endpointPublicAccess=true,endpointPrivateAccess=true

aws eks describe-update --region REGION --name CLUSTER --update-id UPDATE_ID

আপডেটটি অ্যাসিনক্রোনাস। নির্দিষ্ট কয়েক সেকেন্ড অপেক্ষা করে ধরে নেওয়ার বদলে আপডেট আইডি সফলতা জানানো পর্যন্ত জিজ্ঞাসা করুন। এটি করার সময় নোড ও কন্ট্রোল-প্লেন ট্রাফিককে একা রাখুন: ক্লাস্টারের পুরো সিকিউরিটি গ্রুপকে আপনার ল্যাপটপের জন্য একটি নিয়ম দিয়ে বদলানোই হলো একটি সচল ডেটা প্লেনকে দ্বিতীয় ঘটনায় পরিণত করার উপায়।

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

3. ওয়ার্কস্টেশন প্রাইভেট পথ ব্যবহার করেছে তা প্রমাণ করুন

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

nslookup HASH.gr7.REGION.eks.amazonaws.com
kubectl cluster-info
kubectl get ns --request-timeout=10s

হোস্টনেম ও সার্টিফিকেট যাচাই ঠিক যেমন আছে তেমনই রাখুন। kubeconfig-এ প্রাইভেট IP বসানো এবং TLS যাচাই এড়িয়ে যাওয়া সেই মাইগ্রেশন নয় যা আপনি পরিবর্তন রেকর্ডে বর্ণনা করেছেন, এবং এন্ডপয়েন্ট ঘুরলেই এটি আবার ব্যর্থ হবে।

4. পাবলিক অ্যাক্সেস সচেতনভাবে অবসরে পাঠান

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

aws eks update-cluster-config --region REGION --name CLUSTER \
  --resources-vpc-config endpointPublicAccess=false,endpointPrivateAccess=true

শুধু-প্রাইভেট মোডে পাবলিক DNS নামটি VPC-এর ভিতর থেকে এন্ডপয়েন্টের প্রাইভেট ঠিকানায় রিজলভ হয়, তাই রিজল্যুশন ও পৌঁছানো একই জিনিস থাকা বন্ধ করে দেয়। পাবলিক ঠিকানার উপর নির্ভর করা সবকিছু, যার মধ্যে CI রানার বা ভিন্ন নেটওয়ার্কের ল্যাপটপও আছে, এখন নিজের প্রবেশপথ দরকার।

5. নেটওয়ার্ক নীতি ও পরিচয় নীতি আলাদা রাখুন

পাবলিক অ্যাক্সেস CIDR তালিকা কেবল পাবলিক এন্ডপয়েন্ট নিয়ন্ত্রণ করে। এটি প্রাইভেট এন্ডপয়েন্টকে সীমাবদ্ধ করে না, বরং সেটি ক্লাস্টার সিকিউরিটি গ্রুপ ও সংযুক্ত-নেটওয়ার্ক নীতি দ্বারা সীমাবদ্ধ। আপনি যদি পাবলিক এন্ডপয়েন্ট রাখেন, তার অনুমতিসূচি অবশ্যই আপনার API ক্লায়েন্ট ও নোড যেই পাবলিক ইগ্রেস ব্যবহার করে তার সঙ্গে মিলতে হবে; VPN পুলের ঠিকানা খুব কমই সেই উৎস।

এর কোনোটিই IAM বা Kubernetes RBAC পরিবর্তন করে না। এন্ডপয়েন্ট সেটিংস একটি প্রশাসনিক কাজ, এবং সাধারণ ব্যবহারকারীরা কেবল API-তে পৌঁছানোর জন্য সীমা শিথিল করার অনুমতি পাওয়া উচিত নয়। চূড়ান্ত অবস্থা, তারিখ ও পুনরুদ্ধার পথ রানবুকে লিখুন, তারপর পুনরুদ্ধার পথটি একবার পরীক্ষা করুন যখন এটি এখনও সহজ।

সম্পর্কিত নিবন্ধ