AKS (Azure Kubernetes Service) kurulumunda Networking yapılandırması için Kubenet ve Azure CNI olarak 2 seçeneğimiz bulunuyor. Bu yazımızda, bu konfigürasyon detaylarını ve Kubernetes Network yapılandırmasını tüm yönleri ile inceleyeceğiz.
Kubernetes Network
Kubernetes Network temel olarak, service ve podların iletişimini sağlayan ağ katmanıdır. Kubernetes network yapılandırmasında default olarak “kubenet” ile gelirken, CNI (Container Network Interface) sayesinde ihtiyaca yönelik, öne çıkan flannel, calico gibi 3. parti eklentileri de destekler. Bu eklentiler özelliklerine göre farklı bir yazının konusu olabilir ancak bugün AKS üzerinde seçenek olarak sunulan Kubenet ve Azure CNI seçiminden bahsedeceğiz.
AKS kurulumunda kubenet eklentisi, cluster için varsayılan değerleri kullanan yeni bir Virtual Network oluşturur. Varsayılan değerler ile, 10.224.0.0/12 IP Network (10.224.0.0 – 10.239.255.255) kullanılabilir durumda Virtual Network oluşturur.
Azure CNI seçiminde, mevcut ya da yeni oluşturulan VNET üzerinde IP gruplarının seçimi mümkün hale geliyor.
Azure CNI mı, kubenet mi?
- Windows Node Pool varsa Azure CNI tercih etmelisiniz. kubenet seçimi yapılmaya çalışıldığında “Network configuration should be ‘Azure CNI’ when windows node pools are added” uyarısı otomatik olarak çıkacaktır.
- Ekstra network policy ihtiyaçları yoksa, dev-test aşamasında ya da sadece deneme amaçlı kurulan AKS yapıları için, bu aşamada kafa karışıklığı yaratmaması adına kubenet seçimi mantıklı olacaktır. Aksi durumda, Network Policy, IP Network gibi kavramları öğrenmek/hakim olmak gerekebilir.
- Kubenet tercihinde, Network Policy olarak Azure kullanılamaz. (Uyarı: The Azure network policy is not compatible with kubenet networking.)
- Ortamda VNET’ler arasında Peering gibi kullanımlar olacaksa Azure CNI seçilmesi gerekiyor, aksi durumda kubelet ile default olarak gelen VNET IP adresi kullanımları overlapped uyarısı verecektir. (Address space ‘10.224.0.0/12’ overlaps with address space ‘10.224.0.0/12’ of virtual network ‘aks-vnet-XXXXX’. Virtual networks with overlapping address space cannot be peered. If you intend to peer these virtual networks, change address space ‘10.224.0.0/12’.)
- İsimlendirmeye önem veriyorsanız Azure CNI tercih etmelisiniz. Kubenet VNET’i default olarak aks-vnet-XXX şeklinde isimlendirir.
- kubenet çok fazla olsa da sınırlı IP adresi grubu ile hareket eder. Yapınıza bağlı olarak, daha fazla ihtiyacınız olacağını öngörüyorsanız Azure CNI tercih etmelisiniz.
- Pod iletişimlerinizin geneli Kubernetes içerisindeyse kubenet, ancak dış yönlü erişim çok fazla ise Azure CNI tercih etmeniz önerilir (Kaynak).