Bulut Sunucularda Docker ve Kubernetes ile Uygulama Dağıtımı

Giriş

Modern yazılım geliştirme süreçlerinde Docker ve Kubernetes, uygulamaların bulut ortamlarında verimli ve ölçeklenebilir bir şekilde çalışmasını sağlayan temel teknolojiler haline gelmiştir. Docker, uygulamaları kapsayıcılara (container) yerleştirerek taşınabilir ve tutarlı bir çalışma ortamı sunarken, Kubernetes, bu kapsayıcıları yönetmek ve otomatikleştirmek için kullanılan güçlü bir orkestrasyon sistemidir. Bu yazıda, bulut sunucularında Docker ve Kubernetes kullanarak uygulama dağıtımının nasıl gerçekleştirileceğini adım adım ele alacağız.

1. Docker ve Kubernetes Nedir?

Docker

Docker, yazılım uygulamalarını kapsayıcılar içinde çalıştıran açık kaynaklı bir platformdur. Kapsayıcılar, uygulama kodu ve bağımlılıklarını içeren izole edilmiş çalışma ortamlarıdır. Böylece, uygulamalar farklı ortamlarda aynı şekilde çalışabilir.

Docker’ın Avantajları:

  • Hafif ve taşınabilir kapsayıcı yapısı
  • Çevik ve hızlı dağıtım
  • Bağımlılık yönetimi kolaylığı

Kubernetes

Kubernetes (K8s), kapsayıcıların yönetimini otomatikleştiren bir orkestrasyon platformudur. Büyük ölçekli uygulamaların yüksek erişilebilirlik ve esneklikle yönetilmesini sağlar.

Kubernetes’in Avantajları:

  • Otomatik ölçeklendirme
  • Yük dengeleme ve hata toleransı
  • Servis keşfi ve ağ yönetimi

2. Bulut Sunucuda Docker ve Kubernetes Kurulumu

Docker Kurulumu

  1. Sunucuyu Güncelleyin:
sudo apt update && sudo apt upgrade -y

2. Docker’ı Yükleyin:

sudo apt install docker.io -y

3. Docker Servisini Başlatın ve Etkinleştirin:

sudo systemctl start docker
sudo systemctl enable docker

4. Docker Kurulumunu Doğrulayın:

docker --version

Kubernetes Kurulumu

Kubernetes’in temel bileşenlerini içeren minikube veya kubeadm kullanılabilir.

  1. Kubernetes Paketlerini Kurun:
sudo apt install -y kubelet kubeadm kubectl

2. Kubernetes Kümesini Başlatın:

sudo kubeadm init

3. Kubeconfig Ayarlarını Yapın:

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

4. İlk Node’u Kümeye Ekleyin:

kubeadm token create --print-join-command

5. Kubernetes Kümesini Kontrol Edin:

kubectl get nodes

3. Docker Kapsayıcısı ile Uygulama Dağıtımı

Docker kapsayıcıları kullanarak uygulamanızı çalıştırmak için şu adımları takip edebilirsiniz:

  1. Dockerfile Oluşturun:
FROM node:18
WORKDIR /app
COPY . .
RUN npm install
CMD ["node", "app.js"]

2. Docker İmajı Oluşturun:

docker build -t myapp .

3 . Kapsayıcıyı Çalıştırın:

docker run -d -p 8080:8080 myapp

4. Çalışan Kapsayıcıları Kontrol Edin:

docker ps

4. Kubernetes ile Uygulama Yönetimi

Docker kapsayıcılarını Kubernetes üzerinde çalıştırmak için Deployment ve Service nesneleri kullanılır.

Deployment Dosyası (deployment.yaml)
apiVersion: apps/v1
kind: Deployment
metadata:
name: myapp-deployment
spec:
replicas: 2
selector:
matchLabels:
app: myapp
template:
metadata:
labels:
app: myapp
spec:
containers:
- name: myapp
image: myapp
ports:
- containerPort: 8080

Service Dosyası (service.yaml)

apiVersion: v1
kind: Service
metadata:
name: myapp-service
spec:
selector:
app: myapp

    - ports:  protocol: TCP
    port: 80
    targetPort: 8080
    type: LoadBalancer

Komutları çalıştırarak Kubernetes ortamına uygulamanızı dağıtabilirsiniz:

kubectl apply -f deployment.yaml
kubectl apply -f service.yaml
kubectl apply -f deployment.yaml
kubectl apply -f service.yaml

Uygulamanızın durumu için şu komutları kullanabilirsiniz:

kubectl get pods
kubectl get services

5. Sonuç

Docker ve Kubernetes, bulut sunucularda ölçeklenebilir ve yönetilebilir uygulama dağıtımı için güçlü araçlardır. Docker ile uygulamalarınızı kapsayıcılara alabilir, Kubernetes ile bunları otomatik ölçekleyebilir ve yönetebilirsiniz. Bu süreç, uygulamalarınızın kesintisiz çalışmasını sağlar ve sistem kaynaklarını verimli kullanmanıza olanak tanır.

Vps.com.tr