모음/[쿠버네티스 인 액션]

[쿠버네티스 인 액션] 10장.스테이트풀셋 (2)스테이트풀셋 이해하기, 피어 디스커버리, 스테이트풀셋 수동 삭제

ttoance 2024. 10. 24. 06:31

 

10.2 스테이트풀셋 이해하기 

1) 안정적인 네트워크 아이덴티티 제공하기 

- 스테이트풀셋으로 생성된 파드는 서수 인덱스(0부터 시작)가 할당되고 파드의 이름과 호스트 이름, 안정적인 스토리지를 붙이는 데 사용된다.

 

- 거버닝 서비스 

ㄴ 그룹의 특정 파드에서 동작하기를 원하는데 이런 이유로 스테이트풀셋은 거버닝 헤드리스 서비스를 생성해서 각 파드에게 실제 네트워크 아이덴티티를 제공해야 한다.  

 

- 스테이트풀셋 교체하기 

 

- 스테이트풀셋 스케줄링 

ㄴ 스케일링하면 사용하지 않는 다음 인덱스를 갖는 파드 인스턴스를 생성, 반대로 다운해도 동일한다. 

ㄴ 이 부분이 레플리카셋과 대조적이다. 

ㄴ 1) 한 시점에 하나의 파드 인스턴스만 스케일 다운 (데이터 손실 방지), 2) 하나라도 비정상적인 경우 스케일 다운 작업 허용하지 않음 

이라는 특징이 있다. 

 

2) 각 스테이트풀 인스턴스에 안정적인 전용 스토리지 제공하기 

- 스테이트풀셋은 각 파드와 함께하는 퍼시스턴트볼륨크레임을 복제하는 하나 이상의 볼륨 클레임 템플릿을 가질 수 있다. 

 

 

10.3 스테이트풀셋의 피어 디스커버리(클러스터의 다른 멤버를 찾는 기능) 

1) SVR 레코드의 소개 

- 특정 서비스를 제공하는 서버의 호스트 이름과 포트를 가리키는데 사용 

- 아래 명령어는 새 임시 파드(srclookup) 내부에서 dns 룩업 실행해서 srv레코드 조회하는 것 

ㄴ 일회용 파드 (restart=Never) 종료되자마자 바로 삭제 -rm 

kubectl run -it srvlookup --image=tutum/dnsutils -rm
--restart=Never -dig SRV kubia.default.svc.cluster.local

=> 파드가 스테이프풀셋의 다른 모든 파드의 목록을 가져오려면 SRV DNS 룩업을 수행하면 된다. 

 

2) 스테이트풀셋 업데이트 

kubectl edit statefulset kubia

 

 

10.4 수동으로 파드 삭제하기 

kubectl delete po kubia-0 
# api 서버에게 더이상 실행중이지 않은 것을 알려줘야 하지만 네트워크 담당인 컨트롤 플레인을 먼저 삭제하므로 안됨 

kubectl delete po kubia-0 --force --grace-period 0 
# api 서버에게 더이상 실행중인것 확인하지 않고 파드 삭제하도록 알리는 것

 

 

반응형