Aracılığıyla paylaş


Azure Kubernetes Service (AKS) ile kendi CNI eklentinizi getirme

Kubernetes varsayılan olarak bir ağ arabirimi sistemi sağlamaz. Bunun yerine , ağ eklentileri bu işlevi sağlar. Azure Kubernetes Service (AKS), desteklenen birkaç Kapsayıcı Ağ Arabirimi (CNI) eklentisi sağlar. Desteklenen eklentiler hakkında bilgi için bkz. Azure Kubernetes Service'te uygulamalar için ağ kavramları.

Desteklenen eklentiler Kubernetes'teki ağ gereksinimlerinin çoğunu karşılar. Ancak, gelişmiş AKS kullanıcıları şirket içi Kubernetes ortamlarında kullandıkları CNI eklentisini isteyebilir. Veya bu kullanıcılar diğer CNI eklentilerinde bulunan gelişmiş işlevleri kullanmak isteyebilir.

Bu makalede, önceden yüklenmiş CNI eklentisi olmayan bir AKS kümesinin nasıl dağıtılacağı gösterilmektedir. Buradan, Azure'da çalışan herhangi bir CNI eklentisini yükleyebilirsiniz.

Support

Microsoft desteği, kendi CNI eklentinizi getirerek dağıttığınız kümelerde CNI ile ilgili sorunlara yardımcı olamaz. Örneğin, CNI ile ilgili sorunlar, kubectl proxy ve benzer komutlarla birlikte doğu/batı (poddan poda) trafiğinin çoğunu kapsar. CNI ile ilgili destek istiyorsanız desteklenen bir AKS ağ eklentisini kullanın veya CNI eklenti satıcısının desteğine başvurun.

Microsoft, CNI ile ilgili olmayan sorunlar için destek sağlamaya devam eder.

Prerequisites

  • Azure Resource Manager veya Bicep için en az şablon sürümü 2022-01-02-preview veya 2022-06-01 kullanın.
  • Azure CLI için en az 2.39.0 sürümünü kullanın.
  • AKS kümesinin sanal ağı giden İnternet bağlantısına izin vermelidir.
  • AKS kümeleri, Kubernetes hizmeti, podlar veya küme sanal ağı için adres aralığı olarak 169.254.0.0/16, 172.30.0.0/16, 172.31.0.0/16 veya 192.0.2.0/24 kullanamaz.
  • AKS kümesinin kullandığı 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ı Sağlayan 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
  • AKS düğüm havuzuna atanan alt ağ, "delege edilmiş bir alt ağ" olamaz.
  • AKS, alt ağına ağ güvenlik grupları (NSG) uygulamaz veya bu alt ağ ile ilişkili NSG'lerden herhangi birini değiştirmez. Eğer kendi alt ağınızı sağlarsanız ve bu alt ağ ile ilişkili NSG'ler eklerseniz, NSG'lerdeki güvenlik kurallarının, düğümün CIDR (Sınıfsız Inter-Domain Yönlendirme) aralığı içinde trafiğe izin vermesine sağlamanız gerekir. Daha fazla bilgi için bkz . Ağ güvenlik grupları.
  • AKS, yönetilen sanal ağda bir yönlendirme tablosu oluşturmaz.

Önceden yüklenmiş CNI eklentisi olmayan bir AKS kümesi oluşturma

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

    az group create --location eastus --name myResourceGroup
    
  2. komutunu kullanarak az aks create bir AKS kümesi oluşturun. --network-plugin parametresini none parametre değeriyle geçirin.

    az aks create \
        --location eastus \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --network-plugin none \
        --generate-ssh-keys
    

CNI eklentisini dağıtın

AKS sağlama tamamlandıktan sonra küme çevrimiçi durumdadır. Ancak aşağıdaki örnekte gösterildiği gibi tüm düğümler bir NotReady durumdadır:

  $ kubectl get nodes
  NAME                                STATUS     ROLES   AGE    VERSION
  aks-nodepool1-23902496-vmss000000   NotReady   agent   6m9s   v1.21.9

  $ kubectl get node -o custom-columns='NAME:.metadata.name,STATUS:.status.conditions[?(@.type=="Ready")].message'
  NAME                                STATUS
  aks-nodepool1-23902496-vmss000000   container runtime network not ready: NetworkReady=false reason:NetworkPluginNotReady message:Network plugin returns error: cni plugin not initialized

Bu noktada, küme bir CNI eklentisinin yüklenmesi için hazırdır.