inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

쉽게 시작하는 쿠버네티스(v1.35)

6.2.쿠버네티스 버전 업그레이드-v1.25

실제 쿠버네티스 버전 업그레이드는 어떻게 이루어지나요?

669

Mx

작성한 질문수 2

1

본 강의에서는 쿠버네티스 버전 업그레이드를 할 때 각 워커 노드에서 수동으로 업그레이드를 진행했는데 실제 개발 환경에서는 이런 식으로 업그레이드를 진행하지 않을 거 같다는 생각이 들었습니다. 실제 환경에서 가동되는 워커 노드는 수없이 많으니까요.

물론 기업마다 팀마다 차이가 있을 거 같지만, 실제 개발 환경에서 쿠버네티스를 업그레이드할 때 워커 노드는 어떻게 업그레이드를 할까요? 강사님의 경험에서 우러나온 답변도 환영합니다 :)

docker kubernetes

답변 1

2

조훈(Hoon Jo)

안녕하세요 

좋은 질문 감사합니다. 

실제 쿠버네티스...라고 한다면 설명했던 것처럼 크게 3가지가 있으나, 구성형은 설치형과 유사하니 두개를 묶도록 하겠습니다. 

 

따라서 클라우드 / 온프레미스 형태로 나누어지게 되는데요. 

클라우드는 업그레이드 하면 rolling update를 worker 노드마다 걸어서 하게 됩니다.

따라서 서비스가 흔들릴 수 있습니다. 

온프레미스는 클라우드의 과정을 사용자가 직접해준다는 차이가 있으나 worker 노드마다 진행되는 것은 동일합니다.

 

실제 개발 환경 또는 실제 k8s 환경이라고 부르는 환경에 worker 노드가 수 없이 많게 구성할지 Cluster(Context) 별로 쪼개서 구성할지는 전략에 따라 좀 다르지만...어쨌든 worker 노드는 직접 업데이트합니다. 

 

이제 질문으로 들어가 보겠습니다. 

본 강의에서는 쿠버네티스 버전 업그레이드를 할 때 각 워커 노드에서 수동으로 업그레이드를 진행했는데 실제 개발 환경에서는 이런 식으로 업그레이드를 진행하지 않을 거 같다는 생각이 들었습니다. 실제 환경에서 가동되는 워커 노드는 수없이 많으니까요.

물론 기업마다 팀마다 차이가 있을 거 같지만, 실제 개발 환경에서 쿠버네티스를 업그레이드할 때 워커 노드는 어떻게 업그레이드를 할까요? 강사님의 경험에서 우러나온 답변도 환영합니다 :)

 

아마도 Worker 노드가 많은데 이걸 일일히 한다고? 자동으로 해야 하는거 아니야? 라고 생각하실 수 있습니다. 그리고 자동으로 하는건 어렵지 않습니다. 엄밀히 따지면 거의 모든 자동이 반자동이긴 한데....

Ansible등의 관리 도구나 bash+ssh 명령이나 python등에서 paramiko를 쓰거나 등등으로 원격지에 있는 설정을 바꾸고 다시 기동해 주면 됩니다. 

그런데 문제는 위에 업그레이드 중에 서비스가 흔들릴 수 있다 라는 부분이 더 큰 고려점이 됩니다. 

그래서 업그레이드 자체를 A/B, Canary, Blue-Green 등을 방법론을 동원해서 순차적으로 진행합니다. 

(참고로 이 책의 젠킨스 부분에 Blue-Green 실습이 있습니다.)

이를 위해서 구동 중인 앱을 빠르게 이전하기 위한 방법 중에 하나로 나중에 배울 Readiness probe를 사용해서 앱을 죽이지 않고 endpoints만 잠시 중단하기도 합니다. 

 

정리하자면

다수의 워커 노드를 한 콘솔(또는 시스템)에서 뿌리는 방식으로 업그레이드하는건 어렵지 않습니다. 근데 프로덕션이라면 사이드이펙트가 너무 큽니다. 그래서 순차적으로 또는 메인터넌스 시간을 잡고 천천히 합니다. 

 

답변이 되셨기를 바랍니다. 

조훈 드림. 

 

 

 

 

환경 설정에 대하여

0

74

2

실습 환경 관련 질의

0

70

2

ch4 디렉토리

0

110

2

cp-k8s-1.30.0(github_SysNet4Admin).ova 파일 확인 부탁드립니다.

0

79

2

6.2 nfs_exporter Permission denied

0

89

2

12분 13초부터의 내용 질문

0

85

1

K8S https 로 try 하는 부분에 대한 Error 확인

0

92

1

deployment 관련 문의

0

101

3

kubectl get nodes 관련 문의

0

221

5

Vagrant 도 에러, OVA도 에러... 실습환경을 만드는게 너무 힘들어요~~~~~!!!!!!

0

124

3

Tabby를 설치후 Copy할때 오류

0

99

3

nginx run 시 ImagePullBackOff 발생

0

114

4

쿠버네티스 환경 구축 질문입니다.

0

119

2

virtualbox 설치 실패

1

132

2

2.4강 brew install 시 .rb 파일 미인식 (./virtualbox-v7.1.10/virtualbox.rb)

1

171

2

워커노드 OS SWAP 질문

0

64

1

2.4.베이그런트(Vagrant)+버추얼박스/vagrant up issue

0

143

2

k run chk-info --image=sysnet4admin/chk-info 에러..

0

112

2

vagrant up 시에 Running pre-flight checks 에서 에러

0

94

2

failed to pull and unpack image \"registry.k8s.io/kube-apiserver:v1.30.14\": context canceled"

0

198

2

vagrant up을 하면 설정과 다르게 설정이 됩니다.

0

130

2

Tabby 무응답

0

141

4

ova 입력시

0

173

3

vagrant up

0

167

2