Azure Kubernetes Service (AKS) ile kendi Kapsayıcı Ağ Arabirimi (CNI) eklentinizi getirin

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ç CNI eklentisi sağlar. Desteklenen eklentiler hakkında bilgi için bkz . AKS 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 kullanılan CNI eklentisini kullanmak veya diğer CNI eklentilerinde kullanılabilen 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 üçüncü taraf CNI eklentisini yükleyebilirsiniz.

Destek

Microsoft desteği, Kendi Kapsayıcı Ağı Arabirimini Getir (BYOCNI) ile dağıtılan kümelerde CNI ile ilgili sorunlarda yardımcı olamaz. Örneğin, CNI ile ilgili sorunlar ve benzer komutlarla kubectl proxy birlikte doğu/batı (poddan poda) trafiğinin çoğunu kapsar. CNI ile ilgili destek istiyorsanız desteklenen bir AKS ağ eklentisi kullanın veya BYOCNI eklentisi üçüncü taraf satıcısından destek isteyin.

CNI ile ilgili olmayan sorunlar için destek sunulmaya devam edilmektedir.

Önkoşullar

  • Azure Resource Manager (ARM) 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 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ğınızdaki 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
  • AKS düğüm havuzuna atanan alt ağ, temsilci olarak atanan 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. Kendi alt ağınızı sağlar ve bu alt ağ ile ilişkili NSG'ler eklerseniz, NSG'lerdeki güvenlik kurallarının düğüm CIDR aralığında trafiğe izin vermesini sağlamanız gerekir. Daha fazla bilgi için bkz . Ağ güvenlik grupları.

Ö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. parametresini --network-plugin parametre değeriyle nonegeçirin.

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

CNI eklentisi dağıtma

AKS sağlama tamamlandıktan sonra küme çevrimiçi olur, ancak aşağıdaki örnekte gösterildiği gibi tüm düğümler bir NotReady durumda olur:

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

Sonraki adımlar

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