منصوبے کے بارے میں

Flannel ایک سیدھا اور موثر نیٹ ورک فیبرک حل ہے جو بنیادی طور پر Kubernetes ماحول کے لیے ڈیزائن کیا گیا ہے، حالانکہ یہ Docker ڈیپلائمنٹس کو بھی سپورٹ کرتا ہے۔ اس کا بنیادی کام کلسٹر کے اندر متعدد نوڈس کے درمیان Layer 3 IPv4 نیٹ ورک قائم کرنا ہے، اس بات کو یقینی بناتے ہوئے کہ ہر کنٹینر (پوڈ) کے پاس ایک منفرد، روٹ ایبل IP ایڈریس ہو۔ یہ ماڈل میزبان IPs کو شیئر کرنے سے وابستہ پیچیدگیوں کو ختم کرکے نیٹ ورکنگ کو آسان بناتا ہے۔ ### بنیادی آرکیٹیکچر Flannel ایک ہلکے بائنری ایجنٹ کے ذریعے کام کرتا ہے جسے `flanneld` کہا جاتا ہے، جو کلسٹر کے ہر میزبان پر چلتا ہے۔ ایجنٹ پہلے سے ترتیب شدہ بڑی ایڈریس اسپیس سے ہر میزبان کو ایک مخصوص سب نیٹ لیز مختص کرنے کا ذمہ دار ہے۔ حالت اور کنفیگریشن کو برقرار رکھنے کے لیے، Flannel یا تو براہ راست Kubernetes API استعمال کرتا ہے (جسے kube subnet manager کہا جاتا ہے) یا بیرونی etcd کلسٹر۔ یہ لچک اسے نیٹ ورک کنفیگریشنز، مختص کردہ سب نیٹس، اور میزبان پبلک IPs جیسے معاون ڈیٹا کو ذخیرہ کرنے کی اجازت دیتی ہے۔ ### بیک اینڈ میکانزم میزبانوں کے درمیان پیکٹ فارورڈنگ مختلف بیک اینڈ میکانزم کے ذریعے سنبھالی جاتی ہے۔ ان میں اوورلے نیٹ ورکس کے لیے VXLAN اور مختلف کلاؤڈ فراہم کنندگان کے لیے تیار کردہ مخصوص انٹیگریشنز شامل ہیں۔ صارفین اپنے انفراسٹرکچر کی ضروریات کے مطابق بہترین بیک اینڈ منتخب کرسکتے ہیں۔ ### نیٹ ورک پالیسی سپورٹ اگرچہ Flannel پالیسی نفاذ کے بجائے کنیکٹیویٹی پر توجہ مرکوز کرتا ہے، یہ نیٹ ورک پالیسیوں کو مربوط کرنے کے لیے اختیارات پیش کرتا ہے: - **انٹیگریٹڈ کنٹرولر:** Flannel Helm چارٹ میں Kubernetes SIGs نیٹ ورک پالیسی کنٹرولر کو Flannel کے ساتھ تعینات کرنے کا اختیار شامل ہے۔ - **تیسرے فریق کے کنٹرولرز:** صارفین اعلی درجے کی پالیسی نفاذ کے لیے Flannel کو Calico یا Cilium جیسے دیگر پروجیکٹس کے ساتھ جوڑ سکتے ہیں، ممکنہ طور پر CNI چیننگ کا استعمال کرتے ہوئے۔ ### ڈیپلائمنٹ کے اختیارات Kubernetes کلسٹرز کے لیے، Flannel کو دستی طور پر یا پیکیج مینیجرز کے ذریعے تعینات کیا جاسکتا ہے: - **kubectl:** صارفین `kubectl apply` کا استعمال کرکے سرکاری مینی فیسٹ براہ راست لاگو کرسکتے ہیں۔ - **Helm:** ایک سرشار Helm ریپوزٹری آسان انسٹالیشن اور کنفیگریشن مینجمنٹ کی اجازت دیتی ہے۔ مطابقت کو یقینی بنانے کے لیے مخصوص ریلیز سے منسلک مینی فیسٹس استعمال کرنے کی سفارش کی جاتی ہے۔ مزید برآں، Flannel کو تعینات کرنے کے لیے `br_netfilter` کرنل ماڈیول اور `/opt/cni/bin` میں CNI نیٹ ورک پلگ انز کی انسٹالیشن درکار ہے۔ غیر Kubernetes ماحول، جیسے اسٹینڈ اسٹون Docker سیٹ اپس کے لیے، Flannel ہمیشہ اپنے ڈیٹا اسٹور کے طور پر etcd پر انحصار کرتا ہے۔ دستاویزات ان منظرناموں کے لیے تفصیلی رہنمائی فراہم کرتی ہیں۔ ### کمیونٹی اور لائسنسنگ Flannel ایک اوپن سورس پروجیکٹ ہے جو Apache 2.0 کے تحت لائسنس یافتہ ہے۔ یہ باقاعدہ مینٹینر میٹنگز، سپورٹ کے لیے Slack چینلز (Rancher Slack پر #k3s، Calico Slack پر #flannel-users) اور بلڈنگ، کنفیگریشن، ٹربل شوٹنگ اور انٹیگریشنز کا احاطہ کرنے والی جامع دستاویزات کے ساتھ ایک فعال کمیونٹی برقرار رکھتا ہے۔