Sobes.tech
Middle

Kubernetes'te çalışan uygulamalar birbirleriyle nasıl etkileşir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Kubernetes'te uygulamalar arasındaki etkileşim öncelikle ağ servisleri aracılığıyla gerçekleşir.

  1. Servis Keşfi: Uygulamalar, podların IP'lerine doğrudan erişmek yerine, podların yeniden oluşturulmasıyla değişebilecek geçici IP'ler yerine, kararlı bir DNS adı ve IP sağlayan Servis Keşfi'ni kullanır.

    • ClusterIP: Varsayılan servis tipi, yalnızca küme içinde erişilebilir iç IP sağlar.
    • NodePort: Her düğümde statik bir port açar ve trafiği ClusterIP servisine yönlendirir.
    • LoadBalancer: Dış yük dengeleyici oluşturur (bulut sağlayıcısı destekliyorsa).
    • ExternalName: Servisin dış DNS adına referans vermesine izin verir.
  2. DNS: Kubernetes, servisler için otomatik olarak DNS isimleri oluşturan dahili bir DNS sunucusu sağlar (örneğin, CoreDNS). Uygulama, diğer servise service-name.namespace.svc.cluster.local veya kısaltılmış service-name adıyla erişebilir.

  3. Ağ Politikaları: Pod gruplarının birbirleriyle ve dış ağ uç noktalarıyla nasıl etkileşime girebileceğini belirler. Güvenlik nedenleriyle ağ trafiğini izole etmek için kullanılırlar.

    apiVersion: networking.k8s.io/v1
    kind: NetworkPolicy
    metadata:
      name: deny-all-ingress
      namespace: default
    spec:
      podSelector: {} # Tüm podlara uygulanır
      policyTypes:
      - Ingress
      ingress: [] # Tüm gelen trafiği engeller
    
  4. Ingress: Küme içindeki servislere dış erişimi yönetir, genellikle HTTP/HTTPS üzerinden. Ingress denetleyicisi (örneğin, Nginx Ingress, Traefik), Ingress kaynağında tanımlanan kurallara göre dış ağdan iç servislere trafik yönlendirir.

  5. Servis Ağı (Service Mesh): (Örneğin, Istio, Linkerd) Servisler arasındaki etkileşim için ek bir soyutlama ve işlevsellik katmanı ekler. Ortak TLS, istek izleme, metrikler, trafik yönetimi (A/B testleri, kanarya sürümleri) gibi özellikler sağlar ve her pod'a eklenen proxy (yan taraf konteynerleri) seviyesinde çalışır.

Böylece, temel etkileşim mekanizmaları DNS üzerinden Servis Keşfi ve çeşitli Servis Tipleri olup, güvenlik için Ağ Politikaları ve daha karmaşık trafik yönetimi ve gözlemler için Ingress/Service Mesh ile tamamlanır.