تخطَّ إلى المحتوى

Ingress و Gateway API

Service من نوع ClusterIP داخلي. لكن المستخدم خارج Cluster يحتاج الوصول إلى التطبيق من المتصفح.

هناك أكثر من طريقة:

  • NodePort للتجارب البسيطة.
  • LoadBalancer في Cloud.
  • Ingress لتوجيه HTTP/HTTPS.
  • Gateway API كاتجاه أحدث وأكثر مرونة.

Ingress يحدد قواعد HTTP:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: web
spec:
rules:
- host: web.local
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: web
port:
number: 80

لكن Ingress يحتاج Ingress Controller مثل NGINX Ingress أو Traefik.

في Production، يجب استخدام HTTPS. عادة يتم ذلك بإضافة Secret يحتوي certificate، أو باستخدام cert-manager لإصدار الشهادات تلقائيا.

Gateway API هدفه أن يكون أوضح وأكثر قابلية للتوسع من Ingress، خصوصا في البيئات الكبيرة. ستراه كثيرا مع Service Mesh و platform teams.

أهم الموارد:

  • GatewayClass
  • Gateway
  • HTTPRoute
الحالةالاختيار
تجربة محلية سريعةport-forward
فتح خدمة داخل Cloud ببساطةLoadBalancer
تطبيقات HTTP متعددة على نفس المدخلIngress
منصة متقدمة أو routing معقدGateway API

Lab: تشغيل Ingress محلي

المستوى: مبتدئ الوقت: 35 دقيقة الأدوات: kubectl, Ingress Controller

الهدف: فتح Service باستخدام hostname محلي.

  1. ثبت Ingress Controller حسب أداة Cluster التي تستخدمها.
  2. طبق Ingress.
  3. أضف web.local إلى ملف hosts لو لزم.
  4. افتح http://web.local.