Jenkins Kurulumu: Kubernetes Üzerinde Jenkins Kurulumu
Bu Rehberde Ne Öğreneceksiniz?
Bu rehberde Jenkins’i Kubernetes kümesi üzerinde çalıştırmayı öğreneceksiniz.
YAML dosyalarıyla deklaratif kurulum yapacak, Jenkins’i dışarıya açacak ve ilk CI/CD pipeline’ınızı çalıştıracaksınız.
Rehber sonunda ölçeklenebilir ve merkezi bir Jenkins ortamınız olacak.
🧠 Teknik Özet
Konu: Kubernetes üzerinde Jenkins kurulumu
Çözülen Problem: Jenkins’in tek sunucuya bağlı, ölçeklenemez çalışması
Yaklaşım: Deployment ve Service kullanarak Jenkins’i küme üzerinde yayınlamak
Adımlar: Namespace → Deployment → Service → UI erişimi → Pipeline çalıştırma
Ön Koşullar
Devam etmeden önce aşağıdakiler gereklidir:
- Çalışan bir Kubernetes kümesi
- Yapılandırılmış kubectl
- Küme üzerinde yetkili erişim
Not: Örneklerde Rabisu Kubernetes altyapısı varsayılmıştır.
1️⃣ Jenkins Deployment Oluşturma
Kubernetes’te uygulamalar YAML dosyalarıyla tanımlanır.
kubectl create namespace jenkins
- Bu komut Jenkins için izole bir namespace oluşturur.
nano jenkins.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: jenkins
spec:
replicas: 1
selector:
matchLabels:
app: jenkins
template:
metadata:
labels:
app: jenkins
spec:
containers:
- name: jenkins
image: jenkins/jenkins:lts
ports:
- containerPort: 8080
- containerPort: 50000
volumeMounts:
- name: jenkins-vol
mountPath: /var/jenkins_vol
volumes:
- name: jenkins-vol
emptyDir: {}
- Bu yapı Jenkins LTS imajını çalıştırır ve gerekli portları açar.
kubectl apply -f jenkins.yaml -n jenkins
- Bu komut Jenkins Pod’unu başlatır.
kubectl get pods -n jenkins
- Pod’un Running durumda olması gerekir.
2️⃣ Jenkins Servisini Dışarıya Açmak
- Jenkins arayüzüne erişmek için Service tanımlanır.
nano jenkins-service.yaml
apiVersion: v1
kind: Service
metadata:
name: jenkins
spec:
type: NodePort
ports:
- port: 8080
targetPort: 8080
nodePort: 30000
selector:
app: jenkins
---
apiVersion: v1
kind: Service
metadata:
name: jenkins-jnlp
spec:
type: ClusterIP
ports:
- port: 50000
targetPort: 50000
selector:
app: jenkins
- Bu yapı Jenkins’i 30000 portu üzerinden erişilebilir yapar.
kubectl apply -f jenkins-service.yaml -n jenkins
kubectl get services -n jenkins
- Servislerin aktif olduğunu doğrular.
3️⃣ Jenkins Arayüzüne Erişim ve Şifre Alma
- Önce node IP adresini öğrenin.
kubectl get nodes -o wide
- Tarayıcıdan şu adrese gidin:
http://node_ip_adresi:30000
- Yönetici Şifresi
kubectl get pods -n jenkins
kubectl logs pod_adi -n jenkins
- Bu komut Jenkins başlangıç şifresini gösterir.
Arayüzde:
-
Install suggested plugins
-
Yönetici kullanıcı oluşturma
-
Varsayılan ayarlarla devam
-
adımlarını izleyin.
4️⃣ İlk Pipeline Çalıştırma
-
Jenkins ana sayfasında New Item seçeneğine tıklayın.
-
Pipeline türünü seçin ve devam edin.
-
Pipeline bölümünde Hello World örneğini seçin.
-
Build Now ile pipeline’ı çalıştırın.
- Bu işlem Jenkins CI/CD altyapısının çalıştığını doğrular.
❓ Sıkça Sorulan Sorular (SSS)
1. Jenkins Pod silinirse veriler kaybolur mu? Evet. emptyDir kullanıldığı için veriler geçicidir.
2. Kalıcılık nasıl sağlanır? Production ortamlarında PersistentVolume ve PVC kullanılmalıdır.
3. NodePort yerine LoadBalancer kullanılabilir mi? Evet. Bulut sağlayıcınız destekliyorsa önerilir.
4. CrashLoopBackOff hatası alıyorum, neden olur? Genellikle yetersiz kaynak veya yanlış yapılandırma sebep olur. kubectl describe pod pod_adi -n jenkins ile detayları inceleyin.
Sonuç
Bu rehberle Jenkins’i Kubernetes üzerinde çalışır hale getirdiniz. Artık ölçeklenebilir, merkezi ve modern bir CI/CD altyapısına sahipsiniz.
Bu kurulumu Rabisu Bulut Kubernetes altyapısında kullanarak projelerinizi güvenle otomatikleştirebilirsiniz.