Azure Kubernetes Service'te (AKS) yapılandırma kube-proxy (Önizleme)

kube-proxy , Kubernetes'in küme içindeki hizmetler için yönlendirme trafiğini işleyen bir bileşenidir. Yukarı akışta kube-proxy Katman 3/4 yük dengeleme için üç arka uç vardır: iptables, IPVS ve nftables.

  • iptables , birçok Kubernetes kümesinde kullanılan varsayılan arka uçdur. Basit ve iyi destekleniyor, ancak IPVS kadar verimli veya akıllı değildir.
  • IPVS Linux çekirdeğinde yerleşik olarak bulunan katman 3/4 yük dengeleyici olan Linux Sanal Sunucusu'nu kullanır. IPVS durum tanıma, bağlantı izleme ve daha akıllı yük dengeleme gibi varsayılan iptables yapılandırmaya göre birçok avantaj sağlar. IPVS Azure Ağ İlkesi'ni desteklemez.
  • nftables, iptables API'nin ardılıdır ve iptables'den daha iyi performans ve ölçeklenebilirlik sağlamak için tasarlanmıştır. Proxy nftables modu, hem iptables hem de IPVS modlarının yerine geçen, her ikisinden daha iyi performansa sahip olan bir moddur ve IPVS kullanılması yerine önerilir.

Daha fazla bilgi için kube-proxy'de Kubernetes belgelerine bakın.

Not

kube-proxy özelliğini desteklemek için AKS tarafından yönetilen DaemonSet öğesini devre dışı bırakabilirsiniz.

Ö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 tarafından kısmen imkanlar dahilinde ele alınmaktadır. Bu nedenle, bu özellikler üretim kullanımı için tasarlanmamıştır. Daha fazla bilgi için aşağıdaki destek makalelerine bakın:

Başlamadan önce

  • Azure CLI kullanıyorsanız uzantıya aks-preview ihtiyacınız vardır. Bkz. Azure CLI uzantısını aks-previewyükleme.
  • Azure Resource Manager veya REST API kullanıyorsanız AKS API sürümü 2022-08-02-preview veya üzeri olmalıdır. Özellikle nftables modu için, sürüm 2025-09-02-preview veya daha yeni olmalıdır.
  • Özellik bayrağını KubeProxyConfigurationPreview kaydetmeniz gerekir. KubeProxyConfigurationPreview kısmına bkz.

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ı KubeProxyConfigurationPreview kaydetme

  1. KubeProxyConfigurationPreview özellik bayrağını, az feature register komutunu kullanarak kaydedin.

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

    Durumun Kayıtlı olarak gösterilmesi birkaç dakika sürer.

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

    az feature show --namespace "Microsoft.ContainerService" --name "KubeProxyConfigurationPreview"
    
  3. Durum Kaydedildi olarak gösterildiğinde, az provider register komutunu kullanarak Microsoft.ContainerService kaynak sağlayıcısının kaydını yenileyin.

    az provider register --namespace Microsoft.ContainerService
    

kube-proxy yapılandırma seçenekleri

AKS Küme Şeması'nda kube-proxytam yapılandırma yapısını görüntüleyebilirsiniz.

  • enabled: DaemonSet dağıtımını kube-proxy belirler. varsayılan değeridir true.
  • mode: IPTABLES, IPVS veya NFTABLES olarak ayarlayabilirsiniz. varsayılan değeridir IPTABLES.
  • ipvsConfig: ise modeIPVS, bu nesne IPVS'ye özgü yapılandırma özelliklerini içerir.
    • scheduler: Hangi bağlantı zamanlayıcının kullanılacağını belirler. Desteklenen değerler şunlardır:
      • LeastConnection: En az bağlantı içeren arka uç podlarına bağlantı gönderir.
      • RoundRobin: Bağlantıları arka uç podları arasında eşit olarak dağıtır.
    • tcpFinTimeoutSeconds: TCP oturumu bir FIN aldıktan sonra zaman aşımı uzunluğu değerini ayarlar.
    • tcpTimeoutSeconds: Boşta tcp oturumları için zaman aşımı uzunluğu değerini ayarlar.
    • udpTimeoutSeconds: Boşta udp oturumları için zaman aşımı uzunluğu değerini ayarlar.

IPVS yük dengeleme her düğümde bağımsız olarak çalışır ve yalnızca yerel düğüm üzerinden akan bağlantıların farkındadır. Bu, daha fazla sayıda bağlantı altında daha eşit bir yüke neden olsa LeastConnection da, düşük sayıda bağlantı gerçekleştiğinde (# connects < 2 * node count ) trafiğin dengesiz hale gelebileceği anlamına gelir.

Yeni veya mevcut bir AKS kümesinde kube-proxy kullanın.

Yapılandırma kube-proxy , küme genelinde bir ayardır. Hizmetlerinizi güncelleştirmeniz gerekmez.

Yapılandırmada kube-proxy yapılan bir değişiklik, küme hizmeti trafik akışında küçük bir kesintiye neden olabilir.

  1. İstenen kube-proxy yapılandırmayla bir yapılandırma dosyası oluşturun.

    • IPVS: Örneğin, aşağıdaki yapılandırma zamanlayıcı ile IPVS etkinleştirir LeastConnection ve TCP zaman aşımını 900 saniye olarak ayarlar.

      {
        "enabled": true,
        "mode": "IPVS",
        "ipvsConfig": {
          "scheduler": "LeastConnection",
          "tcpTimeoutSeconds": 900,
          "tcpFinTimeoutSeconds": 120,
          "udpTimeoutSeconds": 300
        }
      }
      
    • nftables: Örneğin, aşağıdaki yapılandırma modu etkinleştirir nftables .

      {
        "enabled": true,
        "mode": "NFTABLES"
      }
      
  2. Veya az aks create komutlarını kullanarak yeni bir küme oluşturun veya mevcut bir kümeyi yapılandırma dosyasıyla güncelleştirinaz aks update. --kube-proxy-config Yapılandırma dosyasını belirtmek için parametresini kullanın.

    # Create a new cluster
    az aks create \
      --resource-group <resourceGroup> \
      --name <clusterName> \
      --kube-proxy-config kube-proxy.json \
      --generate-ssh-keys
    
    # Update an existing cluster
    az aks update \
      --resource-group <resourceGroup> \
      --name <clusterName> \
      --kube-proxy-config kube-proxy.json
    

Sonraki adımlar

Bu makalede Azure Kubernetes Service'te (AKS) yapılandırma kube-proxy açıklanmıştır. AKS'de yük dengeleme hakkında daha fazla bilgi edinmek için aşağıdaki makalelere bakın: