0Pricing
Kubernetes Basics · Ders

Yalıtım için Ağ İlkeleri

Kubernetes Ağ İlkelerini kullanarak Pod'lar ve ad alanları arasındaki ağ trafiği akışını denetleyin.

Yalıtım için Ağ İlkeleri, CoddyKit'te ücretsiz bir Kubernetes Basics dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Kubernetes Basics öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Kubernetes Basics kursu toplamda 4 dersten oluşur.

Ağ Politikaları: Trafik polisleri

Kubernetes'te Pod'lar varsayılan olarak birbirleriyle serbestçe iletişim kurabilir. Bu esneklik için harikadır, ancak güvenlik açısından her zaman ideal değildir.

Ağ Politikaları, Pod'lar için güvenlik duvarı gibi davranarak hangi ağ trafiğine içeri (ingress) ve dışarı (egress) izin verileceğini kontrol eder.

Varsayılan: Tüm Pod'lar iletişim kurabilir

Varsayılan olarak bir Pod dağıtıldıktan sonra namespace'inden bağımsız olarak kümedeki diğer tüm Pod'larla iletişim kurabilir. Bu "düz ağ" modeli kurulumu kolaylaştırır, ancak yalıtım sağlamaz.

Üretim ortamlarında güvenliği artırmak ve uygulama bileşenleri arasındaki yetkisiz erişimi önlemek için iletişimi kısıtlamanız çoğu zaman gerekir.

Ingress ve egress kuralları

Ağ Politikaları, Pod'ların nasıl iletişim kurabileceğine ilişkin kuralları tanımlar. Öncelikle iki trafik türüne odaklanır:

  • Ingress: Bir Pod'a gelen trafik.
  • Egress: Bir Pod'dan çıkan trafik.

Bu kurallar, etiketler kullanılarak belirli Pod'lara uygulanır ve diğer Pod'ları, namespace'leri veya IP bloklarını hedefleyebilir.

CNI eklentisi gereksinimi

Ağ Politikaları sihirli değildir! Çalışmaları için Kubernetes kümenizde bunları destekleyen bir Container Network Interface (CNI) eklentisi bulunmalıdır.

Calico, Cilium ve Weave Net gibi popüler CNI eklentileri bu işlevi sağlar. Destekleyen bir CNI olmadan Ağ Politikalarının hiçbir etkisi olmaz.

Bir politikanın yapısı

Ağ Politikaları YAML kullanılarak tanımlanır. Temel alanlar şunlardır:

  • metadata.name: Politikanız için benzersiz bir ad.
  • spec.podSelector: Bu politikanın uygulanacağı Pod'ları seçer.
  • spec.policyTypes: Politikanın Ingress, Egress veya her ikisine uygulanıp uygulanmayacağını belirtir.
  • spec.ingress/spec.egress: İzin verilen trafik kurallarını listeler.

Gelen tüm trafiği engelleme

Geçerli namespace'te app: backend etiketine sahip Pod'lara gelen tüm trafiği reddeden bir politika oluşturalım. Bu, "varsayılan olarak reddet" güvenlik yaklaşımı için yaygın bir başlangıç noktasıdır.

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: deny-all-backend-ingress
spec:
  podSelector:
    matchLabels:
      app: backend
  policyTypes:
  - Ingress
  ingress: [] # An empty ingress list denies all incoming traffic

Frontend'den ingress'e izin verme

Şimdi politikamızı, yalnızca aynı namespace'te app: frontend etiketi bulunan Pod'lardan app: backend etiketli Pod'larımıza gelen trafiğe izin verecek şekilde değiştirelim.

Kaynak Pod'ları belirten from bölümüne dikkat edin.

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: allow-frontend-to-backend
spec:
  podSelector:
    matchLabels:
      app: backend
  policyTypes:
  - Ingress
  ingress:
  - from:
    - podSelector:
        matchLabels:
          app: frontend

Giden trafiği kontrol etme

Ingress'te olduğu gibi egress (giden) trafiği de kontrol edebilirsiniz. Burada app: backend etiketli Pod'ların yalnızca app: database etiketli Pod'lara giden istekler göndermesine izin veren bir politika oluşturacağız.

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: backend-egress-to-db
spec:
  podSelector:
    matchLabels:
      app: backend
  policyTypes:
  - Egress
  egress:
  - to:
    - podSelector:
        matchLabels:
          app: database

Diğer namespace'leri hedefleme

Frontend'in web-apps gibi farklı bir namespace'te olduğunu varsayalım. Namespace'ler arasındaki Pod'ları hedeflemek için namespaceSelector kullanabilirsiniz.

Bu politika, web-apps namespace'indeki herhangi bir Pod'dan app: backend etiketli Pod'lara gelen trafiğe izin verir.

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: allow-web-apps-ingress
spec:
  podSelector:
    matchLabels:
      app: backend
  policyTypes:
  - Ingress
  ingress:
  - from:
    - namespaceSelector:
        matchLabels:
          name: web-apps
      podSelector: {} # All pods in the selected namespace

Politika görevi

app: web ve env: prod etiketlerine sahip bir Pod düşünün. Yalnızca monitoring namespace'indeki Pod'lardan gelen trafiğe izin verecek Ağ Politikası hangisidir?

Özet: Ağınızı güvenli hale getirin

Harika iş çıkardınız! Kubernetes Ağ Politikalarının uygulamalarınız için nasıl kritik ağ yalıtımı sağladığını öğrendiniz.

  • Pod'lar için güvenlik duvarı görevi görürler.
  • Hem ingress (gelen) hem de egress (giden) trafiği kontrol ederler.
  • Bunları destekleyen bir CNI eklentisi gerektirirler.
  • podSelector, policyTypes ve kural tanımları kullanılarak YAML ile tanımlanırlar.
  • Pod'ları etiketlerine, hatta tüm namespace'lere göre hedefleyebilirler.

En az ayrıcalık ilkesine dayalı bir ağ modeli uygulamak için bunları kullanın!

Sıkça Sorulan Sorular

“Yalıtım için Ağ İlkeleri” dersi ücretsiz mi?

Evet — “Yalıtım için Ağ İlkeleri” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Kubernetes Basics kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Kubernetes Basics kursu toplamda 4 dersten oluşur.

“Yalıtım için Ağ İlkeleri” dersinde ne öğreneceğim?

Kubernetes Ağ İlkelerini kullanarak Pod'lar ve ad alanları arasındaki ağ trafiği akışını denetleyin. Kubernetes Basics ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Kubernetes Basics öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Kubernetes Basics, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.

“Yalıtım için Ağ İlkeleri” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Kubernetes Basics dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Kubernetes Basics dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Role-Based Access Control (RBAC)
  2. Yalıtım için Ağ İlkeleri
  3. Pod Güvenlik Standartları
  4. Hizmet Hesapları ve İş Yükü Kimliği
← Kubernetes Basics Sayfasına Dön