Kubernetes, konteynerleştirilmiş uygulamaların çalıştırılması, yönetilmesi, ölçeklendirilmesi ve otomatik geri yüklenmesini sağlar; otomatik yük dengesi, rolling update/rollback, HPA ile ölçeklenebilirlik ve güvenli konfigürasyon yönetimi sunar. Uygulama dağıtımı için Docker imajı hazırlanmalı, cluster kurulmalı ve YAML dosyalarıyla deployment ile servis tanımları yapılmalıdır. Konfigürasyonlar ConfigMap ve Secret ile, yük bazlı otomasyon ise HPA ile sağlanır. Bluemark Academy’nin Kubernetes & OpenShift eğitimiyle bu süreçler profesyonel seviyeye taşınabilir.

Kubernetes Nedir ve Neden Kullanılır?

Kubernetes (k8s), konteynerleştirilmiş uygulamaların çalıştırılması, yönetilmesi, ölçeklendirilmesi ve otomatik olarak geri yüklenmesi gibi işlevleri sunar.

Avantajları:

  • Otomatik yük dengesini sağlar
  • Kolay ölçeklenebilirlik
  • Rolling update ve rollback desteği
  • Güvenli, izole çalışma ortamı

Uygulama Dağıtımı İçin Gerekli Ön Hazırlıklar

  1. Docker ile uygulama imajı oluşturulmalıdır.
  2. Kubernetes cluster kurulumu yapılmalıdır (minikube, kind, EKS, GKE vs.).
  3. kubectl komutu kurulmalı ve cluster’a bağlanmalıdır.

Örnek komutlar;

kubectl version --client
kubectl config view
kubectl get nodes

Deployment YAML Dosyası Oluşturma

Uygulama Kubernetes’e, YAML formatındaki bir tanım dosyası ile tanıtılır.

Örnek deployment.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: ornek-uygulama
spec:
  replicas: 3
  selector:
    matchLabels:
      app: ornek
  template:
    metadata:
      labels:
        app: ornek
    spec:
      containers:
      - name: ornek-konteyner
        image: myregistry/ornek:v1
        ports:
        - containerPort: 80

Uygulamanın Kubernetes’e Dağıtılması

Adımlar:

  1. Deployment dosyası uygulanır:
kubectl apply -f deployment.yaml
  1. Pod’ları ve durumu kontrol edilir:
kubectl get pods

Servis Oluşturarak Uygulamayı Erişime Açma

Uygulamanın dışarıdan erişilebilir olması için bir servis tanımlanmalıdır.

Örnek service.yaml

apiVersion: v1
kind: Service
metadata:
  name: ornek-servis
spec:
  type: NodePort
  selector:
    app: ornek
  ports:
  - protocol: TCP
    port: 80
    targetPort: 80
    nodePort: 30007

Servisi uygulamak:

kubectl apply -f service.yaml

Dağıtım Stratejileri: Rolling Update ve Rollback

Rolling Update:

  • Uygulama güncellenirken eski versiyonun bir anda değil, adım adım kaldırılmasını sağlar.
kubectl set image deployment/ornek-uygulama ornek-konteyner=myregistry/ornek:v2

Rollback:

  • Eski versiyona geri alma komutu:
kubectl rollout undo deployment/ornek-uygulama

ConfigMap ve Secret Kullanımıyla Konfigürasyon Yönetimi

Kubernetes’te yapılandırma verileri için ConfigMap ve gizli veriler için Secret kaynakları kullanılır.

ConfigMap Örneği:

apiVersion: v1
kind: ConfigMap
metadata:
  name: ornek-config
data:
  UYGULAMA_MODU: "prod"

Secret Örneği:

apiVersion: v1
kind: Secret
metadata:
  name: ornek-secret
stringData:
  parola: "gizli123"

Horizontal Pod Autoscaler (HPA) ile Otomatik Ölçeklendirme

Kubernetes, sistem yüküne göre pod sayısını otomatik olarak artırmak veya azaltmak için HPA bileşenini sunar.

HPA Oluşturma Komutu:

kubectl autoscale deployment ornek-uygulama --cpu-percent=50 --min=2 --max=5

HPA’yı Görüntüleme:

kubectl get hpa

Sıkça Sorulan Sorular (SSS)

SoruCevap
Uygulama kaç pod olarak dağıtılmalı?Yükte denge ve hata toleransı için en az 2-3 pod.
Servis tipi olarak ne seçilmeli?Geliştirme için NodePort, prod ortamlar için LoadBalancer.
Dağıtımda hata alırsam ne yapmalıyım?kubectl describe pods ile detaylı log incelenmeli.

Kubernetes ve OpenShift: Eğitim Alarak Dağıtım Süreçlerini Nasıl Mükemmelleştirebilirsiniz?

Kubernetes üzerinde etkili dağıtım yapabilmek için temel bilgilerin ötesine geçmek gerekir. Bluemark Academy tarafından sunulan Kubernetes & OpenShift Eğitimi, gerçek dünya senaryolarıyla bu süreci profesyonel seviyeye taşımanıza yardımcı olur.