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ınIngress,Egressveya 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 trafficFrontend'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: frontendGiden 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: databaseDiğ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 namespacePolitika 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,policyTypesve 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
- Role-Based Access Control (RBAC)
- Yalıtım için Ağ İlkeleri
- Pod Güvenlik Standartları
- Hizmet Hesapları ve İş Yükü Kimliği