Kubernetes mimarisinde dağıtılabilir (deploy edilebilir) en küçük yapı taşı olan Pod, konteynerleştirilmiş uygulamalarımızın temel çalışma alanıdır. Bu makalede, Azure Kubernetes Service (AKS) ortamında adım adım nasıl Pod deploy edeceğimizi inceleyeceğiz.
Dağıtım işlemini Azure Portal üzerinden arayüz ile yapmak mümkün olsa da, bu rehberde süreçleri doğrudan yerel komut satırı (Local CLI) üzerinden, çok daha hızlı ve otomasyona uygun bir şekilde gerçekleştireceğiz.
Ön Koşullar (Prerequisites)
Bu işlemlere başlamadan önce sisteminizde aşağıdaki araçların kurulu ve yapılandırılmış olması gerekmektedir:
- Azure CLI (
az) - Kubernetes Komut Satırı Aracı (
kubectl)
Adım 1: AKS Cluster’ına Erişim ve Kimlik Doğrulama
Öncelikle AKS cluster’ımıza erişebilmek için kimlik doğrulaması yapmalı ve kubeconfig dosyasını yerel makinemize çekmeliyiz.
Terminalinizi açın ve Azure hesabınıza giriş yapın:
Bash
az login
Doğru abonelikte (subscription) işlem yaptığınızdan emin olmak için, AKS cluster’ınızın bulunduğu aboneliği seçin:
Bash
az account set --subscription <subscription-id>
Şimdi AKS cluster’ının erişim bilgilerini (kubeconfig) yerel ortamımıza alıyoruz:
Bash
az aks get-credentials --resource-group <resource-group-ismi> --name <aks-cluster-ismi> --overwrite-existing
Not: --overwrite-existing parametresi, mevcut yapılandırmanızın üzerine yazarak çakışmaları önler.
Adım 2: Doğru Cluster’a (Context) Geçiş Yapma
Eğer daha önce yerel makinenizden farklı Kubernetes cluster’larına bağlandıysanız, komutlarınızın yanlış cluster’da çalışmasını önlemek için aktif “context” bilgisini kontrol etmelisiniz.
Bağlanabileceğiniz tüm cluster’ları ve şu an aktif olan context’i görmek için aşağıdaki komutu çalıştırın:
Bash
kubectl config get-contexts

[RESİM 1: kubectl config get-contexts çıktısı]
Çıktıda görebileceğiniz üzere, şu an farklı bir cluster’a (aks-atlaseu-uat-gewc-001) bağlı durumdayız. Hedefimiz olan aks-bulut-test cluster’ına geçiş yapmak için aşağıdaki komutu kullanıyoruz:
Bash
kubectl config use-context aks-bulut-test
Bu adımla birlikte hedef cluster’ımıza başarıyla bağlandık ve deploy işlemine hazırız.
Adım 3: Pod YAML Dosyasının Hazırlanması
Deploy işlemi için Microsoft’un hazır imajlarından birini kullanarak ASP.NET ile yazılmış örnek bir uygulama ayağa kaldıracağız.
Bunun için aspnetapp.yaml adında bir dosya oluşturun ve içerisine aşağıdaki manifest tanımlarını ekleyin:
YAML
apiVersion: v1
kind: Pod
metadata:
name: aspnetapp
labels:
app: aspnetapp
spec:
containers:
- image: "mcr.microsoft.com/dotnet/samples:aspnetapp"
name: aspnetapp-image
ports:
- containerPort: 8080
protocol: TCP
Adım 4: Pod’un AKS Üzerine Deploy Edilmesi
YAML dosyamız hazır. İşlemi başlatmadan önce Azure Portal üzerinden baktığımızda ortamda henüz çalışan bir pod olmadığını görebiliriz.

[RESİM 2: Azure Portal – Boş Workloads/Pods ekranı]
Şimdi hazırladığımız manifest dosyasını kullanarak uygulamamızı AKS üzerine deploy edelim:
Bash
kubectl apply -f aspnetapp.yaml

[RESİM 3: kubectl apply komut çıktısı]
Terminalde pod/aspnetapp created mesajını gördük, bu da işlemin başarılı olduğu anlamına geliyor.
Adım 5: Doğrulama (Verification)
Oluşturduğumuz pod’un durumunu hem komut satırından kubectl get pods komutuyla hem de Azure Portal üzerinden doğrulayabiliriz.

[RESİM 4: Azure Portal – Çalışan (Running) durumdaki aspnetapp Pod’u]
Tebrikler! AKS üzerinde ASP.NET tabanlı bir pod’u başarıyla ayağa kaldırdınız.
Sonraki Adım: Uygulamayı Dışarı Açmak (Services)
Şu an pod’umuz cluster içerisinde başarılı bir şekilde çalışıyor. Ancak bu pod’a internet üzerinden (dışarıdan) erişmek istersek ne yapmamız gerekecek?
İşte bu noktada karşımıza bir başka temel Kubernetes objesi olan Servisler (Services) çıkıyor. Uygulamamızı dış dünyaya nasıl açacağımızı bir sonraki makalemizde, Service objesini incelerken detaylandıracağız.