inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

쿠버네티스 어나더 클래스-Sprint 1, 2 (#실무기초 #설치 #배포 #Jenkins #Helm #ArgoCD)

📝 Blue/Green 배포시 고려해야할 요소

배포 관련 질문

129

소니소니

작성한 질문수 23

1

안녕하세요. 일프로님 질문이 있습니다.

1. Blue Green 배포시 가장 대표적인 단점이 서버 리소스(CPU, Memory)를 2배로 사용하는 것으로 알려져 있습니다. 여기서 제가 이해한바로는 cpu는 그대로고 메모리는 교체하는 짧은 시점에만 2배가 되는것으로 이해했는데 맞을까요? 그리고 이 문제가 중요한 이슈인 점은 blue green 배포를 사용하면 항상 워커 노드들에는 여유분의 메모리를 상비해둬야해서일까요??


2.혹시 애플리케이션 기동 중 문제(ex yaml 파일 오류)가 발생하면 어떻게하나요? 예를 들어서 Blue Green 배포시, 기존 blue에서 green으로 교체하려하는데 green에 속한 pod들이 기동에 실패해버리고 green 버전으로 트래픽이 옮겨지면 결국 서비스를 이용 못할거 같습니다. rolling도 마찬가지입니다.

감사합니다

kubernetes infrastructure container

답변 2

0

일프로

  1. CPU는 사용률이 적은 시점엔 꼭 두 배가 필요한 건 아니지만 Memory의 경우 현재 사용률과는 별개로 App에서 점유하고 있는 부분이 있기 때문에 대체로 교체시 두배가 사용됩니다. 그리고 Blue Green 배포시 새 Pod가 먼저 생긴 후에 기존 Pod가 죽기 때문에 여유 자원이 꼭 필요하고요.

  2. 배포시 Green Pod가 성공적으로 생성 되어야, 기존 Blue Pod가 삭제 됩니다. Green Pod에 에러가 생기면 기존 Blue Pod는 계속 서비스 중인 상태로 남아 있어요. rolling도 마찬가지고요. 그리고 만약 yaml 파일에 문법 오류가 있는 상태에서 배포를 하면 에러기 때문에 업그레이드가 시작되지 않고요. 실습 한번 해보시면 더 쉽게 이해가 될 거예요.

     

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. 소니소니님께서 Blue-Green 배포 및 애플리케이션 기동 중 발생하는 문제들에 대해 질문을 주셨습니다. 이와 관련하여 유사한 내용이 담긴 링크와 함께 몇 가지 참고할만한 자료를 제공해드리겠습니다.

  1. Blue-Green 배포에서의 리소스 사용 문제:

    • Blue-Green 배포의 주요 단점 중 하나는 리소스 사용이 증가할 수 있다는 점입니다. 일반적으로, 두 가지 버전의 어플리케이션이 동시에 실행되기 때문에 전체적으로 CPU와 메모리 사용량이 커질 수 있습니다. 특히, 새로운 버전을 실행하기 전까지 두 버전을 유지해야 하기 때문에 메모리의 사용이 증가합니다.
    • 이 문제는 리소스 관리가 중요한 이유 중 하나입니다. 워커 노드에는 항상 여유분의 리소스를 준비해야 하기 때문입니다. 이에 대한 자세한 논의는 블루그린 배포시엔 다플로이먼트를 이용하지 않는 이유 를 참고하시면 도움이 될 것입니다.
  2. 애플리케이션 기동 중 문제:

    • 새로운 버전에 문제가 발생할 경우, Blue-Green 배포에서는 Green 버전의 pod가 완전히 정상적으로 기동되지 않았다면 트래픽을 전환하지 않는 방식을 사용하게 됩니다. Kubernetes에서는 헬스체크(Health Check)를 사용하여 Pod의 상태를 감시할 수 있으며, 헬스체크를 통과하지 못할 경우 업데이트를 보류할 수 있습니다.
    • 따라서, Blue-Green이나 Rolling 배포 전략에서는 Pod의 헬스체크를 확인하도록 설정하는 것이 중요합니다. 이러한 설정은 주로 readinessProbe와 livenessProbe 설정을 통해 가능합니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

젠킨스버전과 플러그인설치

1

35

2

강의자료 원본 애니메이션처리가 되어 있을까요?

1

87

1

get pods 했을 때 connection refused가 뜹니다.

1

92

3

베이그란트 플러그인 설치 실패

1

86

1

실습겸 미니pc사보려는데 이정도면 괜찮을까요?

0

95

2

Image updater 1.0 이후 CRD 기반 변경 시 적용 방법 공유합니다.

1

85

1

기본 values 파일과 service name에 대한 질문이 있습니다.

0

73

2

Sprint 2 강의에서 yaml 파일들 경로에 대해 궁금한게 있어요.

1

64

2

Selector의 속성에 대해 질문 드립니다.

1

60

1

인스턴스 스펙

1

70

2

Container 기술 관련해서 질문드립니다.

1

84

3

Jenkins 빌드 UI 설정 관련 질문드립니다.

1

86

3

Jenkins 빌드 진행 UI 설정

0

70

1

cicd 서버 올린 후 기존 마스터 노드 기동 시 네트워크 에러

1

80

2

HPA - Auto Scaling 실습 관련 에러 해결 공유.

1

66

1

Loki-Stack 실습 관련 질문

1

74

2

Self-Healing 테스트 중 문의사항

1

73

2

영상 내용과 강의 자료가 상이해서 강의 듣기가 짜증납니다.

0

108

2

젠킨스 구축 9단계 오류

1

89

3

실습환경 네트워크 끊김 및 느린 속도 관련 질문

1

86

2

온프레미스 환경에 쿠버네티스도입

1

102

1

SealedSecret 관련 궁금증.

1

53

1

vagrant up 사용 시 The SSH connection was unexpectedly closed by the remote end

1

90

2

젠킨스 배포 질문

1

60

2