Azure Kubernetes Service'de (AKS) Azure CNI Katmanı ağını yapılandırma

Bu makalede kurulum işlemi, çift yığınlı ağ yapılandırması ve Azure Kubernetes Service (AKS) kümelerinde Azure CNI Katmanı için örnek bir iş yükü dağıtımı açıklanmaktadır. Azure CNI Katman ağına genel bakış için bkz. Azure Kubernetes Service'te (AKS) Azure CNI Katman ağına genel bakış.

Önemli

Azure Kubernetes Service (AKS), 30 Kasım 2025'den itibaren Azure Linux 2.0 için güvenlik güncelleştirmelerini desteklemez veya sağlamaz. Azure Linux 2.0 düğüm görüntüsü 202512.06.0 sürümünde dondurulur. 31 Mart 2026'dan itibaren düğüm görüntüleri kaldırılacak ve düğüm havuzlarınızı ölçeklendiremeyeceksiniz. Düğüm havuzlarınızı desteklenen bir Kubernetes sürümüne yükselterek veya osSku AzureLinux3'e geçerek desteklenen bir Azure Linux sürümüne geçin. Daha fazla bilgi için Bkz. Kullanımdan Kaldırma GitHub sorunu ve Azure Güncelleştirmeleri kullanımdan kaldırma duyurusu. Duyurular ve güncelleştirmeler hakkında bilgi sahibi olmak için AKS sürüm notlarını izleyin.

Önkoşullar

Çift yığınlı ağ için Kubernetes sürüm 1.26.3 veya üzeri gerekir.

Azure CNI Katman AKS kümeleri için anahtar parametreler

Aşağıdaki tabloda AKS kümelerinde Azure CNI Katman ağını yapılandırmaya yönelik temel parametreler açıklanmaktadır:

Parametre Description
--network-plugin azure Azure Container Networking Interface (CNI) ağını kullanmak için olarak ayarlayın.
--network-plugin-mode overlay Azure CNI Katman ağını etkinleştirmek için olarak ayarlayın. Bu ayar yalnızca olduğunda --network-plugin=azure geçerlidir.
--pod-cidr Küme için özel bir pod Sınıfsız Alanlar Arası Yönlendirme (CIDR) bloğu belirtin. Varsayılan değer: 10.244.0.0/16.

Ağ eklentileri için varsayılan davranış, --network-plugin öğesini açıkça ayarlayıp ayarlamadığınıza bağlıdır.

  • belirtmezseniz --network-plugin, AKS varsayılan olarak Azure CNI Overlay ayarlı olur.
  • belirtir --network-plugin=azure ve atlarsanız --network-plugin-modeAKS, geriye dönük uyumluluk için kasıtlı olarak sanal ağ (düğüm alt ağı) modunu kullanır.

Azure CNI Katman AKS kümesi oluşturma

az aks create komutunu --network-plugin=azure ve --network-plugin-mode=overlay kullanarak bir Azure CNI Overlay AKS kümesi oluşturun. için --pod-cidrbir değer belirtmezseniz AKS varsayılan değerini 10.244.0.0/16atar.

az aks create \
  --name $CLUSTER_NAME \
  --resource-group $RESOURCE_GROUP \
  --location $REGION \
  --network-plugin azure \
  --network-plugin-mode overlay \
  --pod-cidr 192.168.0.0/16 \
  --generate-ssh-keys

Ayrılmış alt ağa yeni düğüm havuzu ekleme

Aynı sanal ağ içindeki farklı bir alt ağa, sanal ağa veya eşlenmiş sanal ağ kaynaklarına olan ağ trafiği için sanal makine (VM) düğümü IP adreslerini denetlemek amacıyla bir düğüm havuzu ekleyin.

komutunu kullanarak az aks nodepool add kümeye yeni bir düğüm havuzu ekleyin ve parametresiyle alt --vnet-subnet-id ağ kaynak kimliğini belirtin. Örneğin:

az aks nodepool add \
  --resource-group $RESOURCE_GROUP \
  --cluster-name $CLUSTER_NAME \
  --name $NODE_POOL_NAME \
  --node-count 1 \
  --mode system \
  --vnet-subnet-id $SUBNET_RESOURCE_ID

Azure CNI Overlay ile çift yığınlı ağ iletişimine sahip AKS kümeleri hakkında

Azure CNI Katman AKS kümelerinizi bir Azure sanal ağıyla çift yığın modunda dağıtabilirsiniz. Bu yapılandırmada düğümler, Azure sanal ağ alt ağından hem IPv4 hem de IPv6 adresi alır. Podlar, düğümlerin Azure sanal ağ alt ağından farklı bir adres alanından IPv4 ve IPv6 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, aynı ailenin düğümün birincil IP adresine NAT edilir (IPv4'ten IPv4'e ve IPv6'dan IPv6'ya).

Not

Cilium tarafından desteklenen Azure CNI'yi kullanarak çift yığınlı ağ kümeleri de dağıtabilirsiniz. Daha fazla bilgi için bkz. Cilium tarafından desteklenen Azure CNI ile çift yığınlı ağ.

Çift yığınlı ağ sınırlamaları

Aşağıdaki özellikler çift yığınlı ağ ile desteklenmez:

Çift yığınlı ağ için anahtar parametreler

Aşağıdaki tabloda, Azure CNI Katman AKS kümelerinde çift yığınlı ağ yapılandırmaya yönelik temel parametreler açıklanmaktadır:

Parametre Description
--ip-families Kümede etkinleştirmek için ip ailelerinin virgülle ayrılmış bir listesini alır. Yalnızca ipv4 ve ipv4,ipv6 desteklenir.
--pod-cidrs Pod IP'lerinin atanması amacıyla, Sınıfsız Inter-Domain Yönlendirme (CIDR) gösterimine sahip IP aralıklarının virgülle ayrılmış bir listesini alır. Bu listedeki aralıkların sayısı ve sırası, --ip-families için belirtilen değerle eşleşmelidir. Herhangi bir değer belirtmezseniz parametresi varsayılan değerini 10.244.0.0/16,fd12:3456:789a::/64kullanır.
--service-cidrs Hizmet IP'lerini atamak için CIDR gösterimi IP aralıklarının virgülle ayrılmış bir listesini alır. Bu listedeki aralıkların sayısı ve sırası, --ip-families için belirtilen değerle eşleşmelidir. Herhangi bir değer belirtmezseniz parametresi varsayılan değerini 10.0.0.0/16,fd12:3456:789a:1::/108kullanır. atanan IPv6 alt ağı --service-cidrs, /108 büyük olamaz.

Çift yığınlı ağ ile Azure CNI Katman AKS kümesi oluşturma (Linux)

  1. komutunu kullanarak az group create küme için bir Azure kaynak grubu oluşturun:

    az group create --location $REGION --name $RESOURCE_GROUP
    
  2. Çift yığınlı bir AKS kümesi oluşturmak için, az aks create parametresi --ip-families olarak ayarlanmış ipv4,ipv6 komutunu kullanın.

    az aks create \
      --location $REGION \
      --resource-group $RESOURCE_GROUP \
      --name $CLUSTER_NAME \
      --network-plugin azure \
      --network-plugin-mode overlay \
      --ip-families ipv4,ipv6 \
      --generate-ssh-keys
    

Çift yığınlı ağ ile Azure CNI Örtü AKS kümesi oluşturma (Windows)

Önemli

AKS önizleme özellikleri self servis ve kabul temelinde kullanılabilir. Önizlemeler "olduğu gibi" ve "kullanılabilir" olarak sağlanır ve hizmet düzeyi sözleşmelerinin ve sınırlı garantinin dışında tutulur. AKS önizlemeleri, müşteri desteği kapsamında imkânlar ölçüsünde kısmen desteklenir. Bu nedenle, bu özellikler üretim kullanımı için tasarlanmamıştır. Daha fazla bilgi için aşağıdaki destek makalelerine bakın:

Windows düğüm havuzları ile çift yığınlı ağ yapılandırması için Azure CNI Overlay AKS kümesi oluşturmadan önce, Azure CLI uzantısını aks-preview yüklemeniz ve AzureOverlayDualStackPreview özellik bayrağını aboneliğinize kaydetmeniz gerekir.

Azure CLI uzantısını aks-preview yükleme

  1. aks-preview komutunu kullanarak az extension add uzantısını yükleyin.

    az extension add --name aks-preview
    
  2. komutunu kullanarak uzantının en son sürümüne güncelleştirin az extension update :

    az extension update --name aks-preview
    

Özellik bayrağını AzureOverlayDualStackPreview kaydetme

  1. AzureOverlayDualStackPreview komutunu kullanarak özellik bayrağını az feature register kaydedin:

    az feature register --namespace "Microsoft.ContainerService" --name "AzureOverlayDualStackPreview"
    

    Durumun gösterilmesi birkaç dakika sürer Registered.

  2. komutunu kullanarak az feature show kayıt durumunu doğrulayın:

    az feature show --namespace "Microsoft.ContainerService" --name "AzureOverlayDualStackPreview"
    
  3. Durum Registered yansıttığında, Microsoft.ContainerService komutunu kullanarak az provider register kaynak sağlayıcısının kaydını yenileyin.

    az provider register --namespace Microsoft.ContainerService
    

Çift yığın Azure CNI Kaplama AKS kümesi oluştur ve Windows düğüm havuzu ekle

  1. az aks create komutunu kullanarak Azure CNI Overlay ile bir küme oluşturun:

    az aks create \
      --name $CLUSTER_NAME \
      --resource-group $RESOURCE_GROUP \
      --location $REGION \
      --network-plugin azure \
      --network-plugin-mode overlay \
      --ip-families ipv4,ipv6 \
      --generate-ssh-keys
    
  2. komutunu kullanarak az aks nodepool add kümeye bir Windows düğüm havuzu ekleyin:

    az aks nodepool add \
      --resource-group $RESOURCE_GROUP \
      --cluster-name $CLUSTER_NAME \
      --os-type Windows \
      --name $WINDOWS_NODE_POOL_NAME \
      --node-count 2
    

Azure CNI Katman AKS kümesine örnek bir iş yükü dağıtma

Sanal makine düğümlerinde IPv4/IPv6 adresleriyle çift yığınlı AKS CNI Katman kümeleri dağıtın. Bu örnek bir NGINX web sunucusu dağıtır ve hem IPv4 hem de IPv6 adreslerine sahip bir LoadBalancer hizmet kullanarak bunu kullanıma sunar.

Not

AKS kümelerinde giriş için uygulama yönlendirme eklentisini kullanmanızı öneririz. Ancak, tanıtım amacıyla bu örnek, uygulama yönlendirme eklentisi olmadan bir NGINX web sunucusu dağıtır. Eklenti hakkında daha fazla bilgi için bkz. Uygulama yönlendirme eklentisiyle Yönetilen NGINX girişi.

Hizmet kullanarak iş yükünü kullanıma sunma LoadBalancer

"kubectl komutlarını veya YAML bildirimlerini kullanarak NGINX dağıtımını açın."

Önemli

Şu anda AKS'deki IPv6 hizmetleriyle ilgili iki sınırlama vardır:

  • Azure Load Balancer, bağlantı yerel adresinden IPv6 hedeflerine sistem durumu yoklamaları gönderir. Azure Linux düğüm havuzlarında bu trafiği bir pod'a yönlendiremezsiniz, bu nedenle ile externalTrafficPolicy: Cluster dağıtılan IPv6 hizmetlerine akan trafik başarısız olur.
  • IPv6 hizmetlerini externalTrafficPolicy: Local ile dağıtmanız gerekir, bu da kube-proxy'nin düğümdeki yoklamaya yanıt vermesine neden olur.
  1. kubectl expose deployment nginx komutunu kullanarak NGINX dağıtımını kullanıma sunun.

    kubectl expose deployment nginx --name=nginx-ipv4 --port=80 --type=LoadBalancer
    kubectl expose deployment nginx --name=nginx-ipv6 --port=80 --type=LoadBalancer --overrides='{"spec":{"ipFamilies": ["IPv6"]}}'
    

    Çıktınız kullanıma sunulan hizmetleri göstermelidir. Örneğin:

    service/nginx-ipv4 exposed
    service/nginx-ipv6 exposed
    
  2. LoadBalancer Dağıtım dışa açıldıktan ve hizmetler tam olarak sağlandıktan sonra, kubectl get services komutunu kullanarak hizmetlerin IP adreslerini alın.

    kubectl get services
    

    Çıkışınız hizmetleri atanmış IP adresleriyle göstermelidir. Örneğin:

    NAME         TYPE           CLUSTER-IP               EXTERNAL-IP         PORT(S)        AGE
    nginx-ipv4   LoadBalancer   10.0.88.78               20.46.24.24         80:30652/TCP   97s
    nginx-ipv6   LoadBalancer   fd12:3456:789a:1::981a   2603:1030:8:5::2d   80:32002/TCP   63s
    
  3. komutunu kullanarak hizmet IP'sini kubectl get services alın ve bir ortam değişkenine ayarlayın:

    SERVICE_IP=$(kubectl get services nginx-ipv6 -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
    
  4. IPv6 özellikli bir curl konaktan istek kullanarak işlevselliği doğrulayın. (Azure Cloud Shell IPv6 özellikli değildir.)

    curl -s "http://[${SERVICE_IP}]" | head -n5
    

    Çıkışınızda NGINX karşılama sayfasının HTML'i gösterilmelidir. Örneğin:

    <!DOCTYPE html>
    <html>
    <head>
    <title>Welcome to nginx!</title>
    <style>
    

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