Aracılığıyla paylaş


Azure Kubernetes Service'te (AKS) düğüm otomatik sağlama (NAP) için ağ yapılandırmalarına genel bakış

Bu makalede, düğüm otomatik sağlama (NAP) kullanan Azure Kubernetes Service (AKS) kümeleri için ağ yapılandırma gereksinimlerine ve önerilerine genel bir bakış sağlanır. Desteklenen yapılandırmalar, varsayılan alt ağ davranışı, rol tabanlı erişim denetimi (RBAC) kurulumu ve sınıfsız etki alanları arası yönlendirme (CIDR) konuları ele alınmaktadır.

AKS'de düğüm otomatik sağlamaya genel bakış için bkz. Azure Kubernetes Service'te (AKS) düğüm otomatik sağlamaya (NAP) genel bakış.

NAP için desteklenen ağ yapılandırmaları

NAP aşağıdaki ağ yapılandırmalarını destekler:

Azure CNI'nin Cilium ile kullanılmasını öneririz. Cilium gelişmiş ağ özellikleri sağlar ve NAP ile performans için iyileştirilmiştir.

NAP için desteklenmeyen ağ yapılandırmaları

NAP aşağıdaki ağ yapılandırmalarını desteklemez:

  • Calico ağ ilkesi
  • Dinamik IP ayırma

NAP için alt ağ yapılandırmaları

NAP, AKS kümelerinizde Karpenter'ı otomatik olarak dağıtır, yapılandırıp yönetir ve açık kaynak Karpenter ve AKS Karpenter sağlayıcı projelerini temel alır. Özel alt ağ yapılandırmalarını NAP düğümleri için düğüm havuzlarınızda belirtmek amacıyla, isteğe bağlı AKSNodeClass alanını ayarlayarak vnetSubnetID kaynaklarını kullanabilirsiniz ve Karpenter, belirttiğiniz alt ağı düğüm sağlama işlemi için kullanır. Alt ağ belirtmezseniz Karpenter, Karpenter yüklemesi sırasında yapılandırılan varsayılan alt ağı kullanır. Bu varsayılan alt ağ genellikle AKS kümesi oluşturulurken az aks create komutundaki --vnet-subnet-id parametresi ile belirtilen alt ağ ile aynıdır.

Bu yaklaşım, bazıları belirli iş yükleri için özel alt ağları, bazıları da kümenin varsayılan alt ağ yapılandırmasını kullanarak düğüm sınıflarının bir karışımına sahip olmanıza olanak tanır.

Alt ağ kayma davranışı

Karpenter, alt ağ yapılandırma değişikliklerini izler ve bir AKSNodeClass içindeki vnetSubnetID değiştirildiğinde sapmayı algılar. Özel ağ yapılandırmalarını yönetirken bu davranışı anlamak kritik önem taşır.

vnetSubnetID Geçerli bir alt ağdan başka bir geçerli alt ağa değişiklik yapmak desteklenen bir işlem değildir. Eğer vnetSubnetID öğesini farklı bir geçerli alt ağa işaret edecek şekilde değiştirirseniz, Karpenter bunu alt ağ kayması olarak algılar ve sorun çözülene kadar düğüm sağlamayı durdurur ve vnetSubnetID öğesini özgün alt ağa geri döndürmeniz gerekir. Bu davranış, düğümlerin yalnızca hedeflenen alt ağlarda sağlanmasını ve ağ bütünlüğünün ve güvenliğinin korunmasını sağlar. Ancak, bu kuralın özel durumları vardır. yalnızca aşağıdaki senaryolarda değiştirebilirsiniz vnetSubnetID :

  • Düğüm sağlamayı engelleyen hatalı biçimlendirilmiş alt ağ kimliğini düzeltme.
  • Geçersiz bir alt ağ referansının yapılandırma hatalarına neden olması problemi düzeltiliyor.
  • Var olmayan veya erişilemeyen bir alt ağa işaret eden bir alt ağ tanımlayıcısını güncelleştirme.

AKS kümesi Sınıfsız Inter-Domain Yönlendirme (CIDR) aralıklarını anlayın

ile vnetSubnetIDözel ağ yapılandırırken, ağ çakışmalarını önlemek için kümenizin CIDR aralıklarını anlamak ve yönetmek sizin sorumluluğunuzdadır. ARM şablonları aracılığıyla oluşturulan geleneksel AKS düğümü havuzlarından farklı olarak Karpenter, ARM'nin sağladığı genişletilmiş doğrulama olmadan düğümleri anında sağlayan özel kaynak tanımları (CRD) uygular.

Özel alt ağ yapılandırmaları için CIDR ile ilgili dikkat edilmesi gerekenler

yapılandırırken vnetSubnetID şunları yapmanız gerekir:

  • CIDR uyumluluğunu doğrulayın: Özel alt ağların mevcut CIDR aralıklarıyla çakışmadığından emin olun.
  • IP kapasitesini planlama: Beklenen ölçeklendirme için gerekli IP adreslerini hesaplayın.
  • Bağlantıyı doğrulama: Ağ yollarını ve güvenlik grubu kurallarını test edin.
  • Kullanımı izleme: Alt ağ kullanımını izleyin ve büyümeyi planlayın.
  • Belge yapılandırması: Ağ tasarımı kararlarının kayıtlarını koruyun.

Yaygın CIDR çakışmaları

NAP ile özel alt ağları kullanırken aşağıdaki yaygın CIDR çakışma senaryolarına dikkat edin:

# Example conflict scenarios:
# Cluster Pod CIDR: 10.244.0.0/16  
# Custom Subnet:   10.244.1.0/24  ❌ CONFLICT

# Service CIDR:    10.0.0.0/16
# Custom Subnet:   10.0.10.0/24   ❌ CONFLICT

# Safe configuration:
# Cluster Pod CIDR: 10.244.0.0/16
# Service CIDR:     10.0.0.0/16  
# Custom Subnet:    10.1.0.0/24   ✅ NO CONFLICT

Özel alt ağ yapılandırmaları için RBAC kurulumu

NAP ile özel alt ağ yapılandırmalarını kullanırken, Karpenter'ın alt ağ bilgilerini okumak ve düğümleri belirtilen alt ağlara birleştirmek için gerekli izinlere sahip olduğundan emin olmanız gerekir. Bunun için kümenin yönetilen kimliği için uygun RBAC izinlerinin ayarlanması gerekir.

Bu izinleri ayarlamaya yönelik iki ana yaklaşım vardır: Geniş sanal ağ (VNet) izinleri atama veya Kapsamlı alt ağ izinleri atama.

Bu yaklaşım en izin verici yaklaşımdır ve küme kimliğine ana VNet içindeki herhangi bir alt ağı okuma ve birleştirme izinleri verir ve ağ katkıda bulunan erişimi sağlar.

Önemli

Üretim kümenize bu yaklaşımı uygulamadan önce "Network Contributor" rolünü araştırın.

Avantajlar ve dikkat edilmesi gerekenler

Aşağıdaki tabloda, geniş sanal ağ izinleri atamanın avantajları ve dikkat edilmesi gerekenler özetlenmiştir:

Fayda -ları Değerlendirmeler
• İzin yönetimini basitleştirir.
• Yeni alt ağlar eklerken izinleri güncelleştirme gereksinimini ortadan kaldırır.
• Tek kiracılı ortamlar için iyi çalışır.
• Bir abonelik en fazla özel rol sayısına ulaştığında çalışır.
• Kesinlikle gerekli olandan daha geniş izinler sağlar.
• Katı güvenlik gereksinimlerini karşılamayabilir.

Gerekli izinler

Geniş sanal ağ izinleri atamak için, kümenin yönetilen kimliğine sanal ağ üzerinde aşağıdaki izinleri verin:

# Get your cluster's managed identity
CLUSTER_IDENTITY=$(az aks show --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME --query identity.principalId -o tsv)

# Get your VNet resource ID
VNET_ID="/subscriptions/$SUBSCRIPTION_ID/resourceGroups/$VNET_RESOURCE_GROUP/providers/Microsoft.Network/virtualNetworks/$VNET_NAME"

# Assign Network Contributor role for subnet read/join operations
az role assignment create \
  --assignee $CLUSTER_IDENTITY \
  --role "Network Contributor" \
  --scope $VNET_ID

Özel ağ oluşturma ve geniş sanal ağ izinleri atamanın eksiksiz bir örneği için bkz. Özel sanal ağ kurulumu - En izinli RBAC örnek betiği.

Örnek özel alt ağ yapılandırmaları

Aşağıdaki örnekte, AKSNodeClass kaynağındaki vnetSubnetID alanında NAP düğümleri için özelleştirilmiş bir alt ağın nasıl yapılandırılacağı gösterilmektedir:

apiVersion: karpenter.azure.com/v1beta1
kind: AKSNodeClass
metadata:
  name: custom-networking
spec:
  vnetSubnetID: "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/$RESOURCE_GROUP/providers/Microsoft.Network/virtualNetworks/$VNET_NAME/subnets/$SUBNET_NAME"

Aşağıdaki örnekte, farklı alt ağ yapılandırmalarına sahip birden çok düğüm sınıfının nasıl kullanılacağı gösterilmektedir:

apiVersion: karpenter.azure.com/v1beta1
kind: AKSNodeClass
metadata:
  name: frontend-nodes
spec:
  vnetSubnetID: "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/$RESOURCE_GROUP/providers/Microsoft.Network/virtualNetworks/$VNET_NAME/subnets/$FRONTEND_SUBNET_NAME"
---
apiVersion: karpenter.azure.com/v1beta1
kind: AKSNodeClass
metadata:
  name: backend-nodes
spec:
  vnetSubnetID: "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/$RESOURCE_GROUP/providers/Microsoft.Network/virtualNetworks/$VNET_NAME/subnets/$BACKEND_SUBNET_NAME"

Kendi CNI (BYO CNI) destek ilkenizi getirme

Azure için Karpenter, AKS ile aynı destek ilkesini izleyerek kendi Kapsayıcı Ağ Arabirimi (BYO CNI) yapılandırmalarınızı getirmenizi sağlar. Bu, özel bir CNI kullanırken ağ ile ilgili sorun giderme desteğinin hizmet düzeyi sözleşmelerinin veya garantilerinin kapsamı dışında olduğu anlamına gelir.

Destek kapsamı ayrıntıları

Karpenter ile BYO CNI kullanılırken nelerin desteklenip desteklenmediği aşağıda özetlenmiştir:

  • Destekleniyor: Karpenter'e özgü işlevler ve kendi CNI yapılandırmalarınızı (BYO) kullanırken karşılaşılan tümleştirme sorunları.
  • Desteklenmez: Üçüncü taraf CNI eklentilerini kullanırken CNI'ye özgü ağ sorunları, yapılandırma sorunları veya sorun giderme.

Sonraki Adımlar

AKS'de düğüm otomatik sağlama hakkında daha fazla bilgi için aşağıdaki makalelere bakın: