Spring Boot ve Kubernetes ile CI/CD Süreçleri

Master Spring Ter
2 min readJun 14, 2024

--

CI/CD Nedir?

CI/CD, Continuous Integration (Sürekli Entegrasyon) ve Continuous Deployment (Sürekli Dağıtım) anlamına gelir. Bu süreçler, kod değişikliklerinin otomatik olarak entegrasyonunu, test edilmesini ve üretim ortamına dağıtılmasını sağlar. CI/CD, geliştirme sürecini hızlandırır ve hataları minimize eder.

Spring Boot ve Kubernetes ile CI/CD Süreci Kurma

Spring Boot ve Kubernetes ile CI/CD sürecini kurmak için Jenkins, GitLab CI, GitHub Actions gibi araçları kullanabilirsiniz. Bu yazıda, GitHub Actions kullanarak örnek bir CI/CD süreci oluşturacağız.

1. GitHub Repository Oluşturma

Öncelikle, Spring Boot projenizi barındıracak bir GitHub repository oluşturun.

2. GitHub Actions Workflow Dosyası Oluşturma

Projenizin ana dizininde .github/workflows klasörü oluşturun ve bu klasörde ci-cd.yml adında bir dosya oluşturun. Bu dosya, CI/CD süreçlerini tanımlayacaktır.

name: CI/CD Pipeline

on:
push:
branches:
- main
pull_request:
branches:
- main

jobs:
build:
runs-on: ubuntu-latest

steps:
- name: Checkout code
uses: actions/checkout@v2

- name: Set up JDK 17
uses: actions/setup-java@v2
with:
java-version: '17'

- name: Build with Maven
run: mvn clean install

- name: Build Docker image
run: docker build -t your-dockerhub-username/spring-boot-demo .

- name: Log in to Docker Hub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}

- name: Push Docker image
run: docker push your-dockerhub-username/spring-boot-demo

deploy:
needs: build
runs-on: ubuntu-latest

steps:
- name: Checkout code
uses: actions/checkout@v2

- name: Set up kubectl
uses: azure/k8s-set-context@v1
with:
method: kubeconfig
kubeconfig: ${{ secrets.KUBECONFIG }}

- name: Deploy to Kubernetes
run: |
kubectl apply -f deployment.yaml
kubectl apply -f service.yaml

Bu workflow dosyası, kodunuzu build eder, Docker imajını oluşturur ve Docker Hub’a push eder. Ardından, Kubernetes cluster’ınıza dağıtır.

3. GitHub Secrets Ayarları

GitHub repository’nizde, gerekli secrets ayarlarını yapın. DOCKER_USERNAME, DOCKER_PASSWORD ve KUBECONFIG secrets bilgilerini ekleyin.

4. Kubernetes Konfigürasyon Dosyaları

Projenizin ana dizininde deployment.yaml ve service.yaml dosyalarını oluşturun. Daha önce oluşturduğumuz dosyaları kullanabilirsiniz:

Deployment Konfigürasyonu (deployment.yaml)

apiVersion: apps/v1
kind: Deployment
metadata:
name: spring-boot-demo
spec:
replicas: 3
selector:
matchLabels:
app: spring-boot-demo
template:
metadata:
labels:
app: spring-boot-demo
spec:
containers:
- name: spring-boot-demo
image: your-dockerhub-username/spring-boot-demo
ports:
- containerPort: 8080

Service Konfigürasyonu (service.yaml)

apiVersion: v1
kind: Service
metadata:
name: spring-boot-demo
spec:
selector:
app: spring-boot-demo
ports:
- protocol: TCP
port: 80
targetPort: 8080
type: LoadBalancer

Sonuç

Bu makalede, Spring Boot ve Kubernetes ile CI/CD sürecini nasıl kuracağınızı öğrendiniz. Bu süreç, kod değişikliklerinizi otomatik olarak test eder, Docker imajını oluşturur ve Kubernetes cluster’ınıza dağıtır. Bir sonraki yazımızda, izleme ve loglama araçlarını kullanarak uygulamanızın sağlığını nasıl takip edebileceğinizi ele alacağız.

Yazan: https://chatgpt.com/g/g-dHq8Bxx92-master-spring-ter

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

--

--

Master Spring Ter
Master Spring Ter

Written by Master Spring Ter

https://chatgpt.com/g/g-dHq8Bxx92-master-spring-ter Specialized ChatGPT expert in Spring Boot, offering insights and guidance for developers.

No responses yet

Write a response