اختيار Pod IP أو ClusterIP أو موازن حمل داخلي لمستخدمي VPN
يصل عنوان Pod IP عبر VPN إلى أن يُستبدل الـ Pod. قارن بين الوصول المباشر إلى الـ Pod وClusterIP وموازن حمل داخلي، وبين ما يكلّفهك كل منها.
مع VPC CNI، يمكن أن يحمل الـ Pod عنوانًا من الـ VPC، ويمكن لمستخدم VPN لديه المسار الصحيح أن يصل إليه مباشرة. هذا يجعل الوصول المباشر إلى الـ Pod يبدو الخيار الأبسط، وهو كذلك فعلًا، إلى أن يُستبدل الـ Pod. العنوان الذي يتذكره المستخدم يجب أن ينتمي إلى التطبيق، لا إلى نسخة متماثلة. ومقارنة المداخل الثلاثة تعود في النهاية إلى أي كائن يملك العنوان وما يجب أن يظل يعمل عندما ينتقل عبء العمل.
اختر أولًا حسب دورة الحياة، ثم حسب ما يجب أن تفعله الشبكة لجعل المدخل قابلًا للوصول.
ثلاثة مداخل، ثلاث دورات حياة
عنوان Pod IP يملكه الـ Pod: يُخصص معه ويُحرر عند انتهائه. أما ClusterIP فيملكه Service وهو عنوان افتراضي، لا معنى له إلا حيث يوجد توجيه الخدمات في العنقود. وموازن الحمل الداخلي يملكه مورد سحابي يبرمجه متحكم العنقود بقوائم خلفيات. وتتنبأ نماذج الملكية هذه بالفشل الذي ستحصل عليه: عنوان قديم، أو اسم غير قابل للوصول، أو مجموعة خلفيات غير محدثة.
اكتب المقارنة قبل الاختيار. وبمجرد تسمية المالك والفشل، يتخذ الاختيار قراره عادة بنفسه.
| Entry | Owner | Failure when the workload moves |
|---|---|---|
| Pod IP | The Pod | Address changes and saved links break |
| ClusterIP | The Service | Virtual address with no meaning outside cluster routing |
| Internal balancer | Cloud resource plus controller | Backends update, but the DNS view is yours to maintain |
الوصول المباشر إلى الـ Pod: مفيد ومؤقت
الوصول المباشر مفيد حقًا في فحص مضبوط: مسؤول واحد، وجلسة قصيرة واحدة، ومنفذ واحد محدد. لكنه عقد ضعيف للمستخدمين، لأن العنوان تفصيل تنفيذي يتغير مع كل عملية إطلاق. وتسجيل عنوان في ويكي هو الطريق الذي يحول خدمة عاملة إلى إشاعة.
وهو أيضًا يفتح الباب لقواعد واسعة. إذن مسؤول واحد بالوصول إلى Pod واحد ليس إذنًا لكل عنوان في الشبكة الفرعية للعقدة، والثاني هو ما يُكتب عادة.
ClusterIP: محدود بالعنقود بحكم التصميم
يعمل ClusterIP لأن مستوى البيانات في العنقود يبرمج التوجيه له داخل العنقود. من حاسوب محمول على VPN لا يعني العنوان شيئًا ما لم يعرضه شيء ما عن قصد. والاسم المنتهي بـ svc.cluster.local ينتمي إلى DNS العنقود، لذا فإن نسخه إلى عميل بمحلل أسماء مختلف ينتج اسمًا غير موجود بدلًا من خطأ في التوجيه.
يبقى ClusterIP المدخل الصحيح للمتصلين داخل العنقود، بمن فيهم أعباء العمل الأخرى. لكنه ببساطة ليس آلية نشر للمستخدمين خارج نطاق توجيه العنقود.
موازن الحمل الداخلي: المسار المنشور
يمنحك موازن الحمل الداخلي عنوانًا خاصًا ثابتًا واسمًا يمكن لمنطقتك أن تشير إليه، بينما يبقي المتحكم مجموعة الخلفيات محدثة، كما يوضح دليل موازنة الحمل في EKS. هذا هو المدخل الذي ينجو من استبدال عادي للـ Pod دون أن يحرر أحد مستندًا. وهو يكلّف موردًا سحابيًا وإعداد متحكم ومسارًا من VPN، وهذه هي الأجزاء التي يستهين بها الناس.
استخدم نموذج المتحكم الذي يشغله العنقود فعليًا. التعليقات المكتوبة لتكامل واحد لا تنطبق على تكامل آخر.
من هو عنوان المصدر
ترى مجموعات الأمان المصدر الذي يصل إلى حدودها، وقد يكون العميل المتصل أو عنوانًا مترجمًا بحسب مسار VPN وموازنة الحمل. وعلى العقد المدعومة بـ EC2، ترث Pods الـ VPC CNI العادية مجموعات واجهة ENI الخاصة بالعقدة افتراضيًا، بينما يمكن للإعدادات المدعومة إرفاق مجموعات خاصة بالـ Pod. اكتب القواعد للمسار الموثق بدلًا من عنوان حاسوب محمول مخمّن.
أبقِ مستمع التطبيق ومصادقته ضابطين منفصلين. قاعدة شبكة تسمح بالتدفق ليست قرار تفويض ولا ينبغي التعامل معها على هذا النحو.
ما الذي تسلمه للمستخدمين
أعطِ المستخدمين اسم خدمة، لا عنوانًا. انشر الاسم في المنطقة الخاصة، ووجّهه إلى المدخل الداخلي، ثم اختبر باستبدال Pod خلفي بينما يبقي العميل الاسم نفسه مفتوحًا. هذا التمرين يختبر الخاصية المهمة: الوصول إلى التطبيق نفسه بعد نشر روتيني.
أبقِ الوصول المباشر إلى الـ Pod استثناءً تشغيليًا موثقًا بنطاقه الخاص، بعيدًا عن تعليمات المستخدمين.