Merhaba, “Azure Üzerinde Kubernetes Service(AKS)” makale serimize devam ediyoruz. Mikroservis hizmetleri için tasarlanmış olan Azure Üzerinde Kubernetes Service(AKS) temel olarak aşağıdaki mimariyi referans alır.
Mimarideki bileşenlere baktığımızda;
Azure Kubernetes Service (AKS) : Azure evreninde yönetilebilir kubernetes servisi olarak tanımlanıyor. Kubernetes API servisleri Azure tarafından yönetildiği için size sadece Podları yönetmek kalıyor.
Ingress: Kubernetes cluster’a HTTP ve HTTPS yönlendirmelerinden sorumlu.
Azure Load Balancer : Hizmetleriniz için yük dengelemesi yapar. Üzerine ilerleyen makalelerde daha çok konuşacağız.
External data stores : Azure SQL Veritabanı veya Azure Cosmos DB gibi kaynaklara yazmayı sağlar.
Azure Active Directory : Uygulamalarda kimlik doğrulama hizmetini sağlar.
Azure Container Registry : Genel olarak konteynerlarınızı depolayabiliyor ve yönetebiliyorsunuz.
Azure Pipelines: . Azure Pipelines, Azure DevOps Services bir parçasıdır ve otomatik derlemeler, testler ve dağıtımları çalıştırır.
Helm : Helm, Kubernetes için geliştirilmiş bir paket yöneticisidir.
Azure Monitor : Azure hizmetleri için ölçümleri ve loglarını, uygulama telemetrisini ve platform ölçümlerini toplar ve depolar. Uygulamayı izlemek, uyarıları, panoları ayarlamak ve hataların kök neden analizini gerçekleştirmek için bu verileri kullanılır.
Bu temel bilgileri ilerleyen makalelerde tek tek inceleyeceğiz. Bu bilgiler sonrasında ilk uygulamamızı AKS üzerinde yayınlayabiliriz.
AKS üzerinde işlemlerimiz. “yalm” uzantılı dosyalar ile yapıyoruz. Hazırladığımız bu dosyalara “Manifest” deniyor.
İlk olarak “Azure Cloud Shell” ile bağlantımı sağlıyorum ve aşağıdaki komut ile yeni bir yalm dosyası oluşturuyorum.
nano nginx.yaml
Açılan boş dosya içerisinde aşağıdaki kod bloğunu kopyala/yapıştır yapıyorum.
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: nginx
spec:
replicas: 2
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.23
ports:
- containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
name: nginx-svc
spec:
type: LoadBalancer
ports:
- port: 80
selector:
app: nginx
Aşağıdaki komut ile servisimizi oluşturuyoruz.
kubectl create -f nginx.yaml
Servisimiz çalıştı ve test ediyoruz. Aşağıda görüldüğü gibi nginix başarılı bir şekilde çalışmakta.
Gördüğünüz gibi bir servisi kullanıma sunmak bu kadar hızlı ve kolay. Sanal makine yok başka işler yok. Her şey bir anda oluyor ve hizmete başlıyor. Makaleyeli burada bitirirken faydalı olmasını dilerim, keyifli okumalar.