Kubernetes üzerinde deploy edilen bir pod’a dış dünyadan erişim sağlamak için Service objelerini kullanırız. Service objeleri, gelen trafiği ilgili pod’lara yönlendirmenin yanı sıra AKS cluster içerisindeki pod’ların birbirleriyle haberleşmesini sağlayan birer endpoint görevi görür. “Bir pod’a dışarıdan nasıl ulaşabilirim?” sorusunun temel cevabı servis objeleridir.
Bu makalede, Azure altyapısını kullanarak bir uygulamayı internete açmak için LoadBalancer tipinde bir servis objesinin nasıl oluşturulacağını adım adım inceleyeceğiz.
LoadBalancer Servis Manifestosu Hazırlama
Uygulamamızı internete açmak istediğimizde LoadBalancer tipi en yaygın tercihlerden biridir. Bu servis tipi kullanıldığında, bulut sağlayıcısı (Microsoft Azure) servis için otomatik olarak bir public IP adresi atar.
Aşağıdaki yapılandırmayı içeren bir aspnetapp-service.yaml dosyası oluşturun:
YAML
apiVersion: v1
kind: Service
metadata:
name: aspnetapp-service
spec:
type: LoadBalancer
selector:
app: aspnetapp
ports:
- port: 80 # Dışarıya açılan port
targetPort: 8080 # Pod içindeki container portu
protocol: TCP
Kritik Detay: Selector Kullanımı Manifesto içerisindeki selector kısmı büyük önem taşır. Buraya, ağ trafiğini yönlendirmek istediğiniz pod’un etiket ismini (label) girmeniz gerekir. Bu sayede dışarıdan gelen trafik, ilgili pod’a doğru bir şekilde yönlendirilir.
Servisin Dağıtımı (Deployment)
Hazırladığımız servis manifestosunu AKS cluster’ına uygulamak için terminal üzerinden kubectl komutunu çalıştırıyoruz:
Bash
kubectl apply -f aspnetapp-service.yaml

[RESİM 1: kubectl apply -f aspnetapp-service.yaml komut çıktısı]
Komut çalıştırıldıktan sonra service/aspnetapp-service created mesajı ile objenin başarıyla oluşturulduğu teyit edilir.
Azure Üzerinde Public IP Ataması ve Doğrulama
LoadBalancer tipinde bir servis oluşturulduğunda, Azure altyapısı bu servis için bir adet Public IP tahsis eder. Bu işlem, bulut sağlayıcısının arka planda Load Balancer kaynağını yapılandırması nedeniyle kısa bir süre alabilir.
Servis durumunu ve atanan IP adresini Azure Portal’da “Services and ingresses” sekmesinden veya CLI üzerinden kontrol edebilirsiniz.

[RESİM 2: Azure Portal – Services and Ingresses ekranı ve External IP görünümü]
Örnek yapılandırmamızda Azure tarafından servisimize 4.182.176.54 şeklinde bir dış IP (External IP) atanmıştır.
Uygulamaya İnternetten Erişim
Atanan bu IP adresini tarayıcınıza yazarak uygulamanızın internet üzerinden ulaşılabilir olup olmadığını test edebilirsiniz.

[RESİM 3: Tarayıcı üzerinden IP adresi ile erişilen uygulama ekranı]
Görüldüğü üzere, servis objesi sayesinde AKS üzerinde çalışan uygulamamız başarılı bir şekilde dış dünyaya açılmıştır. Bir sonraki aşamada uygulamamızı daha yönetilebilir hale getirmek için farklı Kubernetes objelerini inceleyeceğiz.