Serimizin önce ki yazılarında AKS üzerinde Kubernetes kurulum ve kurulum sonrasında Azure Command Line ve kubectl kullanarak bağlantı işlemlerini incelemiştik. Bu yazımızda, AKS arayüzünden HTTP Routing eklentisini etkinleştirerek, erişim için bir dış IP adresi ile bağlantı sağlayacağı örnek bir backend servisi kuracağız. Böylece, Kubernetes Load Balancer konusuna da giriş yapacağız.
Not: Makale serimizde, açıklayıcı olması açısından ön tanımlı (default) seçenekler ile sürdürüyoruz. Service, Deployment, Load Balancer gibi kavramları detaylı olarak farklı makalelerde inceleyeceğiz. Hatırlatma olarak, makalemizde ilerlediğimiz cluster adı msbil-cluster, Resource Group adımız ise “msbil”
Kubernetes Load Balancer nedir?
Kubernetes Cluster’a deploy ettiğimiz projelerimiz aksini belirtmediğimiz sürece, iç (internal) ip adreslerinde çalışacaktır. Dışarıdan erişim için bir dış (external) ip adresine ihtiyacımız var. Bu nedenle, Load Balancer kullanarak, dışarıdan gelen istekleri, içeride ki servislere ulaştıracağız.
Arayüz ile yeni bir Load Balancer
Daha önce kurulumlarını yaptığımız Azure Command Line ile Cluster’ımız için HTTP Routing Addon’unu aktif hale getirebiliriz.
az aks enable-addons –resource-group msbil –name msbil-cluster –addons http_application_routing
Alternatif olarak, Azure Portal arayüzünde AKS Cluster > Networking altında böyle bir seçeneğimiz var.
“HTTP application routing is only recommended for dev/test clusters”
Bilgi olarak görüntülenen satır, production ortamında ki yapılar için aynı arayüzün en altında bulunan Application Gateway seçeneğine işaret ediyor. Dilerseniz Kubernetes yapısının tamamını dış dünyaya kapatarak, Load Balancing işlemleri için Application Gateway kullanabilirsiniz. Odak noktamızı değiştirmemek için seçeneği aktif ederek devam ediyoruz.
Bu aktivasyonun ardından, ön tanımlı isimleriyle http routing ingress (nginx) ve dışarıdan gelen bağlantıların yönlendirileceği default-backend servisleri kuruluyor olacak. Aynı zamanda, Services and Ingress ekranında Load Balancer servisi yanında bir dış IP adresi görüntülüyor olacaksınız. Kurulum sonrasında IP adresini tarayıcıdan çağırdığınızda sizi “default backend – 404” hatası/bilgisi karşılayacaktır. Ayrıca, Kubernetes ve Azure DNS bağlantısı ile, isteklerin yönlendirilebilmesi için benzersiz bir isim ile DNS Zone açılacak. Azure Portal > DNS Zones altında oluşturulan DNS servisini de görüntüleyebilirsiniz. Benim için şu anda görüntü aşağıda ki gibi,
Kubernetes Cluster’ı Azure Kubernetes Service ile kurmanın en büyük avantajlarından bir tanesinin, yapılan bir çok kurulumun diğer Azure servisleri ile bağlantılı olması ve arayüz üzerinden görüntülenebilir olacağı bilgisini ekleyelim. Örneğin, HTTP Routing seçeneğini aktif ettiğimizde kurulan load balancer aynı zamanda Azure > Load Balancing altında görüntülenebiliyor olacaktır.
Serimizin devamında Load Balancer arkasında örnek bir servis yayınlayarak (deploy) dışarıdan erişeceğiz.