السلام عليكم، عندي مشكلة في الوصول إلى خدمة NGINX منشورة على Kubernetes داخل شبكة محلية (LAN)، باستخدام MetalLB كـ LoadBalancer.
تفاصيل البيئة:
نظام التشغيل: Debian 12
Kubernetes: v1.33
Container Runtime: containerd
MetalLB: v0.15.2 (مود L2)
NGINX: منشور عبر Deployment + Service من النوع LoadBalancer
تم تخصيص IP Pool في MetalLB من المجال 192.168.1.110-192.168.1.120
nginx service تم تخصيص IP خارجي له 192.168.1.110
الحالة الحالية:
Pod الخاص بـ nginx شغّال والحالة Running
الـ Service من النوع LoadBalancer حصل على IP خارجي من MetalLB بشكل صحيح (192.168.1.110)
داخل السيرفر نفسه أقدر أوصل للـ NGINX من خلال:
curl http://192.168.1.176:NodePort ✅
curl http://PodIP ✅
curl http://ClusterIP ✅
لكن من أي جهاز آخر على نفس الشبكة المحلية ما بقدر أوصل لـ nginx عبر الـ IP 192.168.1.110
curl http://192.168.1.110 ❌ (connection refused)
معلومات إضافية:
فحص الشبكة عبر tcpdump على السيرفر يظهر وصول بعض الـ ARP requests
الخدمة تظهر بالوصف:
kubectl describe svc nginx
LoadBalancer Ingress: 192.168.1.110
Endpoints: 192.168.206.xxx:80
لا يوجد جدار حماية مفعل (iptables فارغة)
prometheus + grafana تعمل وتُظهر المراقبة، وبيانات الشبكة على nginx تظهر أنها صفر تقريبًا (لا inbound ولا outbound)
المطلوب:
أحتاج مساعدة لتحديد سبب عدم القدرة على الوصول من خارج السيرفر عبر الـ External IP المعطى من MetalLB رغم أن كل شيء يبدو صحيحًا من الداخل.