Azure Kubernetes Service'teki (AKS) uygulamalar için ağ kavramları

Uygulama geliştirmeye yönelik kapsayıcı tabanlı mikro hizmetler yaklaşımında, uygulama bileşenleri görevlerini işlemek için birlikte çalışır. Kubernetes bu işbirliğini sağlayan çeşitli kaynaklar sağlar:

  • Uygulamalara şirket içinde veya dışında bağlanabilir ve bunları kullanıma salayabilirsiniz.
  • Uygulamalarınızın yük dengelemesini yaparak yüksek oranda kullanılabilir uygulamalar oluşturabilirsiniz.
  • Güvenliği artırmak için podlar ve düğümler arasında ağ trafiğinin akışını kısıtlayabilirsiniz.
  • Daha karmaşık uygulamalarınız için SSL/TLS sonlandırması veya birden çok bileşenin yönlendirilmesi için Giriş trafiğini yapılandırabilirsiniz.

Bu makalede, AKS'deki uygulamalarınıza ağ sağlayan temel kavramlar açıklanır:

Kubernetes ağ ile ilgili temel bilgiler

Kubernetes, uygulamalarınız veya bileşenleri arasında ve içindeki erişimi yönetmek için bir sanal ağ katmanından oluşur:

  • Kubernetes düğümleri ve sanal ağ: Kubernetes düğümleri bir sanal ağa bağlanır. Bu kurulum, podların (Kubernetes'te temel dağıtım birimleri) hem gelen hem de giden bağlantıya sahip olmasını sağlar.

  • Kube-proxy bileşeni: kube-proxy her düğümde çalışır ve gerekli ağ özelliklerini sağlamakla sorumludur.

Belirli Kubernetes işlevleriyle ilgili olarak:

  • Yük dengeleyici: Ağ trafiğini çeşitli kaynaklar arasında eşit bir şekilde dağıtmak için yük dengeleyici kullanabilirsiniz.
  • Giriş denetleyicileri: Bunlar, uygulama trafiğini yönlendirmek için gerekli olan Katman 7 yönlendirmesini kolaylaştırır.
  • Çıkış trafiği denetimi: Kubernetes, küme düğümlerinden giden trafiği yönetmenize ve denetlemenize olanak tanır.
  • Ağ ilkeleri: Bu ilkeler podlardaki ağ trafiği için güvenlik ölçülerini ve filtrelemeyi etkinleştirir.

Azure platformu bağlamında:

  • Azure, AKS (Azure Kubernetes Service) kümeleri için sanal ağı kolaylaştırır.
  • Azure'da bir Kubernetes yük dengeleyici oluşturma aynı anda ilgili Azure yük dengeleyici kaynağını ayarlar.
  • Podlara ağ bağlantı noktalarını açtığınızda, Azure gerekli ağ güvenlik grubu kurallarını otomatik olarak yapılandırıyor.
  • Azure, yeni Giriş yolları oluşturulduktan sonra HTTP uygulama yönlendirmesi için dış DNS yapılandırmalarını da yönetebilir.

Azure sanal ağları

AKS'de, aşağıdaki ağ modellerinden birini kullanan bir küme dağıtabilirsiniz:

  • Kubenet ağı

    Ağ kaynakları genellikle AKS kümesi dağıtılırken oluşturulur ve yapılandırılır.

  • Azure Container Networking Interface (CNI) ağı

    AKS kümesi, var olan sanal ağ kaynaklarına ve yapılandırmalarına bağlanır.

Kubenet (temel) ağ iletişimi

Kubenet ağ seçeneği, AKS kümesi oluşturma için varsayılan yapılandırmadır. kubenet ile:

  1. Düğümler, Azure sanal ağ alt ağından bir IP adresi alır.
  2. Podlar, düğümlerin Azure sanal ağ alt ağından mantıksal olarak farklı bir adres alanından BIR IP adresi alır.
  3. Ardından podların Azure sanal ağındaki kaynaklara erişebilmesi için ağ adresi çevirisi (NAT) yapılandırması gerçekleştirilir.
  4. Trafiğin kaynak IP adresi düğümün birincil IP adresine çevrilir.

Düğümler kubenet Kubernetes eklentisini kullanır. Azure platformunun sizin için sanal ağları oluşturmasına ve yapılandırmasına izin verebilir veya AKS kümenizi mevcut bir sanal ağ alt ağına dağıtmayı seçebilirsiniz.

Yalnızca düğümler yönlendirilebilir bir IP adresi alır. Podlar, AKS kümesi dışındaki diğer kaynaklarla iletişim kurmak için NAT kullanır. Bu yaklaşım, podların kullanması için ağ alanınızda ayırmanız gereken IP adresi sayısını azaltır.

Not

Kubenet, aks kümesinin sanal ağ ve alt ağ oluşturması için varsayılan ağ seçeneği olsa da, üretim dağıtımları için önerilmez. Çoğu üretim dağıtımında, üstün ölçeklenebilirlik ve performans özellikleri nedeniyle Azure CNI ağını planlamanız ve kullanmanız gerekir.

Daha fazla bilgi için bkz . AKS kümesi için kubenet ağını yapılandırma.

Azure CNI (gelişmiş) ağı

Azure CNI seçeneğinde her pod, alt ağdan doğrudan erişilebilen bir IP adresi alır. Bu IP adresleri önceden planlanmalıdır ve ağ alanınız genelinde benzersiz olmalıdır. Her düğümün desteklediği en fazla pod sayısı için bir yapılandırma parametresi vardır. Düğüm başına eşdeğer IP adresi sayısı önceden ayrılır. Bu yaklaşım IP adresi tükenmesine veya uygulamanızın talebi arttıkça daha büyük bir alt ağdaki kümeleri yeniden oluşturma gereksinimine yol açabilir, bu nedenle düzgün planlama yapmak önemlidir. Bu planlama zorluklarını önlemek için IP'lerin dinamik olarak ayrılması ve gelişmiş alt ağ desteği için Azure CNI ağı özelliğini etkinleştirmek mümkündür.

Not

Kubernetes sınırlamaları nedeniyle Kaynak Grubu adı, Sanal Ağ adı ve alt ağ adı 63 karakter veya daha kısa olmalıdır.

Kubenet'in aksine, aynı sanal ağdaki uç noktalara yönelik trafik düğümün birincil IP'sine (NAT) çevrilmiyor. Sanal ağ içindeki trafiğin kaynak adresi pod IP'dir. Sanal ağın dışında kalan trafik, düğümün birincil IP'sine hala NAT'ler.

Düğümler Azure CNI Kubernetes eklentisini kullanır.

Her birini tek bir Azure sanal asına bağlayan köprüleri olan iki düğümü gösteren diyagram

Daha fazla bilgi için bkz . AKS kümesi için Azure CNI'yi yapılandırma.

Azure CNI Katman ağı

Azure CNI Katman , azure CNI'nin bir evrimini temsil eder ve sanal ağ IP'lerinin podlara atanmasından kaynaklanan ölçeklenebilirlik ve planlama zorluklarını ele alır. Azure CNI Yer Paylaşımı, podlara özel CIDR IP'leri atar. Özel IP'ler sanal ağdan ayrıdır ve birden çok kümede yeniden kullanılabilir. Azure CNI Yer Paylaşımı, Kubenet kümelerinde uygulanan 400 düğüm sınırının ötesine ölçeklendirilebilir. Azure CNI Katman, çoğu küme için önerilen seçenektir.

Cilium tarafından desteklenen Azure CNI

Cilium tarafından desteklenen Azure CNI, yüksek performanslı ağ iletişimi, gözlemlenebilirlik ve ağ ilkesi zorlaması sağlamak için Cilium kullanır. Ölçeklenebilir IP adresi yönetimi (IPAM) için Azure CNI Yer Paylaşımı ile yerel olarak tümleşir.

Ayrıca Cilium, ayrı bir ağ ilkesi altyapısı gerektirmeden varsayılan olarak ağ ilkelerini zorunlu kılar. Cilium tarafından desteklenen Azure CNI, eBPF programları ve daha verimli bir API nesne yapısı kullanarak Azure Ağ İlkesi Yöneticisi'nin 250 düğüm / 20-K pod sınırının ötesine ölçeklendirilebilir.

Cilium tarafından desteklenen Azure CNI, ağ ilkesi zorlaması gerektiren kümeler için önerilen seçenektir.

Kendi CNI’nızı getirin

Kendi CNI'nizi getirin özelliğini kullanarak AKS'ye Microsoft dışı bir CNI yüklemek mümkündür.

Ağ modellerini karşılaştırma

Hem kubenet hem de Azure CNI, AKS kümeleriniz için ağ bağlantısı sağlar. Ancak, her birinin avantajları ve dezavantajları vardır. Üst düzeyde aşağıdaki noktalar geçerlidir:

  • kubenet

    • IP adresi alanından tasarruf eder.
    • Kümenin dışından podlara ulaşmak için Kubernetes iç veya dış yük dengeleyicileri kullanır.
    • Kullanıcı tanımlı yolları (UDR) el ile yönetir ve korursunuz.
    • Küme başına en fazla 400 düğüm.
  • Azure CNI

    • Podlar tam sanal ağ bağlantısına sahip olur ve bağlı ağlardan özel IP adresleri üzerinden doğrudan ulaşılabilir.
    • Daha fazla IP adresi alanı gerektirir.
Ağ modeli ne zaman kullanılmalı
Kubenet • IP adresi alanı konuşması bir önceliktir.
• Basit yapılandırma.
• Küme başına 400'den az düğüm.
• Kubernetes iç veya dış yük dengeleyiciler, küme dışından podlara ulaşmak için yeterlidir.
• Kullanıcı tanımlı yolların el ile yönetilmesi ve bakımının gerçekleştirilebilir olması.
Azure CNI • Podlar için tam sanal ağ bağlantısı gereklidir.
• Gelişmiş AKS özellikleri (sanal düğümler gibi) gereklidir.
• Yeterli IP adresi alanı mevcuttur.
• Poddan poda ve poddan sanal makineye bağlantı gereklidir.
• Dış kaynakların podlara doğrudan ulaşması gerekir.
• AKS ağ ilkeleri gereklidir.
Azure CNI Katmanı • IP adresi kıtlığı bir sorundur.
• Düğüm başına 1.000 düğüme ve 250 poda kadar ölçeklendirme yeterlidir.
• Pod bağlantısı için ek atlama kabul edilebilir.
• Daha basit ağ yapılandırması.
• AKS çıkış gereksinimleri karşılanabilir.

Kubenet ile Azure CNI arasında aşağıdaki davranış farklılıkları vardır:

Özellik Kubenet Azure CNI Azure CNI Katmanı Cilium tarafından desteklenen Azure CNI
Mevcut veya yeni sanal ağda küme dağıtma Destekleniyor - UDR'ler el ile uygulandı Desteklenir Desteklenir Desteklenir
Pod-pod bağlantısı Desteklenir Desteklenir Desteklenir Desteklenir
Pod-VM bağlantısı; Aynı sanal ağdaki VM Pod tarafından başlatıldığında çalışır her iki şekilde de çalışır Pod tarafından başlatıldığında çalışır Pod tarafından başlatıldığında çalışır
Pod-VM bağlantısı; Eşlenmiş sanal ağda VM Pod tarafından başlatıldığında çalışır her iki şekilde de çalışır Pod tarafından başlatıldığında çalışır Pod tarafından başlatıldığında çalışır
VPN veya Express Route kullanarak şirket içi erişim Pod tarafından başlatıldığında çalışır her iki şekilde de çalışır Pod tarafından başlatıldığında çalışır Pod tarafından başlatıldığında çalışır
Hizmet uç noktaları tarafından güvenliği sağlanan kaynaklara erişim Desteklenir Desteklenir Desteklenir
Yük dengeleyici hizmeti, App Gateway veya giriş denetleyicisi kullanarak Kubernetes hizmetlerini kullanıma sunma Desteklenir Desteklenir Desteklenir Katman modunu kullanırken de aynı sınırlamalar
Windows düğüm havuzları desteği Desteklenmiyor Desteklenir Desteklenir Yalnızca Linux için kullanılabilir, Windows için kullanılamaz.
Varsayılan Azure DNS ve Özel Bölgeler Desteklenir Desteklenir Desteklenir

Azure CNI ve kubenet hakkında daha fazla bilgi edinmek ve sizin için en uygun seçeneği belirlemeye yardımcı olmak için bkz . AKS'de Azure CNI ağını yapılandırma ve AKS'de kubenet ağını kullanma.

Ağ modelleri arasında destek kapsamı

Hangi ağ modelini kullanırsanız kullanın, hem kubenet hem de Azure CNI aşağıdaki yollardan biriyle dağıtılabilir:

  • Azure platformu, AKS kümesi oluşturduğunuzda sanal ağ kaynaklarını otomatik olarak oluşturabilir ve yapılandırabilir.
  • AKS kümenizi oluştururken sanal ağ kaynaklarını el ile oluşturup yapılandırabilir ve bu kaynaklara ekleyebilirsiniz.

Hizmet uç noktaları veya UDR'ler gibi özellikler hem kubenet hem de Azure CNI ile destekleniyor olsa da, AKS için destek ilkeleri hangi değişiklikleri yapabileceğinizi tanımlar. Örneğin:

  • Aks kümesi için sanal ağ kaynaklarını el ile oluşturursanız, kendi UDR'lerinizi veya hizmet uç noktalarınızı yapılandırırken desteklenirsiniz.
  • Azure platformu AKS kümeniz için sanal ağ kaynaklarını otomatik olarak oluşturursa, aks tarafından yönetilen bu kaynakları kendi UDR'lerinizi veya hizmet uç noktalarınızı yapılandıracak şekilde el ile değiştiremezsiniz.

Giriş denetleyicileri

LoadBalancer türü bir Hizmet oluşturduğunuzda, temel alınan bir Azure yük dengeleyici kaynağı da oluşturursunuz. Yük dengeleyici, belirli bir bağlantı noktasında hizmetinizdeki podlara trafik dağıtacak şekilde yapılandırılmıştır.

LoadBalancer yalnızca katman 4'te çalışır. Katman 4'te Hizmet, gerçek uygulamaların farkında değildir ve yönlendirme konusunda daha fazla dikkate alınamaz.

Giriş denetleyicileri katman 7'de çalışır ve uygulama trafiğini dağıtmak için daha akıllı kurallar kullanabilir. Giriş denetleyicileri genellikle HTTP trafiğini gelen URL'ye göre farklı uygulamalara yönlendirir.

AKS kümesinde giriş trafik akışını gösteren diyagram

Giriş seçeneklerini karşılaştırma

Aşağıdaki tabloda, farklı giriş denetleyicisi seçenekleri arasındaki özellik farklılıkları listelenmiştir:

Özellik Uygulama Yönlendirme eklentisi Kapsayıcılar için Application Gateway Azure Service Mesh/Istio tabanlı hizmet ağı
Giriş/Ağ Geçidi denetleyicisi NGINX giriş denetleyicisi Kapsayıcılar için Azure Uygulaması Lication Ağ Geçidi Istio Giriş Ağ Geçidi
API Giriş API'si Giriş API'si ve Ağ Geçidi API'si Ağ Geçidi API'si
Barındırma Küme içi Azure'da barındırılan Küme içi
Ölçeklendirme Otomatik ölçeklendirme Otomatik ölçeklendirme Otomatik ölçeklendirme
Yük dengeleme İç/Dış Harici İç/Dış
SSL sonlandırma Küme içi Evet: Boşaltma ve E2E SSL Küme içi
mTLS Yok Arka uç için evet Yok
Statik IP Adresi Yok FQDN Yok
Azure Key Vault'ta depolanan SSL sertifikaları Yes Yes Yok
DNS bölge yönetimi için Azure DNS tümleştirmesi Yes Yes Yok

Aşağıdaki tabloda, her giriş denetleyicisini kullanabileceğiniz farklı senaryolar listeleniyor:

Giriş seçeneği ne zaman kullanılmalı
Yönetilen NGINX - Uygulama Yönlendirme eklentisi • Küme içinde barındırılan, özelleştirilebilir ve ölçeklenebilir NGINX giriş denetleyicileri.
• Temel yük dengeleme ve yönlendirme özellikleri.
• İç ve dış yük dengeleyici yapılandırması.
• Statik IP adresi yapılandırması.
• Sertifika yönetimi için Azure Key Vault ile tümleştirme.
• Genel ve özel DNS yönetimi için Azure DNS Bölgeleri ile tümleştirme.
• Giriş API'sini destekler.
Kapsayıcılar için Application Gateway • Azure'da barındırılan giriş ağ geçidi.
• Denetleyici tarafından yönetilen esnek dağıtım stratejileri veya Kapsayıcılar için kendi Application Gateway'inizi getirme.
• Otomatik yeniden denemeler, kullanılabilirlik alanı dayanıklılığı, arka uç hedefine karşılıklı kimlik doğrulaması (mTLS), trafiği bölme /ağırlıklı hepsini bir kez deneme ve otomatik ölçeklendirme gibi gelişmiş trafik yönetimi özellikleri.
• Sertifika yönetimi için Azure Key Vault ile tümleştirme.
• Genel ve özel DNS yönetimi için Azure DNS Bölgeleri ile tümleştirme.
• Giriş ve Ağ Geçidi API'lerini destekler.
Istio Giriş Ağ Geçidi • Hizmet ağı için Istio ile kullanırken Envoy'a göre.
• Hız sınırlama ve devre kesme gibi gelişmiş trafik yönetimi özellikleri.
• mTLS
desteği • Ağ Geçidi API'sini destekler.

Giriş kaynağı oluşturma

Aks'de giriş denetleyicisini yapılandırmanın önerilen yolu uygulama yönlendirme eklentisidir. Uygulama yönlendirme eklentisi, Azure Kubernetes Service (AKS) için aşağıdaki özellikleri sağlayan tam olarak yönetilen bir giriş denetleyicisidir:

  • Kubernetes NGINX Giriş denetleyicisini temel alan yönetilen NGINX Giriş denetleyicilerinin kolay yapılandırılması.

  • Genel ve özel bölge yönetimi için Azure DNS ile tümleştirme.

  • Azure Key Vault'ta depolanan sertifikalarla SSL sonlandırma.

Uygulama yönlendirme eklentisi hakkında daha fazla bilgi için bkz . Uygulama yönlendirme eklentisiyle yönetilen NGINX girişi.

İstemci kaynağı IP'lerinin korunması

AKS kümenizdeki kapsayıcılara yapılan isteklerde istemci kaynak IP'sini korumak için giriş denetleyicinizi yapılandırın. Giriş denetleyiciniz bir istemcinin isteğini AKS kümenizdeki bir kapsayıcıya yönlendirdiğinde, bu isteğin özgün kaynak IP'si hedef kapsayıcıda kullanılamaz. İstemci kaynağı IP korumasını etkinleştirdiğinizde, istemcinin kaynak IP'sini X-Forwarded-For altındaki istek üst bilgisinde bulabilirsiniz.

Giriş denetleyicinizde istemci kaynağı IP koruması kullanıyorsanız TLS geçişini kullanamazsınız. İstemci kaynağı IP'sinin korunması ve TLS geçişi LoadBalancer türü gibi diğer hizmetlerle birlikte kullanılabilir.

İstemci kaynağı IP'sini koruma hakkında daha fazla bilgi edinmek için bkz . AKS'de LoadBalancer Hizmetleri için istemci kaynağı IP'sini koruma nasıl çalışır?

Giden (çıkış) trafiğini denetleme

AKS kümeleri bir sanal ağa dağıtılır ve bu sanal ağın dışındaki hizmetlere giden bağımlılıkları vardır. Bu giden bağımlılıklar neredeyse tamamen tam etki alanı adlarıyla (FQDN' ler) tanımlanır. Varsayılan olarak AKS kümeleri, çalıştırdığınız düğümlerin ve hizmetlerin gerektiğinde dış kaynaklara erişmesini sağlayan sınırsız giden (çıkış) İnternet erişimine sahiptir. İsterseniz giden trafiği kısıtlayabilirsiniz.

Daha fazla bilgi için bkz. AKS'de küme düğümleri için çıkış trafiğini denetleme.

Ağ güvenlik grupları

Ağ güvenlik grubu, AKS düğümleri gibi VM'ler için trafiği filtreler. Siz LoadBalancer gibi Hizmetler oluştururken, Azure platformu gerekli ağ güvenlik grubu kurallarını otomatik olarak yapılandırıyor.

AKS kümesindeki podların trafiğini filtrelemek için ağ güvenlik grubu kurallarını el ile yapılandırmanız gerekmez. Kubernetes Service bildirimlerinizin bir parçası olarak gerekli bağlantı noktalarını ve iletmeyi tanımlayabilir ve Azure platformunun uygun kuralları oluşturmasına veya güncelleştirmesine izin vekleyebilirsiniz.

Ayrıca trafik filtresi kurallarının podlara otomatik olarak uygulanması için ağ ilkelerini de kullanabilirsiniz.

Daha fazla bilgi için bkz . Ağ güvenlik gruplarının ağ trafiğini filtreleme.

Ağ ilkeleri

Varsayılan olarak, AKS kümesindeki tüm podlar herhangi bir sınırlama olmadan trafik gönderebilir ve alabilir. Gelişmiş güvenlik için trafik akışını denetleyebilen kurallar tanımlayın, örneğin:

  • Arka uç uygulamaları yalnızca gerekli ön uç hizmetlerine sunulur.
  • Veritabanı bileşenlerine yalnızca bunlara bağlanan uygulama katmanları erişebilir.

Ağ ilkesi, AKS'de bulunan ve podlar arasındaki trafik akışını denetlemenize olanak tanıyan bir Kubernetes özelliğidir. Atanan etiketler, ad alanı veya trafik bağlantı noktası gibi ayarlara göre pod trafiğine izin verebilir veya trafiği reddedebilirsiniz. Ağ güvenlik grupları AKS düğümleri için daha iyi olsa da, ağ ilkeleri podlar için trafik akışını denetlemenin daha uygun, bulutta yerel bir yoludur. Podlar AKS kümesinde dinamik olarak oluşturulduğu için gerekli ağ ilkeleri otomatik olarak uygulanabilir.

Daha fazla bilgi için bkz . Azure Kubernetes Service'te (AKS) ağ ilkelerini kullanarak podlar arasındaki trafiğin güvenliğini sağlama.

Sonraki adımlar

AKS ağını kullanmaya başlamak için kubenet veya Azure CNI kullanarak kendi IP adresi aralıklarınızla bir AKS kümesi oluşturun ve yapılandırın.

İlişkili en iyi yöntemler için bkz . AKS'de ağ bağlantısı ve güvenlik için en iyi yöntemler.

Temel Kubernetes ve AKS kavramları hakkında daha fazla bilgi için aşağıdaki makalelere bakın: