پرو ہوسٹر > بلاگ > انتظامیہ > ٹی سی پیسرور اور نیٹ کیٹ کے ساتھ کبرنیٹس پوڈ یا کنٹینر میں سرنگ کیسے کھولی جائے
ٹی سی پیسرور اور نیٹ کیٹ کے ساتھ کبرنیٹس پوڈ یا کنٹینر میں سرنگ کیسے کھولی جائے
نوٹ. ترجمہ: LayerCI کے تخلیق کار کی طرف سے یہ عملی نوٹ Kubernetes (اور مزید) کے لیے نام نہاد تجاویز اور چالوں کی ایک بہترین مثال ہے۔ یہاں تجویز کردہ حل صرف چند میں سے ایک ہے اور، شاید، سب سے زیادہ واضح نہیں ہے (کچھ معاملات کے لیے، K8s کے لیے "مقامی" جو پہلے ہی تبصروں میں ذکر کیا گیا ہے، مناسب ہو سکتا ہے kubectl port-forward)۔ تاہم، یہ آپ کو کم از کم کلاسیکی افادیت کے استعمال اور ان کو مزید یکجا کرنے کے نقطہ نظر سے مسئلہ کو دیکھنے کی اجازت دیتا ہے - ایک ہی وقت میں سادہ، لچکدار اور طاقتور (انسپائریشن کے لیے آخر میں "دیگر آئیڈیاز" دیکھیں)۔
ایک عام صورت حال کا تصور کریں: آپ چاہتے ہیں کہ آپ کی مقامی مشین پر ایک بندرگاہ جادوئی طور پر ٹریفک کو پوڈ/کنٹینر (یا اس کے برعکس) کی طرف بھیجے۔
ممکنہ استعمال کے معاملات
چیک کریں کہ HTTP اینڈ پوائنٹ کیا لوٹاتا ہے۔ /healthz پیداوار کلسٹر میں پوڈ.
مقامی مشین پر ایک TCP ڈیبگر کو پوڈ سے جوڑیں۔
تصدیق کے ساتھ پریشان کیے بغیر مقامی ڈیٹا بیس ٹولز سے پروڈکشن ڈیٹا بیس تک رسائی حاصل کریں (عام طور پر لوکل ہوسٹ کے بنیادی حقوق ہوتے ہیں)۔
اسٹیجنگ کلسٹر میں ڈیٹا کے لیے کنٹینر بنائے بغیر ایک بار کی منتقلی کا اسکرپٹ چلائیں۔
VNC سیشن کو ورچوئل ڈیسک ٹاپ چلانے والے پوڈ سے جوڑیں (XVFB دیکھیں)۔
ضروری اوزار کے بارے میں چند الفاظ
ٹی سی پیسرور — ایک اوپن سورس یوٹیلیٹی جو زیادہ تر لینکس پیکیج ریپوزٹریز میں دستیاب ہے۔ یہ آپ کو مقامی بندرگاہ کھولنے اور stdin/stdout کے ذریعے موصول ہونے والی ٹریفک کو کسی مخصوص کمانڈ سے اس کی طرف بھیجنے کی اجازت دیتا ہے:
یہ کمانڈ پوڈ کو مقامی مشین پر پورٹ 8000 تک رسائی کی اجازت دیتی ہے۔
باش اسکرپٹ
میں نے Bash کے لیے ایک خصوصی اسکرپٹ لکھا ہے جو آپ کو Kubernetes پروڈکشن کلسٹر کا انتظام کرنے کی اجازت دیتا ہے۔ لیئر سی آئیاوپر بیان کردہ طریقہ کا استعمال کرتے ہوئے:
kubetunnel() {
POD="$1"
DESTPORT="$2"
if [ -z "$POD" -o -z "$DESTPORT" ]; then
echo "Usage: kubetunnel [pod name] [destination port]"
return 1
fi
pkill -f 'tcpserver 127.0.0.1 6666'
tcpserver 127.0.0.1 6666 kubectl exec -i "$POD" nc 127.0.0.1 "$DESTPORT"&
echo "Connect to 127.0.0.1:6666 to access $POD:$DESTPORT"
}
اگر آپ اس فنکشن کو اس میں شامل کرتے ہیں۔ ~/.bashrc، آپ کمانڈ کے ساتھ آسانی سے پوڈ میں ایک سرنگ کھول سکتے ہیں۔ kubetunnel web-pod 8080 اور کرو curl localhost:6666.
اندر سرنگ کے لیے میں Docker آپ مین لائن کو اس سے بدل سکتے ہیں: