Projenizi Dockerize Ederek Kubernetes Ortamına Taşıma Rehberi

Modern DevOps süreçlerinde uygulamaların Docker ile containerize edilmesi ve ardından Kubernetes ortamına deploy edilmesi artık standart hale gelmiştir. Bu rehberde bir projeyi adım adım Dockerize edip Kubernetes cluster’a nasıl taşıyacağınızı gösteriyoruz.

Eğer Docker temelini öğrenmek istiyorsanız önce Docker Nedir? rehberine göz atabilirsiniz.


🔧 Dockerize Süreci: Adım Adım

Adım 1: Dockerfile Oluşturma

Dockerfile, bir Docker imajının nasıl oluşturulacağını belirleyen temel dosyadır. Bağımlılıkların yüklenmesi ve uygulamanın nasıl çalıştırılacağı burada tanımlanır.

Spring Boot Örneği

FROM eclipse-temurin:17-jdk-alpine

WORKDIR /app

COPY target/uygulama.jar app.jar

EXPOSE 8080

ENTRYPOINT ["java", "-jar", "app.jar"]
Spring Boot Dockerfile örneği
Spring Boot uygulaması için minimal Dockerfile

Not: Alpine tabanlı imaj kullanmak image boyutunu küçültür.


Adım 2: Docker Build ve İmaj Oluşturma

docker build -t benim-projem:1.0 .
Oluşturulan imajları kontrol etmek için:
docker images
Container çalıştırma testi:
docker run -p 8080:8080 benim-projem:1.0

Adım 3: Docker Registry’ye İmaj Yükleme

İmajınızı Docker Hub veya özel bir registry’ye göndermeniz gerekir.

docker login
docker tag benim-projem:1.0 kullanici_adi/benim-projem:1.0
docker push kullanici_adi/benim-projem:1.0

CI/CD süreçlerinde bu adım genellikle otomatik yapılır.


Adım 4: Kubernetes Deployment YAML Oluşturma

Şimdi uygulamamızı Kubernetes cluster’a deploy ediyoruz.

apiVersion: apps/v1
kind: Deployment
metadata:
  name: benim-projem-deployment
spec:
  replicas: 3
  selector:
    matchLabels:
      app: benim-projem
  template:
    metadata:
      labels:
        app: benim-projem
    spec:
      containers:
        - name: benim-projem
          image: kullanici_adi/benim-projem:1.0
          ports:
            - containerPort: 8080
Kubernetes deployment yaml örneği
Kubernetes Deployment yapısı

Adım 5: Kubernetes Cluster’a Deploy

kubectl apply -f deployment.yaml
Pod durumunu kontrol et:
kubectl get pods
Servis oluştur:
kubectl expose deployment benim-projem-deployment \
--type=LoadBalancer --port=80 --target-port=8080
Servisleri listele:
kubectl get svc

Production İçin Önemli İyileştirmeler

  • Readiness ve Liveness probe ekleyin
  • Resource limit (CPU/Memory) tanımlayın
  • ConfigMap ve Secret kullanın
  • Horizontal Pod Autoscaler yapılandırın
Örnek resource limit:
resources:
  requests:
    memory: "256Mi"
    cpu: "200m"
  limits:
    memory: "512Mi"
    cpu: "500m"

Docker + Kubernetes Akış Şeması

Kod
 ↓
Dockerfile
 ↓
Docker Image
 ↓
Docker Registry
 ↓
Kubernetes Deployment
 ↓
Pod → Service → LoadBalancer

🎯 Sonuç

Bu rehberde bir uygulamanın nasıl Dockerize edilip Docker Registry’ye yükleneceğini ve Kubernetes ortamına deploy edileceğini adım adım gördük.

Bir sonraki adım olarak: GitHub Actions ile otomatik Docker deploy rehberine geçebilirsiniz.

Latest Software Developers - Yazılım Blog Yazarı Profil Resmi

Yazar

LatestSoftwareDevelopers

Blog where the most up-to-date software is followed. (En güncel yazılımların takip edildiği blog sitesi)

Devops ile ilgili yorumlar

Yorum Paylaş

EMail Zorunlu alanlar * *