Aracılığıyla paylaş


AKS Eski Kapsayıcı Ağ Arabirimleri (CNI)

Azure Kubernetes Service'te (AKS) Azure CNI Yer Paylaşımı ve Azure CNI Pod Alt Ağı çoğu senaryo için önerilir; Azure CNI Node Alt Ağı ve kubenet gibi eski ağ modelleri hala kullanılabilir ve desteklenir. Bu eski modeller, her biri kendi özelliklerine ve dikkat edilmesi gerekenlere sahip pod IP adresi yönetimi ve ağı için farklı yaklaşımlar sunar. Bu makalede, bu eski ağ seçeneklerine genel bir bakış sağlanmaktadır ve bunların rollerini ve AKS kümeleriniz içinde nasıl etkili bir şekilde kullanılabileceğini anlamanıza yardımcı olmak için önkoşullarını, dağıtım parametrelerini ve temel özelliklerini ayrıntılı olarak bulabilirsiniz.

Önkoşullar

Azure CNI Node Alt Ağı ve kubenet için aşağıdaki önkoşullar gereklidir:

  • 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ğ içindeki 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'leri eklerseniz, NSG'lerdeki güvenlik kurallarının düğüm CIDR aralığında trafiğe izin verin. Daha fazla bilgi için bkz . Ağ güvenlik grupları.

Not

Kubenet, Windows Server kapsayıcıları için kullanılamaz. Windows Server düğüm havuzlarını kullanmak için Azure CNI kullanmanız gerekir.

Azure CNI Düğüm Alt Ağı

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.

Azure CNI Düğüm Alt Ağı ile her pod, IP alt akında bir IP adresi alır ve diğer podlar ve hizmetlerle doğrudan iletişim kurabilir. Kümeleriniz belirttiğiniz IP adresi aralığı kadar büyük olabilir. Ancak, IP adresi aralığını önceden planlamanız gerekir ve tüm IP adresleri, desteklenebileceği en fazla pod sayısına göre AKS düğümleri tarafından kullanılır. Sanal düğümler veya Ağ İlkeleri (Azure veya Calico) gibi gelişmiş ağ özellikleri ve senaryoları Azure CNI ile desteklenir.

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ğ. Yeni bir sanal ağ oluşturabilir veya mevcut bir sanal ağı kullanabilirsiniz. Mevcut bir sanal ağı kullanmak 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üme oluşturma işlemi sırasında sanal ağa yeni alt ağlar ekleyebilirsiniz. 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 192.0.2.0/24aralıkları 169.254.0.0/16içinde olmamalıdır.

Kümenizle aynı sanal ağ içinde bir hizmet adresi aralığı belirtebilirsiniz ancak bunu önermeyiz. Çakışan IP aralıkları öngörülemeyen davranışlara neden olabilir. Daha fazla bilgi için bkz. SSS. 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.

Kubenet

AKS kümeleri kubenet kullanır ve varsayılan olarak sizin için bir Azure sanal ağı ve alt ağı oluşturur. Kubenet ile düğümler, Azure sanal ağın alt ağından IP adresi alır. Podlar, düğümlerin Azure sanal ağ alt ağından mantıksal olarak farklı olan bir adres alanından IP adresi alır. Daha sonra podların Azure sanal ağındaki kaynaklara ulaşabilmesi için ağ adresi çevirisi (NAT) yapılandırılır. Trafiğin kaynak IP adresi, düğümün birincil IP adresine NAT'dır. Bu yaklaşım, podların kullanması için ağ alanınızda ayırmanız gereken IP adreslerinin sayısını büyük ölçüde azaltır.

Küme oluşturma zamanında veya yeni düğüm havuzları oluştururken düğüme dağıtılabilen en fazla pod sayısını yapılandırabilirsiniz. Yeni düğüm havuzları oluştururken belirtmezseniz maxPods kubenet için varsayılan 110 değerini alırsınız.

Kendi alt ağınızla kubenet ağına genel bakış

Birçok ortamda, ayrılmış IP adresi aralıklarına sahip sanal ağlar ve alt ağlar tanımlamış ve bu kaynakları birden çok hizmet ve uygulamayı desteklemek için kullanırsınız. AKS kümeleri, ağ bağlantısı sağlamak için kubenet (temel ağ) veya Azure CNI (gelişmiş ağ) kullanabilir.

kubenet ile sanal ağ alt ağında yalnızca düğümler bir IP adresi alır. Podlar birbirleriyle doğrudan iletişim kuramaz. Bunun yerine, Kullanıcı Tanımlı Yönlendirme (UDR) ve IP iletme düğümler arasında podlar arasındaki bağlantıyı işler. UDR'ler ve IP iletme yapılandırması AKS hizmeti tarafından varsayılan olarak oluşturulur ve korunur, ancak isterseniz özel yol yönetimi için kendi yol tablonuzu getirebilirsiniz. Ayrıca, atanmış bir IP adresi alan ve uygulama için trafiği yük dengeleyen bir hizmetin arkasına pod dağıtabilirsiniz. Aşağıdaki diyagramda AKS düğümlerinin sanal ağ alt ağında bir IP adresini nasıl aldığı, ancak podların nasıl alamayacağı gösterilmektedir:

Her birinin yer paylaşımlı ağda çalıştığı üç podlu iki düğümü gösteren diyagram. Küme dışındaki uç noktalara giden pod trafiği NAT aracılığıyla yönlendirilir.

Azure desteği UDR'de en fazla 400 yol olduğundan 400 düğümden büyük bir AKS kümesine sahip olamazsınız. AKS sanal düğümleri ve Azure Ağ İlkeleri kubenet ile desteklenmez. Calico Ağ İlkeleri desteklenir.

Kubenet ile ilgili sınırlamalar ve dikkat edilmesi gerekenler

  • Kubenet tasarımında pod iletişimine küçük gecikme süresi ekleyen ek bir atlama gereklidir.
  • Kubenet kullanmak için yol tabloları ve kullanıcı tanımlı yollar gereklidir ve bu da işlemlerin karmaşıklığını artırır.
  • Kubenet tasarımı nedeniyle kubenet için doğrudan pod adresleme desteklenmez.
  • Azure CNI kümelerinden farklı olarak, birden çok kubenet kümesi bir alt ağı paylaşamaz.
  • 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'leri eklerseniz, NSG'lerdeki güvenlik kurallarının düğüm ile pod CIDR arasında trafiğe izin vermesini sağlamanız gerekir. Daha fazla ayrıntı için bkz . Ağ güvenlik grupları.
  • kubenet'te desteklenmeyen özellikler şunlardır:

Not

Küme içindeki konnektivity gibi bazı sistem podları yer paylaşımlı adres alanından bir IP yerine konak düğümü IP adresini kullanır. Sistem podları, sanal ağdan bir IP adresi değil yalnızca düğüm IP'sini kullanır.

IP adresi kullanılabilirliği ve tükenmesi

Azure CNI ile ilgili yaygın bir sorun, atanan IP adresi aralığının kümeyi ölçeklendirdiğinizde veya yükseltirken daha fazla düğüm ekleyemeyecek kadar küçük olmasıdır. Ağ ekibi, beklenen uygulama taleplerinizi destekleyecek kadar büyük bir IP adresi aralığı da düzenleyemeyebilir. Bir risk olarak kubenet kullanan bir AKS kümesi oluşturabilir ve mevcut bir sanal ağ alt ağına bağlanabilirsiniz. Bu yaklaşım, düğümlerin kümede çalışabilecek olası podlar için önceden çok sayıda IP adresi ayırmaya gerek kalmadan tanımlı IP adreslerini almasını sağlar.

kubenet ile çok daha küçük bir IP adresi aralığı kullanabilir ve büyük kümeleri ve uygulama taleplerini destekleyebilirsiniz. Örneğin, alt ağınızda /27 IP adresi aralığıyla, ölçeklendirmek veya yükseltmek için yeterli alanı olan 20-25 düğümlü bir küme çalıştırabilirsiniz. Bu küme boyutu en fazla 2.200-2.750 pod (düğüm başına varsayılan en fazla 110 pod) destekleyebilir. AKS'de kubenet ile yapılandırabileceğiniz düğüm başına en fazla pod sayısı 250'dir.

Aşağıdaki temel hesaplamalar, ağ modellerindeki farkı karşılaştırır:

  • kubenet: Basit bir /24 IP adresi aralığı, kümede en fazla 251 düğümü destekleyebilir. Her Azure sanal ağ alt ağı, yönetim işlemleri için ilk üç IP adresini ayırır. Bu düğüm sayısı, düğüm başına varsayılan en fazla 110 pod ile en fazla 27.610 pod destekler.
  • Azure CNI: Aynı temel /24 alt ağ aralığı kümede yalnızca en fazla 8 düğümü destekleyebilir. Bu düğüm sayısı, varsayılan olarak düğüm başına en fazla 30 pod ile en fazla 240 podu destekleyebilir.

Not

Bu maksimum değerler yükseltme veya ölçeklendirme işlemlerini dikkate almaz. Uygulamada, alt ağ IP adresi aralığının desteklediği en fazla düğüm sayısını çalıştıramazsınız. Ölçeklendirme veya yükseltme işlemleri için bazı IP adreslerini kullanılabilir bırakmanız gerekir.

Sanal ağ eşlemesi ve ExpressRoute bağlantıları

Şirket içi bağlantı sağlamak için Azure CNI ve kubenet ile Azure sanal ağ eşlemesini veya ExpressRoute bağlantılarını kullanabilirsiniz. Çakışmayı ve yanlış trafik yönlendirmesini önlemek için IP adreslerinizi dikkatlice planladığınızdan emin olun. Örneğin, birçok şirket içi ağ ExpressRoute bağlantısı üzerinden tanıtılan 10.0.0.0/8 adres aralığını kullanır. AKS kümelerinizi bu adres aralığının dışındaki Azure sanal ağ alt ağlarında (örneğin, 172.16.0.0/16) oluşturmanızı öneririz.

Daha fazla bilgi için bkz . Ağ modellerini ve bunların destek kapsamlarını karşılaştırma.

Azure CNI Pod Alt Ağı ile ilgili sık sorulan sorular

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

    Azure CNI Düğüm Alt Ağı için evet, VM'ler AKS kümesiyle aynı alt ağda dağıtılabilir.

  • 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 Azure CNI dinamik IP ayırma 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?

    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.

  • 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.

  • 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. Evet, Azure CLI veya Resource Manager şablonuyla bir küme dağıttığınızda. Bkz. Düğüm başına en fazla pod sayısı.

  • 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.