Giriş
Konteynerleştirme, uygulamaların bağımsız bir ortamda çalışmasını sağlayan, taşıma ve dağıtım açısından avantajlar sunan bir teknolojidir. Rocky Linux 9, bu tür uygulamaların çalıştırılması için sağlam bir temel sunarak, Docker ve Kubernetes gibi popüler konteyner platformları ile entegrasyonu kolaylaştırır. Bu yazıda, Rocky Linux 9 üzerinde Docker ve Kubernetes kullanarak konteynerleştirilmiş uygulamaların nasıl dağıtılacağına dair süreçler ele alınacaktır.
Docker Nedir?
Docker, yazılımları konteynerler içinde çalıştırmayı sağlayan bir platformdur. Konteynerler, uygulamanın tüm bağımlılıkları ile birlikte paketlenmesini mümkün kılar. Bu, uygulamaların farklı ortamlarda tutarlılıkla çalışmasını sağlar. Docker kullanarak uygulamaların geliştirilmesi, dağıtılması ve sürdürülmesi daha esnek hale gelir.
Rocky Linux 9 Üzerinde Docker Kurulumu
Docker kurulumuna başlamadan önce, sistemin güncel olduğundan emin olunmalıdır. Aşağıdaki adımlar izlenerek Rocky Linux 9 üzerine Docker kurulumu gerçekleştirilebilir:
1. Sistem Güncellemeleri: Terminal açılarak aşağıdaki komut ile sistem güncellenir.
“`
sudo dnf update
“`
2. Docker Kurulumu: Docker, resmi depo üzerinden kurulabilir. Aşağıdaki komut ile Docker kurulumu tamamlanır.
“`
sudo dnf install docker
“`
3. Docker Servisini Başlatma ve Otomatik Başlangıç Ayarı: Docker servisi başlatılmalı ve sistem açıldığında otomatik olarak çalışması sağlanmalıdır.
“`
sudo systemctl start docker
sudo systemctl enable docker
“`
4. Docker Kurulumunu Doğrulama: Kurulumun başarılı olup olmadığını anlamak için aşağıdaki komut kullanılabilir.
“`
sudo docker run hello-world
“`
Docker ile Uygulama Dağıtımı
Docker üzerinde bir uygulama dağıtmak için Dockerfile adlı bir dosya oluşturulur. Bu dosya, uygulamanın nasıl derleneceği ve çalıştırılacağına dair talimatları içerir. Aşağıda basit bir Flask uygulaması için örnek bir Dockerfile sunulmaktadır:
“`
Temel imaj
FROM python:3.9-slim
Çalışma dizini oluşturma
WORKDIR /app
Gereksinimlerin kopyalanması
COPY requirements.txt .
Gereksinimlerin yüklenmesi
RUN pip install -r requirements.txt
Uygulamanın kopyalanması
COPY . .
Uygulamanın çalıştırılması
CMD [“python”, “app.py”]
“`
Docker imajı oluşturmak için terminal aracılığıyla, uygulama dizininde bulunan Dockerfile kullanılarak aşağıdaki komut çalıştırılır:
“`
sudo docker build -t flask-app .
“`
Oluşturulan imaj, bir konteynerde çalıştırılabilir:
“`
sudo docker run -d -p 5000:5000 flask-app
“`
Burada `-d` parametresi, konteynerin arka planda çalışmasını sağlar ve `-p` liman yönlendirmesini belirtir.
Kubernetes Nedir?
Kubernetes, birden fazla konteynerin yönetimini sağlayan bir orkestrasyon platformudur. Kubernetes, uygulamaların ölçeklenebilirliğini artırarak, yüksek kullanılabilirlik ve otomatik yönetim sunar. Rocky Linux 9 üzerinde Kubernetes kurulumunu ve yapılandırmasını sağlamak için çeşitli araçlar kullanılabilir.
Rocky Linux 9 Üzerinde Kubernetes Kurulumu
Kubernetes kurulumu genellikle bir yöneticinin kontrol düğümünü ve bir veya daha fazla işçi düğümünü içeren bir yapı ile gerçekleştirilir. Kurulum aşağıdaki adımlarla yapılabilir:
1. Sistem Güncellemeleri ve Gereksinimlerin Yüklenmesi: Gerekli paketlerin yüklenmesi için aşağıdaki komut kullanılabilir.
“`
sudo dnf install -y kubelet kubeadm kubectl
“`
2. Kubelet Servisini Başlatma ve Otomatik Başlangıç Ayarı:
“`
sudo systemctl enable kubelet
sudo systemctl start kubelet
“`
3. Kubernetes Cluster Kurulumu: Administratör düğümünde aşağıdaki komut ile bir Kubernetes cluster’ı oluşturulabilir.
“`
sudo kubeadm init
“`
4. Kubernetes’i Kullanılabilir Hale Getirme: Kubernetes komut satırı aracını kullanmak için, aşağıdaki komut ile yapılandırma yapılmalıdır.
“`
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
“`
5. Ağ Eklentisi Kurulumu: Kubernetes üzerinde ağ iletişimini sağlamak için bir ağ eklentisi kurmak gerekmektedir. Örneğin, Flannel kurulumu şu şekilde yapılabilir:
“`
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/k8s-manifests/kube-flannel.yml
“`
Kubernetes ile Uygulama Dağıtımı
Kubernetes üzerinde bir uygulama dağıtmak için öncelikle bir YAML dosyası oluşturulmalıdır. Bu dosya, hangi uygulamanın ne şekilde çalıştırılacağını tanımlar. Aşağıda basit bir örnek yer almaktadır:
“`yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: flask-deployment
spec:
replicas: 2
selector:
matchLabels:
app: flask
template:
metadata:
labels:
app: flask
spec:
containers:
– name: flask-container
image: flask-app:latest
ports:
– containerPort: 5000
“`
YAML dosyası oluşturulduktan sonra aşağıdaki komut ile uygulama dağıtımı yapılır:
“`
kubectl apply -f deployment.yaml
“`
Sonuç olarak, Rocky Linux 9 üzerinde Docker ve Kubernetes kullanarak konteynerleştirilmiş uygulamaların dağıtımı detaylı bir şekilde gerçekleştirilmiştir. Bu yöntemler, uygulamaların geliştirilmesi, yönetilmesi ve ölçeklenmesi açısından büyük bir kolaylık sağlamaktadır.