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 서버에게 더이상 실행중인것 확인하지 않고 파드 삭제하도록 알리는 것
반응형
'스터디 > [쿠버네티스 인 액션] (2024.8)' 카테고리의 다른 글
[쿠버네티스 인 액션] 10장.스테이트풀셋 (1) 스테이트풀셋이 나오게 된 배경 (0) | 2024.10.22 |
---|---|
[쿠버네티스 인 액션] 9장. 디플로이먼트 : 선언적 애플리케이션 업데이트 - 디플로이먼트 (2) | 2024.10.20 |
[쿠버네티스 인 액션] 9장. 디플로이먼트 : 선언적 애플리케이션 업데이트 - 롤링업데이트 (0) | 2024.10.19 |
[쿠버네티스 인 액션] 8장. 앰베서더 컨테이너, 쿠버네티스 API client (0) | 2024.10.10 |
[쿠버네티스 인 액션] 8장. 애플리케이션 파드 메타데이터와 그 외의 리소스에 엑세스하기 (6) | 2024.10.09 |