Ana içeriğe geç

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

  1. 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

  1. Önce node IP adresini öğrenin.

kubectl get nodes -o wide
  1. Tarayıcıdan şu adrese gidin:

http://node_ip_adresi:30000

  1. Yönetici Şifresi

kubectl get pods -n jenkins


kubectl logs pod_adi -n jenkins
  • Bu komut Jenkins başlangıç şifresini gösterir.

Arayüzde:

  1. Install suggested plugins

  2. Yönetici kullanıcı oluşturma

  3. Varsayılan ayarlarla devam

  4. adımlarını izleyin.


4️⃣ İlk Pipeline Çalıştırma

  1. Jenkins ana sayfasında New Item seçeneğine tıklayın.

  2. Pipeline türünü seçin ve devam edin.

  3. Pipeline bölümünde Hello World örneğini seçin.

  4. 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.