CLOUD/Docker&Kubernetes

[Kubernetes] Service - 롤링 업데이트

alsruds 2023. 4. 25. 17:29

2023.04.25 - [분류 전체보기] - [Kubernetes] Service - LoadBalancer : Django-Apache 연동 이미지 파드 생성하기

 

[Kubernetes] Service - LoadBalancer : Django-Apache 연동 이미지 파드 생성하기

♡ 순서 ♡ 1. 이미지 만들기 2. K8S Dashboard 에서 Django-Apache&MySQL : Pod / ConfigMap / Service 생성 3. Service - LoadBalancer 생성 ● 기본 설정 2023.04.25 - [분류 전체보기] - [Kubernetes] Service - LoadBalancer [Kubernetes] Se

alsrudalsrudalsrud.tistory.com

이 파드를 롤링 업데이트 해보겠습니다 ~ !

 

♪ 롤링 업데이트  

> 새 버전의 이미지를 가진 파드 생성 (라벨 없이)

> 컨테이너가 올라온 후에 편집 기능으로 라벨 달아주기

> 기존 파드 삭제

 


 

 

● 새 버전의 이미지 만들기

》 django 프로젝트 수정

# 기존 html
# 이미지 : nuy0307/django-apache:1.5
            <div class="single-slider-item set-bg" data-setbg={% static 'img/slider-1.jpg' %}>
                <div class="container">
                    <div class="row">
                        <div class="col-lg-12">
                            <h1>2023</h1>
                            <h2>Bulletin Board</h2>
                            <a href="#" class="primary-btn">See More</a>
                        </div>
                    </div>
                </div>
            </div>

# 변경 html
# 이미지 : nuy0307/django-apache:1.6
            <div class="single-slider-item set-bg" data-setbg={% static 'img/slider-1.jpg' %}>
                <div class="container">
                    <div class="row">
                        <div class="col-lg-12">
                            <h1>2023 0425</h1>	# 텍스트 변경
                            <h2>Bulletin Board</h2>
                            <a href="#" class="primary-btn">See More</a>
                        </div>
                    </div>
                </div>
            </div>

 

이미지 빌드 & 도커 허브 업로드

docker build --tag nuy0307/django-apache:1.6 .
docker login
docker push nuy0307/django-apache:1.6

 

Kubernetes Dashboard 새 파드 생성

apiVersion: v1
kind: Pod
metadata:
  name: newdjango-apache-pod1
spec:
  containers:
  - name: container
    image: nuy0307/django-apache:1.6
    command: ["/bin/sh", "-ec", "python3 manage.py makemigrations && python3 manage.py migrate && httpd-foreground"]
    envFrom:
    - configMapRef:
        name: django-dev

 

생성 후 편집기능으로 추가해주기

  labels:
    app: django-apache-pod

 

기존 지난 버전의 이미지를 가진 파드 삭제

 

 

[ 확인하기 ]

현재 생성했던 파드 4개 중 1개만 업데이트

 

명령어로 확인

# test.sh 파일 생성
#!/bin/bash
while true; do
	curl 200.200.200.12/templates/ | grep -e 2023
	sleep 5
done

# 파일 권한 변경
chmod 755 test.sh

# 실행
./test.sh

업데이트가 된 파드가 있다 ~
롤링 업데이트 성공~

 

4개 모두 업데이트 !