쿠버네티스 어나더 클래스 지상편: Sprint2 Day13 Jenkins Pipeline

쿠버네티스 어나더 클래스 지상편: Sprint2 Day13 Jenkins Pipeline

0. New view 만들기

imageimage

1. Jenkins Pipeline 기본 구성 만들기 (Step 1)

imageimageimageimage오류가 발생해 자세한 로그을 보니 파이프라인은 성공적으로 실행됐다...

 

2. Github 연결 및 파이프라인 세분화

imageimageimageimage폴더의 스크립트 파일 이름이 Jenkinsfile이다.

 

image

image

3. Blue/Green 배포 만들기 및 특징 실습

imageimageimageBlue 버전으로 계속 호출하는 중

 

image그린 파드로 호출

 

image롤백 버튼으로 블루 파드로 다시 전환

 

Blue/Green시 고려해야 하는 요소

  1. 블루 그린에 CPU가 꼭 2배가 필요한 것은 아니다, Pod 기동시에는 이론상 200% 사용


    메모리의 경우 App 마다 무조건 할당하는 자원이므로 200% 사용된다.

  2. Blue-Green 배포를 고려한 Deployment 네이밍이 필요하다.


    Blue-green은 기존 배포와 나중 배포에 대한 상징적인 표현일 뿐, 배포를 할 때 마다 새 Deployment를 만들어야 한다.

  3. Blue-Green 배포를 위한 추가 Label 및 Selector가 필요하다.
    Label과 Selector가 동일하면 Green 배포와 동시에 Green에도 서비스가 연결된다.

 

Blue/Green 수동 배포 방법

  1. Green Deployment 생성, 테스트를 위한 Service 생성

  2. Service의 Selector의 Blue-green-no를 2로 변경하여 트래픽을 Green으로 전환

  3. Green에 문제가 없다면 Blue의 Deployment 삭제, Green의 테스트 Service 삭제, 모든 리소스의 레이블 정보를 변경(Version)
    Green에 문제가 있다면 Service의 Selector의 Blue-green-no를 1로 변경하여 트래픽을 Blue로 전환

 

4. Blue/Green 자동 배포 Script 만들기

kubectl create → 동일 리소스 존재시 충돌

kubectl apply → 동일 리소스 존재시 업데이트

kubectl patch → -p 옵션으로 특정 속성만 변경

 

imageimageimageBlue -> Green 트래픽 전환

 

kubectl get -n anotherclass-221 pods -l instance='api-tester-2214',blue-green-no='2' 그린의 파드 조회 명령

이번 강의의 Blue-green은 실무용은 아니다. 실무에서는 ArgoCD를 주로 사용한다.

 

 

 

 

 

 

 

 

 

 

댓글을 작성해보세요.

채널톡 아이콘