갬미의 성장일기

[Kubernetes] Statefulset 관련 자료 본문

기타/로그

[Kubernetes] Statefulset 관련 자료

갬미 2022. 4. 5. 00:00

오늘 statefulset 을 활용하여 실습을 하다가 왜 svc 명을 맞춰줘야하는지 어느때 statefulset을 쓰는지 궁금했는데 아주 잘 정리 된 자료를 찾게 되어 기록한다

 

https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=isc0304&logNo=221885403537 

 

쿠버네티스 스테이트풀셋

이 포스트의 실습은 GCP의 쿠버네티스 v1.14.10-gke.27버전을 사용해 진행했으며 다음 문서를 참고해서 ...

blog.naver.com

 

--> 스테이트풀셋의 포드 네트워크 ID를 유지하려면 헤드레스 서비스를 작성해야한다 

따라서 스테이트풀셋의 yml 파일에 헤드리스 svc를 명시해야 한다

 

 

https://bcho.tistory.com/1306

 

쿠버네티스 #22 - StatefulSet을 이용한 상태유지 Pod (데이타베이스) 관리하기 1/2

StatefulSet을 이용하여 상태가 유지되는 Pod 관리하기 조대협 (http://bcho.tistory.com) ReplicaSet으로 Stateful Pod 관리하기 앞에서 쿠버네티스의 Pod를 관리하기 위한 여러가지 컨트롤러 (Replica Set, Repl..

bcho.tistory.com

개별 Pod에 대한 디스크 볼륨 관리

- RS 기반의 디스크 볼륨 관리의 문제는 하나의 컨트롤러로 여러개의 Pod에 대한 디스크를 각각 지정해서 관리할 수 없는 문제가 있었는데, StatefulSet의 경우 PVC (Persistent Volume Claim)을 템플릿 형태로 정의하여, Pod 마다 각각 PVC와 PV를 생성하여 관리할 수 있도록 한다.

 

StatefulSet에 의해 관리되는 Pod가 장애로 인하거나 스케일링 (In/out)으로 인해서 Pod의 수가 늘거나 줄면 그에 연결되는 디스크 볼륨은 어떻게 될까?

 

예를 들어 아래 그림과 같이 Pod-1,2,3 이 기동되고 있고, 이 Pod들은 StatefulSet에 의해서 관리되고 있다고 가정하자. Pod들은 각각 디스크 볼륨 PV-1,2,3 을 마운트해서 사용하고 있다고 하자.

 

 

이때, Pod-3가 스케일인이 되서, 없어지게 되면, Pod는 없어지지면, 디스크 볼륨을 관리하기 위한 PVC-3는 유지 된다. 이는 Pod 가 비정상적으로 종료되었을때 디스크 볼륨의 내용을 유실 없이 유지할 수 있게 해주고, 오토 스케일링이나 메뉴얼로 Pod를 삭제했을때도 동일하게 디스크 볼륨의 내용을 유지하도록 해준다.

 

 

그러면 없앴던 Pod가 다시 생성되면 어떻게 될까? Pod가 다시 생성되면, Pod 순서에 맞는 번호로 다시 생성이 되고, 그 번호에 맞는 PVC 볼륨이 그대로 붙게 되서, 다시 Pod 가 생성되어도 기존의 디스크 볼륨을 그대로 유지할 수 있다.

 

Comments