
쿠버네티스 어나더 클래스 지상편: Sprint2 Day13 Jenkins Pipeline
0. New view 만들기
1. Jenkins Pipeline 기본 구성 만들기 (Step 1)
오류가 발생해 자세한 로그을 보니 파이프라인은 성공적으로 실행됐다...
2. Github 연결 및 파이프라인 세분화
폴더의 스크립트 파일 이름이 Jenkinsfile이다.
3. Blue/Green 배포 만들기 및 특징 실습
Blue 버전으로 계속 호출하는 중
그린 파드로 호출
롤백 버튼으로 블루 파드로 다시 전환
Blue/Green시 고려해야 하는 요소
블루 그린에 CPU가 꼭 2배가 필요한 것은 아니다, Pod 기동시에는 이론상 200% 사용
메모리의 경우 App 마다 무조건 할당하는 자원이므로 200% 사용된다.Blue-Green 배포를 고려한 Deployment 네이밍이 필요하다.
Blue-green은 기존 배포와 나중 배포에 대한 상징적인 표현일 뿐, 배포를 할 때 마다 새 Deployment를 만들어야 한다.Blue-Green 배포를 위한 추가 Label 및 Selector가 필요하다.
Label과 Selector가 동일하면 Green 배포와 동시에 Green에도 서비스가 연결된다.
Blue/Green 수동 배포 방법
Green Deployment 생성, 테스트를 위한 Service 생성
Service의 Selector의 Blue-green-no를 2로 변경하여 트래픽을 Green으로 전환
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 옵션으로 특정 속성만 변경
Blue -> Green 트래픽 전환
kubectl get -n anotherclass-221 pods -l instance='api-tester-2214',blue-green-no='2' 그린의 파드 조회 명령
이번 강의의 Blue-green은 실무용은 아니다. 실무에서는 ArgoCD를 주로 사용한다.
댓글을 작성해보세요.