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/16
172.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
komutunu kullanarak
az group create
AKS kümeniz için bir Azure kaynak grubu oluşturun.az group create --location eastus --name myResourceGroup
komutunu kullanarak
az aks create
bir AKS kümesi oluşturun. parametresini--network-plugin
parametre değeriylenone
geç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:
Azure Kubernetes Service