Günümüzde modern uygulamalar, container teknolojileri ile dağıtılmaktadır. Docker ve Kubernetes, yazılım dağıtımını, ölçeklenebilirliği ve yönetimi kolaylaştıran iki önemli araçtır.
Bu yazıda, Docker ve Kubernetes’in temel kavramlarını, farklarını ve nasıl kullanılacağını işleyelim.
1️⃣ Docker Nedir? 🐳
Docker, uygulamaları bağımsız bir ortamda çalıştırmak için kullanılan container (kapsayıcı) tabanlı bir sanallaştırma platformudur.
🔹 Docker’ın Avantajları:
- Hafif ve taşınabilir
- Hızlı kurulum ve çalıştırma
- Bağımsız çalışma ortamları
- Mikro hizmet mimarisi ile uyumlu
Docker Kurulumu 🔧
Linux için Docker’ı yüklemek:
sudo apt update && sudo apt install docker.io -y
sudo systemctl start docker
sudo systemctl enable docker
Docker’ın çalışıp çalışmadığını kontrol etmek için:
docker --version
2️⃣ Docker Temel Kullanımı
📌 Docker Container Çalıştırma:
docker run hello-world
📌 Mevcut Containerları Listeleme:
docker ps -a
📌 Container Silme:
docker rm container_id
📌 Docker İmajlarını Listeleme:
docker images
📌 Dockerfile ile Özel Container Oluşturma:
FROM ubuntu:latest
RUN apt update && apt install -y nginx
CMD ["nginx", "-g", "daemon off;"]
Bu Dockerfile ile bir NGINX web sunucusu çalıştırabilirsiniz.
3️⃣ Kubernetes Nedir? ☸️
Kubernetes (K8s), Docker container’larını otomatik olarak dağıtmak, ölçeklendirmek ve yönetmek için kullanılan açık kaynaklı bir container orkestrasyon platformudur.
🔹 Kubernetes’in Avantajları:
- Otomatik yük dengeleme
- Ölçeklenebilirlik
- Container otomasyonu
- Hata toleransı ve self-healing
4️⃣ Kubernetes Temel Bileşenleri
🔹 Pod: Kubernetes’te en küçük çalışma birimi. Bir veya daha fazla container içerir.
🔹 Node: Kubernetes kümesindeki fiziksel veya sanal makinelerdir.
🔹 Cluster: Kubernetes’in tüm bileşenleri içeren yapısıdır.
🔹 Deployment: Container’ların istenilen şekilde çalışmasını sağlar.
🔹 Service: Uygulamalara ağ erişimi sağlar.
5️⃣ Kubernetes Kurulumu (Minikube ile)
Kubernetes’in yerel bir ortamda çalıştırılması için Minikube kullanabiliriz:
🔹 Minikube Kurulumu:
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube
🔹 Minikube Başlatma:
minikube start
🔹 Pod Oluşturma:
kubectl run nginx --image=nginx --port=80
🔹 Pod’ları Listeleme:
kubectl get pods
🔹 Service Oluşturma:
kubectl expose deployment nginx --type=LoadBalancer --port=80
Docker ve Kubernetes, modern uygulamaların hızlı, taşınabilir ve ölçeklenebilir bir şekilde dağıtılmasını sağlar. Docker, container oluşturmayı ve yönetmeyi kolaylaştırırken, Kubernetes, büyük ölçekli container yönetimi için en iyi çözümlerden biridir.