Aracılığıyla paylaş


Azure Container Networking Interface (CNI) Pod Alt Ağı

Azure CNI Pod Alt Ağı, küme Düğümlerinizden ayrı bir alt ağdan podlara IP adresleri atar. Bu özellik iki modda kullanılabilir: Dinamik IP Ayırma ve Statik Blok Ayırma (Önizleme).

Önkoşullar

Not

CIDR'lerin statik blok ayırması kullanıldığında, Kubernetes Load Balancer Hizmeti kullanarak bir uygulamayı Özel Bağlantı Hizmeti olarak ortaya çıkarmak desteklenmez.

  • Bu makalede de aynı önkoşullar geçerli olduğundan AKS'de temel Azure CNI ağını yapılandırma önkoşullarını gözden geçirin.

  • Aynı parametreler uygulandığından AKS'de temel Azure CNI ağını yapılandırmak için dağıtım parametrelerini gözden geçirin.

  • AKS Altyapısı ve DIY kümeleri desteklenmez.

  • Azure CLI sürümü 2.37.0 veya üstü ve aks-preview uzantı sürümü 2.0.0b2 veya üzeri.

  • Aboneliğiniz için abonelik düzeyi özellik bayrağını kaydedin: 'Microsoft.ContainerService/AzureVnetScalePreview'.

  • Mevcut bir kümeniz varsa, IP alt ağ kullanımını izlemek için Container Insights eklentisini etkinleştirmeniz gerekir. Aşağıdaki örnekte gösterildiği gibi komutunu kullanarak az aks enable-addons Container Insights'ı etkinleştirebilirsiniz:

    az aks enable-addons --addons monitoring --name <cluster-name> --resource-group <resource-group-name>
    

Dinamik IP ayırma modu

Dinamik IP ayırma, AKS kümesini barındıran alt ağdan ayrı bir alt ağdan pod IP'leri ayırarak pod IP adresi tükenme sorunlarını azaltmaya yardımcı olur.

Dinamik IP ayırma modu aşağıdaki avantajları sunar:

  • Daha iyi IP kullanımı: IP'ler Pod alt ağından küme Podlarına dinamik olarak ayrılır. Bu, her düğüm için IP'lerin statik olarak ayrılmasına neden olan geleneksel CNI çözümüne kıyasla kümedeki IP'lerin daha iyi kullanılmasına yol açar.
  • Ölçeklenebilir ve esnek: Düğüm ve pod alt ağları bağımsız olarak ölçeklendirilebilir. Tek bir pod alt ağı, bir kümenin birden çok düğüm havuzu arasında veya aynı sanal ağa dağıtılan birden çok AKS kümesi arasında paylaşılabilir. Düğüm havuzu için ayrı bir pod alt ağı da yapılandırabilirsiniz.
  • Yüksek performans: Podlara sanal ağ IP'leri atandığından sanal ağdaki diğer küme podlarına ve kaynaklarına doğrudan bağlantı vardır. Çözüm, performansta herhangi bir düşüş olmadan çok büyük kümeleri destekler.
  • Podlar için ayrı sanal ağ ilkeleri: Podların ayrı bir alt ağı olduğundan, bunlar için düğüm ilkelerinden farklı ayrı sanal ağ ilkeleri yapılandırabilirsiniz. Bu, düğümler için değil yalnızca podlar için İnternet bağlantısına izin verme, Azure NAT Gateway kullanarak düğüm havuzundaki pod için kaynak IP'yi düzeltme ve düğüm havuzları arasındaki trafiği filtrelemek için ağ güvenlik gruplarını (NSG) kullanma gibi birçok yararlı senaryoyu etkinleştirir.
  • Kubernetes ağ ilkeleri: Hem Azure Ağ İlkeleri hem de Calico bu modla çalışır.

IP adresini planlama

Dinamik IP ayırma ile düğümler ve podlar bağımsız olarak ölçeklendirilir, böylece adres alanlarını ayrı olarak planlayabilirsiniz. Pod alt ağları düğüm havuzunun ayrıntı düzeyine göre yapılandırılabildiği için, düğüm havuzu eklerken her zaman yeni bir alt ağ ekleyebilirsiniz. Küme/düğüm havuzundaki sistem podları da pod alt ağından IP'ler alır, bu nedenle bu davranışın hesaba bağlanması gerekir.

IP'ler düğümlere 16 toplu olarak ayrılır. Düğümler başlangıçta 16 IP istediğinden ve ayırmalarında ayrılmamış 8 IP olduğunda <16'lık başka bir toplu iş istediğinden, pod alt ağı IP ayırma işlemi kümede düğüm başına en az 16 IP ile planlanmalıdır.

Kubernetes hizmetleri ve Docker Köprüsü için IP adresi planlaması değişmeden kalır.

Statik blok ayırma modu (Önizleme)

Statik blok ayırma, tek tek IP'ler yerine düğümlere CIDR blokları atayarak olası pod alt ağı boyutlandırma ve Azure adresi eşleme sınırlamalarını azaltmaya yardımcı olur.

Statik blok ayırma modu aşağıdaki avantajları sunar:

  • Daha iyi IP ölçeklenebilirliği: CIDR blokları, geleneksel CNI ile tek tek IP'lerin geleneksel dinamik ayırmasının aksine, küme düğümlerine statik olarak ayrılır ve düğümün ömrü boyunca bulunur. Bu, CIDR bloklarını temel alarak yönlendirmeye olanak tanır ve küme sınırının küme başına geleneksel 65K podlardan 1 milyon pod'a kadar ölçeklendirilmesine yardımcı olur. Azure Sanal Ağ kümenizin ölçeğini karşılayacak kadar büyük olmalıdır.
  • Esneklik: Düğüm ve pod alt ağları bağımsız olarak ölçeklendirilebilir. Tek bir pod alt ağı, bir kümenin birden çok düğüm havuzu arasında veya aynı sanal ağa dağıtılan birden çok AKS kümesi arasında paylaşılabilir. Düğüm havuzu için ayrı bir pod alt ağı da yapılandırabilirsiniz.
  • Yüksek performans: Podlara sanal ağ IP'leri atandığından sanal ağdaki diğer küme podlarına ve kaynaklarına doğrudan bağlantı sağlanır.
  • Podlar için ayrı sanal ağ ilkeleri: Podların ayrı bir alt ağı olduğundan, bunlar için düğüm ilkelerinden farklı ayrı sanal ağ ilkeleri yapılandırabilirsiniz. Bu, düğümler için değil yalnızca podlar için İnternet bağlantısına izin verme, Azure NAT Ağ Geçidi kullanarak düğüm havuzundaki pod için kaynak IP'yi düzeltme ve düğüm havuzları arasındaki trafiği filtrelemek için NSG'leri kullanma gibi birçok yararlı senaryoyu etkinleştirir.
  • Kubernetes ağ ilkeleri: Cilium, Azure NPM ve Calico bu çözümle çalışır.

Sınırlamalar

Azure CNI Statik Blok ayırmayı kullanmanın bazı sınırlamaları aşağıdadır:

  • Gereken en düşük Kubernetes Sürümü 1.28'dir
  • Desteklenen alt ağ boyutu üst sınırı x.x.x.x/12 ~ 1 milyon IP'dir
  • Alt ağ başına yalnızca tek bir işlem modu kullanılabilir. Bir alt ağ Statik Blok ayırma modunu kullanıyorsa, dinamik IP ayırma modunu aynı alt ağa sahip farklı bir kümede veya düğüm havuzunda kullanamaz.
  • Yalnızca yeni kümelerde veya mevcut kümelere farklı bir alt ağa sahip düğüm havuzları eklenirken desteklenir. Mevcut kümelerin veya düğüm havuzlarının geçirilmesi veya güncelleştirilmesi desteklenmez.
  • Düğüm havuzundaki bir düğüme atanan tüm CIDR bloklarında, düğümün birincil IP'si olarak bir IP seçilir. Bu nedenle, değeri seçen --max-pods ağ yöneticileri, gereksinimlerinize en iyi şekilde hizmet vermek ve alt ağda IP'lerin en iyi şekilde kullanımına sahip olmak için aşağıdaki hesaplamayı kullanmayı deneyin:

max_pods = (N * 16) - 1 burada N herhangi bir pozitif tamsayı ve N> 0

Bölgesel kullanılabilirlik

Bu özellik aşağıdaki bölgelerde kullanılamaz:

  • ABD Güney
  • Doğu ABD 2
  • Batı ABD
  • Batı ABD 2

IP adresini planlama

Statik blok ayırma ile düğümler ve podlar bağımsız olarak ölçeklendirilir, böylece adres alanlarını ayrı olarak planlayabilirsiniz. Pod alt ağları düğüm havuzunun ayrıntı düzeyine göre yapılandırılabildiği için, düğüm havuzu eklerken her zaman yeni bir alt ağ ekleyebilirsiniz. Küme/düğüm havuzundaki sistem podları da pod alt ağından IP'ler alır, bu nedenle bu davranışın hesaba bağlanması gerekir.

/28 (16 IP) CIDR blokları düğüm havuzunuzun --max-pods yapılandırmasına göre düğümlere ayrılır ve bu da düğüm başına en fazla pod sayısını tanımlar. 1 IP, iç amaçlarla bu düğümdeki tüm kullanılabilir IP'lerden her düğüme ayrılmıştır.

IP'lerinizi planlarken, aşağıdaki hesaplamayı kullanarak yapılandırmanızı --max-pods tanımlamak önemlidir: max_pods_per_node = (16 * N) - 1burada N , değerinden 0büyük herhangi bir pozitif tamsayıdır.

IP wastage içermeyen ideal değerler, yukarıdaki ifadeye uyması için maksimum pod değeri gerektirir.

Aşağıdaki örnek olaylara bakın:

Örnek olay seti max_pods Düğüm başına ayrılan CIDR Blokları Podlar için kullanılabilir toplam IP Düğüm için IP wastage
Düşük wastage (kabul edilebilir) 30 2 (16 * 2) - 1 = 32 - 1 = 31 31 - 30 = 1
İdeal durum 31 2 (16 * 2) - 1 = 32 - 1 = 31 31 - 31 = 0
Yüksek wastage (önerilmez) 32 3 (16 * 3) - 1 = 48 - 1 = 47 47 - 32 = 15

Kubernetes hizmetleri için IP adresi planlaması değişmeden kalır.

Not

Sanal ağınızın kümenizin ölçeğini desteklemek için yeterince büyük ve bitişik bir adres alanına sahip olduğundan emin olun.