Azure Kubernetes Service'te (AKS) Azure CNI ağına genel bakış

Varsayılan olarak AKS kümeleri kubenet kullanır ve bir sanal ağ ve alt ağ oluşturur. kubenet ile düğümler bir sanal ağ alt ağından BIR IP adresi alır. Ardından düğümlerde ağ adresi çevirisi (NAT) yapılandırılır ve podlar düğüm IP'sinin arkasında "gizli" bir IP adresi alır. Bu yaklaşım, podların kullanması için ağ alanınızda ayırmanız gereken IP adresi sayısını azaltır.

Azure Container Networking Interface (CNI) ile her pod alt ağdan bir IP adresi alır ve doğrudan erişilebilir. AKS kümesiyle aynı sanal ağdaki sistemler, poddan gelen trafiğin kaynak adresi olarak pod IP’sini görür. AKS kümesi sanal ağı dışındaki sistemler, poddan gelen trafiğin kaynak adresi olarak düğüm IP'sini görür. Bu IP adreslerinin ağ alanınızda benzersiz olması ve önceden planlanması gerekir. 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ı daha sonra bu düğüm için önceden ayrılır. Bu yaklaşım daha fazla planlama gerektirir ve genellikle IP adresi tükenmesine veya uygulamanızın talebi arttıkça daha büyük bir alt ağda kümeleri yeniden oluşturma gereksinimine yol açar.

Not

Bu makalede yalnızca geleneksel Azure CNI tanıtılır. Azure CNI Katman için, dinamik IP ayırma için Azure CNI sanal ağı ve Azure CNI Sanal Ağı - Statik Blok Ayırma (Önizleme). Bunun yerine lütfen belgelerine bakın.

Önkoşullar

  • AKS kümesinin sanal ağı giden İnternet bağlantısına izin vermelidir.

  • AKS kümeleri Kubernetes hizmet adres aralığı, pod adres aralığı veya 192.0.2.0/24 küme sanal ağ adres aralığı için , 172.31.0.0/16172.30.0.0/16, veya kullanamaz169.254.0.0/16.

  • AKS kümesi tarafından kullanılan küme kimliği, sanal ağınızdaki alt ağda en az Ağ Katkıda Bulunanı izinlerine sahip olmalıdır. Yerleşik Ağ Katkıda Bulunanı rolünü kullanmak yerine özel bir rol tanımlamak istiyorsanız, aşağıdaki izinler gereklidir:

    • Microsoft.Network/virtualNetworks/subnets/join/action

    • Microsoft.Network/virtualNetworks/subnets/read

    • Microsoft.Authorization/roleAssignments/write

  • AKS düğüm havuzuna atanan alt ağ, temsilci olarak atanan bir alt ağ olamaz.

  • AKS, alt ağına Ağ Güvenlik Grupları (NSG) uygulamaz ve bu alt ağ ile ilişkili NSG'lerin hiçbirini değiştirmez. Kendi alt ağınızı sağlar ve bu alt ağ ile ilişkili NSG'ler eklerseniz, NSG'lerdeki güvenlik kurallarının düğüm CIDR aralığında trafiğe izin vermesini sağlamanız gerekir. Daha fazla bilgi için bkz . Ağ güvenlik grupları.

Kümeniz için IP adresi planlama

Azure CNI ağıyla yapılandırılan kümeler ek planlama gerektirir. Sanal ağınızın ve alt ağınızın boyutu, çalıştırmayı planladığınız pod sayısına ve kümenin düğüm sayısına uygun olmalıdır.

Podlar ve küme düğümleri için IP adresleri, sanal ağ içinde belirtilen alt ağdan atanır. Her düğüm bir birincil IP adresiyle yapılandırılır. Azure CNI varsayılan olarak 30 ek IP adresi önceden yapılandırıyor. Bu IP adresleri düğümde zamanlanan podlara atanır. Kümenizin ölçeğini genişlettiğinizde, her düğüm benzer şekilde alt ağdaki IP adresleriyle yapılandırılır. Düğüm başına en fazla pod sayısını da görüntüleyebilirsiniz.

Önemli

Gereken IP adresi sayısı, yükseltme ve ölçeklendirme işlemleri için dikkat edilmesi gereken noktaları içermelidir. IP adresi aralığını yalnızca sabit sayıda düğümü destekleyecek şekilde ayarlarsanız, kümenizi yükseltemez veya ölçeklendiremezsiniz.

  • AKS kümenizi yükselttiğinizde kümeye yeni bir düğüm dağıtılır. Hizmetler ve iş yükleri yeni düğümde çalışmaya başlar ve kümeden eski bir düğüm kaldırılır. Bu sıralı yükseltme işlemi için en az bir ek IP adresi bloğunun kullanılabilir olması gerekir. Düğüm sayınız o zaman n + 1olur.

    • Bu özellikle Windows Server düğüm havuzlarını kullanırken önemlidir. AKS'deki Windows Server düğümleri windows Güncelleştirmeler otomatik olarak uygulamaz. Bunun yerine düğüm havuzunda bir yükseltme gerçekleştirirsiniz. Bu yükseltme, en son Window Server 2019 temel düğüm görüntüsü ve güvenlik düzeltme ekleriyle yeni düğümler dağıtır. Windows Server düğüm havuzunu yükseltme hakkında daha fazla bilgi için bkz . AKS'de düğüm havuzunu yükseltme.
  • Aks kümesini ölçeklendirdiğinizde, kümeye yeni bir düğüm dağıtılır. Hizmetler ve iş yükleri yeni düğümde çalışmaya başlar. IP adresi aralığınızın, kümenizin destekleyebilecek düğüm ve pod sayısını nasıl genişletmek isteyebileceğinizi göz önünde bulundurması gerekir. Yükseltme işlemleri için ek bir düğüm de eklenmelidir. Düğüm sayınız o zaman n + number-of-additional-scaled-nodes-you-anticipate + 1olur.

Düğümlerinizin en fazla sayıda pod çalıştırmasını ve podları düzenli olarak yok edip dağıtmasını bekliyorsanız düğüm başına bazı ek IP adreslerini de dikkate almalısınız. Bir hizmeti silmek ve yeni bir hizmetin dağıtılması ve adresi alması için IP adresini serbest bırakmak için birkaç saniye gerekebilir. Bu ek IP adresleri bu olasılığı dikkate alır.

AKS kümesinin IP adresi planı bir sanal ağ, düğümler ve podlar için en az bir alt ağ ve bir Kubernetes hizmet adres aralığından oluşur.

Adres aralığı / Azure kaynağı Sınırlar ve boyutlandırma
Sanal ağ Azure sanal ağı /8 kadar büyük olabilir, ancak 65.536 yapılandırılmış IP adresiyle sınırlıdır. Adres alanınızı yapılandırmadan önce diğer sanal ağlardaki hizmetlerle iletişim de dahil olmak üzere tüm ağ gereksinimlerinizi göz önünde bulundurun. Örneğin, çok büyük bir adres alanı yapılandırıyorsanız, ağınızdaki diğer adres alanlarıyla çakışan sorunlarla karşılaşabilirsiniz.
Alt ağ Kümenizde sağlanmış olabilecek düğümleri, podları ve tüm Kubernetes ve Azure kaynaklarını barındıracak kadar büyük olmalıdır. Örneğin bir iç Azure Load Balancer dağıtırsanız ön uç IP'leri genel IP'lerden değil küme alt ağından ayrılır. Alt ağ boyutunda yükseltme işlemleri ve gelecekte ortaya çıkacak ölçeklendirme gereksinimleri de dikkate alınmalıdır.

Yükseltme işlemleri için ek düğüm de dahil olmak üzere en düşük alt ağ boyutunu hesaplamak için aşağıdaki denklemi kullanın:

(number of nodes + 1) + ((number of nodes + 1) * maximum pods per node that you configure) 50 düğüm kümesi örneği: (51) + (51 * 30 (default)) = 1,581 (/21 veya daha büyük)

Fazladan 10 düğümün ölçeğini artırma hazırlığı da içeren 50 düğüm kümesi örneği: (61) + (61 * 30 (default)) = 1,891 (/21 veya daha büyük)

Kümenizi oluştururken düğüm başına en fazla pod sayısı belirtmezseniz düğüm başına en fazla pod sayısı 30 olarak ayarlanır. Gereken minimum IP adresi sayısı bu değere bağlıdır. Minimum IP adresi gereksinimlerinizi farklı bir maksimum değerde hesaplarsanız, kümenizi dağıtırken bu değeri ayarlamak için bkz . Düğüm başına en fazla pod sayısı.

Kubernetes hizmeti adres aralığı Bu sanal ağ üzerindeki veya bu ağa bağlı herhangi bir ağ öğesi bu aralığı kullanmamalıdır. Hizmet adresi CIDR değeri /12'den küçük olmalıdır. Bu aralığı farklı AKS kümelerinde yeniden kullanabilirsiniz.
Kubernetes DNS hizmeti IP adresi Küme hizmeti bulma tarafından kullanılan Kubernetes hizmet adresi aralığındaki IP adresi. Adres aralığınızdaki ilk IP adresini kullanmayın. Alt ağ aralığınızdaki ilk adres kubernetes.default.svc.cluster.local adresi için kullanılır.

Düğüm başına en fazla pod sayısı

AKS kümesindeki düğüm başına en fazla pod sayısı 250'dir. Düğüm başına varsayılan en fazla pod sayısı kubenet ile Azure CNI ağı ile küme dağıtım yöntemi arasında farklılık gösterir.

Dağıtım yöntemi Kubenet varsayılanı Azure CNI varsayılanı Dağıtımda yapılandırılabilir
Azure CLI 110 30 Evet (en fazla 250)
Resource Manager şablonu 110 30 Evet (en fazla 250)
Portal 110 110 (Düğüm Havuzları sekmesinde yapılandırılabilir) Evet (en fazla 250)

Yeni kümeler için düğüm başına en fazla pod yapılandırma

Küme dağıtım zamanında veya yeni düğüm havuzları eklerken düğüm başına en fazla pod sayısını yapılandırabilirsiniz. Düğüm başına maksimum pod değerini 250'ye kadar ayarlayabilirsiniz.

Yeni düğüm havuzları oluştururken maxPods belirtmezseniz Azure CNI için varsayılan 30 değerini alırsınız.

Küme durumu açısından kritik olan sistem podları için alan garanti etmek için düğüm başına en fazla pod için en düşük değer uygulanır. Düğüm başına en fazla pod için ayarlanabilen en düşük değer, yalnızca her düğüm havuzunun yapılandırmasında en az 30 pod için alan varsa 10'dur. Örneğin, düğüm başına en fazla pod sayısını en az 10 olarak ayarlamak, her düğüm havuzunun en az üç düğüme sahip olmasını gerektirir. Bu gereksinim, oluşturulan her yeni düğüm havuzu için de geçerlidir, dolayısıyla düğüm başına en fazla pod olarak 10 tanımlanıyorsa, eklenen her sonraki düğüm havuzunda en az üç düğüm olmalıdır.

Minimum Maksimum
Azure CNI 10 250
Kubenet 10 250

Not

Önceki tablodaki en düşük değer, AKS hizmeti tarafından kesinlikle zorunlu kılınır. MaxPods için gösterilen en düşük değerden daha düşük bir değer ayarlayamasanız da kümenin başlatılmasını engelleyebilirsiniz.

  • Azure CLI: az aks create komutuyla bir küme dağıtırken bağımsız değişkenini belirtin--max-pods. En yüksek değer 250'dir.
  • Resource Manager şablonu: Resource Manager şablonuyla bir küme dağıtırken ManagedClusterAgentPoolProfile nesnesindeki özelliği belirtinmaxPods. En yüksek değer 250'dir.
  • Azure portalı: Küme oluştururken veya yeni düğüm havuzu eklerken düğüm havuzu ayarlarındaki alanı değiştirin Max pods per node .

Mevcut kümeler için düğüm başına en fazla pod yapılandırma

Yeni bir düğüm havuzu oluşturduğunuzda düğüm başına maxPods ayarı tanımlanabilir. Mevcut bir kümede maxPods ayarını artırmanız gerekiyorsa, istenen yeni maxPods sayısına sahip yeni bir düğüm havuzu ekleyin. Podlarınızı yeni havuza geçirdikten sonra eski havuzu silin. Kümedeki eski havuzları silmek için, sistem düğümü havuzları belgesinde tanımlandığı gibi düğüm havuzu modları ayarladığınızdan emin olun.

Dağıtım parametreleri

AKS kümesi oluşturduğunuzda Azure CNI ağı için aşağıdaki parametreler yapılandırılabilir:

Sanal ağ: Kubernetes kümesini dağıtmak istediğiniz sanal ağ. Kümeniz için yeni bir sanal ağ oluşturmak istiyorsanız Yeni oluştur'u seçin ve Sanal ağ oluşturma bölümündeki adımları izleyin. Mevcut bir sanal ağı seçmek istiyorsanız, bunun Kubernetes kümenizle aynı konumda ve Azure aboneliğinde olduğundan emin olun. Azure sanal ağının sınırları ve kotaları hakkında bilgi için bkz . Azure aboneliği ve hizmet sınırları, kotalar ve kısıtlamalar.

Alt ağ: Kümeyi dağıtmak istediğiniz sanal ağ içindeki alt ağ. Kümeniz için sanal ağda yeni bir alt ağ oluşturmak istiyorsanız Yeni oluştur'u seçin ve Alt ağ oluşturma bölümündeki adımları izleyin. Karma bağlantı için, adres aralığı ortamınızdaki diğer sanal ağlarla çakışmamalıdır.

Azure Ağ Eklentisi: Azure ağ eklentisi kullanıldığında, "externalTrafficPolicy=Local" ile iç LoadBalancer hizmetine AKS kümesine ait olmayan clusterCIDR'de IP'ye sahip VM'lerden erişilemiyor.

Kubernetes hizmet adres aralığı: Bu parametre, Kubernetes'in kümenizdeki iç hizmetlere atadığını sanal IP kümesidir. Kümenizi oluşturduktan sonra bu aralık güncelleştirilemez. Aşağıdaki gereksinimleri karşılayan herhangi bir özel adres aralığını kullanabilirsiniz:

  • Kümenizin sanal ağ IP adresi aralığında olmamalıdır
  • Küme sanal ağ eşlerinin bulunduğu diğer sanal ağlarla çakışmamalıdır
  • Şirket içi IP'lerle çakışmamalıdır
  • , , 172.30.0.0/16172.31.0.0/16veya aralıkları 169.254.0.0/16içinde olmamalıdır192.0.2.0/24

Kümenizle aynı sanal ağ içinde bir hizmet adresi aralığı belirtmek teknik olarak mümkün olsa da bunu yapmanız önerilmez. Çakışan IP aralıkları kullanıldığında öngörülemeyen davranış oluşabilir. Daha fazla bilgi için bu makalenin SSS bölümüne bakın. Kubernetes hizmetleri hakkında daha fazla bilgi için Kubernetes belgelerindeki Hizmetler'e bakın.

Kubernetes DNS hizmeti IP adresi: Kümenin DNS hizmetinin IP adresi. Bu adresin Kubernetes hizmeti adres aralığı içinde olması gerekir. Adres aralığınızdaki ilk IP adresini kullanmayın. Alt ağ aralığınızdaki ilk adres kubernetes.default.svc.cluster.local adresi için kullanılır.

Sık sorulan sorular

  • Küme alt ağımda VM'leri dağıtabilir miyim?

    Evet. Ancak dinamik IP ayırma için Azure CNI için VM'ler pod'un alt aya dağıtılamaz.

  • Dış sistemler Azure CNI özellikli bir poddan kaynaklanan trafik için hangi kaynak IP'sini görür?

    AKS kümesiyle aynı sanal ağdaki sistemler, poddan gelen trafiğin kaynak adresi olarak pod IP’sini görür. AKS kümesi sanal ağı dışındaki sistemler, poddan gelen trafiğin kaynak adresi olarak düğüm IP'sini görür.

    Ancak dinamik IP ayırma için Azure CNI için, bağlantı aynı sanal ağ içinde veya çapraz sanal ağlar içinde olsa da pod IP'si her zaman poddan gelen trafiğin kaynak adresidir. Bunun nedeni, dinamik IP ayırma için Azure CNI'nin uçtan uca deneyim sağlayan Microsoft Azure Container Networking altyapısını uygulamasıdır. Bu nedenle, geleneksel Azure CNI tarafından hala kullanılan kullanımını ip-masq-agentortadan kaldırır.

  • Pod başına ağ ilkelerini yapılandırabilir miyim?

    Evet, Kubernetes ağ ilkesi AKS'de kullanılabilir. Başlamak için bkz . AKS'de ağ ilkelerini kullanarak podlar arasındaki trafiğin güvenliğini sağlama.

  • Bir düğüme dağıtılabilen pod sayısı üst sınırı yapılandırılabilir mi?

    Evet, Azure CLI veya Resource Manager şablonuyla bir küme dağıttığınızda. Bkz. Düğüm başına en fazla pod sayısı.

    Mevcut bir kümede düğüm başına en fazla pod sayısını değiştiremezsiniz.

  • AKS kümesi oluşturma sırasında oluşturduğum alt ağ için ek özellikler Nasıl yaparım? yapılandırıldı? Örneğin, hizmet uç noktaları.

    AKS kümesi oluşturma sırasında oluşturduğunuz sanal ağın ve alt ağların özelliklerinin tam listesi, Azure portalının standart sanal ağ yapılandırma sayfasında yapılandırılabilir.

  • Kubernetes hizmet adres aralığı için küme sanal ağımda farklı bir alt ağ kullanabilir miyim?

    Önerilmez, ancak bu yapılandırma mümkündür. Hizmet adres aralığı, Kubernetes'in kümenizdeki iç hizmetlere atayabilecekleri sanal IP'ler (VIP' ler) kümesidir. Azure Ağı, Kubernetes kümesinin hizmet IP aralığına yönelik görünürlüğe sahip değildir. Kümenin hizmet adres aralığında görünürlük olmaması sorunlara yol açabilir. Daha sonra küme sanal ağında hizmet adres aralığıyla çakışan yeni bir alt ağ oluşturmak mümkündür. Böyle bir çakışma oluşursa Kubernetes, bir hizmete alt ağdaki başka bir kaynak tarafından zaten kullanılmakta olan bir IP atayabilir ve öngörülemeyen davranışlara veya hatalara neden olabilir. Kümenin sanal ağı dışında bir adres aralığı kullandığınızdan emin olarak, bu çakışma riskini önleyebilirsiniz.

Sonraki adım

AKS'de ağ iletişimi hakkında daha fazla bilgi edinmek için aşağıdaki makalelere bakın: