본문 바로가기
반응형

 

1. 스테이트풀셋

 

레플리카셋 같은 복제본을 가지고 있는 컨트롤러는 복제본을 생성할 때 파드의 이름과 IP주소를 제외하고는 동일한 파드를 생성하게 됩니다. 만일 PVC를 참조하게 된다면, 모든 파드가 같은 PVC와 연결되고, PVC1:1연결되어있는 PV와 여러 파드가 연결되게 될 것입니다. 이런 문제점을 해결하기 위해 스테이트풀셋이 등장하였습니다.

레플리카셋과 같이 상태를 저장하지않는 stateless 형태파드의 정보가 전부 똑같을 필요는 없습니다. 파드의 이름과 IP는 변경되어도 레플리카셋 복제본을 유지하는데 문제가 안되기 때문입니다. 그렇기에 파드가 죽거나 장애가 발생하면 다른파드로 교체를 하면 됩니다. (여기서 상태란 식별자, 지속적인 데이터, 의존성등을 의미합니다.)

반면 스테이트풀셋의 파드는 파드가 죽으면 다른파드로 대충 대체가 불가능합니다. 대체하기 위해서는 기존의 파드와 완벽하게 똑같은 파드, 즉 이름과 IP까지 똑같은 파드로 대체해야 합니다. 크게보면 컨테이너 애플리케이션 상태를 관리하는 다른 컨트롤러와 비슷하지만 파드의 순서나 고유성, 고유한볼륨을 가지고 있는것이 특징입니다. 이런 고유성을 가지고있기때문에 서비스 또한 앞에서 살펴 본 서비스와 다른 헤드리스 서비스를 이용합니다. 헤드리스 서비스는 파드 자체를 노출시키는 방식인데, 이로인해 파드의 고유한 네트워크 신원을 제공받게 됩니다. 이전 서비스를 이용하였던 이유는 파드가 고유한 IP를 가질 수 없어 서비스를 거쳐 네트워크를 제공받았었는데, 고유성이 특징힌 스테이트풀셋이기 때문에 다른 서비스가 아닌 헤드리스 서비스를 이용합니다.

파드의 순서도 지켜져야 하기때문에, 만약 3개의복제본이 있는 스테이트풀셋의 경우 0 번이 생성되고 1, 그다음 2번순으로 인덱스가 매겨져가며 생성되며 복제본을 1개로 스케일링하게된다면 2, 1번이 차례로 삭제됩니다. 또한 PV, PVC 로만 볼륨 생성가능합니다.

이런 스테이트풀셋은 주로 그림의 예시와같이 mysql등의 DB 시스템에 주로 사용됩니다.

728x90
반응형

'IT 공부 > PaaS' 카테고리의 다른 글

[K8S] MetalLB 설치  (0) 2024.02.20
[K8S] 9. AutoScaling & Scheduler  (0) 2024.01.22
[K8S] 7. Deployment  (0) 2024.01.19
[K8S] 6. ConfigMap, Secret  (0) 2024.01.19
[K8S] 5. Storage  (1) 2024.01.17

한걸음 한걸음

개인적인 기록