Kubernetes Pod Ağ İletişimi: Service ve Ingress Farkı
# Kubernetes Pod Ağ İletişimi: Service ve Ingress Farkı
Kubernetes'te podlar kendi aralarında iletişim kurabilir ama dış dünyadan erişilemez. Bu sorunu çözmek için Service ve Ingress kullanılır. Aralarındaki fark net değilse kafan karışabilir. Biri pod içi haberleşmeyi, diğeri dış erişimi sağlar.
Service, podlara sabit bir ağ adresi ve DNS adı verir. Podlar silinip yenileri oluşturulsa bile Service aynı kalır. Cluster içinde iletişim için kullanılır.
Üç tipi vardır:
- ClusterIP: Sadece cluster içinde erişim (default)
- NodePort: Her node'un belirli portunu açar (30000-32767)
- LoadBalancer: Bulut sağlayıcısının load balancer'ını kullanır
Ingress, HTTP/HTTPS trafiğini cluster dışından alıp Service'lere yönlendirir. DNS adı, SSL sertifikası ve URL yollarına göre yönlendirme yapabilir.
Service olmadan Ingress çalışmaz. Ingress, Service'e bağlanır.
1apiVersion: v12kind: Pod3metadata:4name: web-pod5labels:6app: web7spec:8containers:9- name: nginx10image: nginx:latest11ports:12- containerPort: 801apiVersion: v12kind: Service3metadata:4name: web-service5spec:6selector:7app: web8type: ClusterIP9ports:10- port: 8011targetPort: 80Uygula:
1kubectl apply -f pod.yaml2kubectl apply -f service.yaml3kubectl get svcÇıktı:
1NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S)2web-service ClusterIP 10.96.45.123 <none> 80/TCP1apiVersion: networking.k8s.io/v12kind: Ingress3metadata:4name: web-ingress5spec:6rules:7- host: example.com8http:9paths:10- path: /11pathType: Prefix12backend:13service:14name: web-service15port:16number: 80Uygula:
1kubectl apply -f ingress.yaml2kubectl get ingressService: Cluster içi iletişim, sabit adres sağlar.
Ingress: Dış dünyadan gelen HTTP/HTTPS trafiğini Service'e yönlendirir.
Praktik: Önce Service oluştur, sonra Ingress'i ona bağla. Dış erişim istiyorsan Ingress, sadece pod iletişimi istiyorsan Service yeterli.
0 yorum