Docker Nedir?
Docker’ın En Büyük Avantajı:
Her ortamda aynı şekilde çalışması. Yani, yazılım geliştirdiğiniz bilgisayarınızda çalışıyorsa, sunucuda da çalışacak demektir. Bu, zaman kazandırır ve hataları azaltır.
Kubernetes: Büyük Resmin Yönetim Aracı
# Kubernetes'in Temel Özellikleri:
1. Otomatik Yük Dengeleme: Uygulamalarınızın trafiği, Kubernetes tarafından doğru bir şekilde yönlendirilir.
2. Otomatik Yeniden Başlatma: Eğer bir kapsayıcı çökerse, Kubernetes hemen başka bir tane başlatır.
3. Otomatik Dağıtım ve Rollback: Yeni bir sürüm uyguladığınızda, Kubernetes yeni sürümün başarılı olup olmadığını test eder ve sorun oluşursa eski sürüme geri dönebilir.
Docker ve Kubernetes’i entegre kullanmak, büyük ve karmaşık projelerde oldukça faydalıdır. Docker kapsayıcılarını kullanarak uygulamanızın tüm bileşenlerini birbirinden bağımsız bir şekilde çalıştırabilirsiniz. Kubernetes ise bu kapsayıcıları yönetir, uygulamanızın sorunsuz şekilde çalışmasını sağlar. Peki, bu entegrasyonu nasıl gerçekleştirebiliriz?
# Adım 1: Docker Kapsayıcılarını Oluşturun
Docker ile her bir uygulama bileşenini bağımsız bir kapsayıcıda çalıştırın. Örneğin, bir uygulamanızın front-end kısmı için bir kapsayıcı, back-end kısmı için başka bir kapsayıcı oluşturabilirsiniz.
docker build -t myapp/frontend ./frontend
docker build -t myapp/backend ./backend
```
# Adım 2: Kubernetes Konfigürasyon Dosyalarını Oluşturun
Her bir Docker kapsayıcısını Kubernetes’in anlayacağı bir formatta tanımlamanız gerekecek. Bunun için YAML dosyalarını kullanıyoruz.
apiVersion: apps/v1
kind: Deployment
metadata:
name: frontend-deployment
spec:
replicas: 2
selector:
matchLabels:
app: frontend
template:
metadata:
labels:
app: frontend
spec:
containers:
- name: frontend
image: myapp/frontend:latest
ports:
- containerPort: 80
```
# Adım 3: Uygulamayı Kubernetes’e Yükleyin
Docker kapsayıcılarını Kubernetes’e yüklemek için, `kubectl` komutunu kullanarak uygulamanızı başlatabilirsiniz.
kubectl apply -f frontend-deployment.yaml
```
Sonuç: Daha Verimli ve Güvenli Bir Dağıtım
Eğer yazılım geliştirmeye yeni başladıysanız, bu teknolojiler başlangıçta karmaşık gibi görünse de, pratik yaparak oldukça faydalı hale gelebilirler. Teknoloji dünyası hızla değişiyor ve Docker ile Kubernetes, bu değişimi yakalamanın en iyi yollarından biri.