반응형
Statefulset 이란?
- Pod의 상태를 유지해주는 컨트롤러
- Pod의 이름
- Pod의 볼륨 (스토리지)
Statefulset의 예를 들기 위해 ReplicationController를 생성했다. (replica : 3)
apiVersion: v1
kind: ReplicationController
metadata:
name: rc-nginx
spec:
replicas: 3
selector:
app: webui
template:
metadata:
name: nginx-pod
labels:
app: webui
spec:
containers:
- name: nginx-container
image: nginx:1.14
~
<replicationController.yaml 파일의 내용>
위의 그림에서 파랑색 네모칸으로 체크한 것은 파일 내에서 선언한 rc-nginx의 공통값으로 들어가는 것이다. 뒤의 빨강색 네모박스는 내가 선언한 것이 아닌. 쿠버네티스가 만들어내는 해시 값이다. (Pod의 이름이 보장되지 않는다.)
Statefulset 파일 생성 및 Statefulset으로 파드 생성 실습.
Statefulset과 ReplicaSet 파일의 차이점.
apiVersion: v1
kind: StatefulSet
metadata:
name: sf-nginx
spec:
replicas: 3
serviceName: sf-nginx-service
selector:
matchLabels:
app: webui
template:
metadata:
name: nginx-pod
labels:
app: webui
spec:
containers:
- name: nginx-container
image: nginx:1.14
<statefulset.yaml 파일 내용>
statefulset으로 컨트롤러 생성확인.
Statefulset으로 생성한 파드들이 내가 지정한 sf-nginx 다음으로 순서대로 숫자를 매긴채로 생성된 것을 확인할 수 있다.
스케일 아웃/인 해보기
스케일 아웃
kubectl scale statefulset [metadata-name] --replicas=4
3이 추가된것을 확인 할 수 있다.
스케일 인으로 replicas의 갯수를 2로 줄여보자
스케일 인
kubectl scale statefulset [metadata-name] --replicas=2
3,2 번이 종료된것을 확인 할 수 있다. 이렇게 Pod의 이름을 유지 해주는 것을 Statefulset Controller라고 한다.
반응형
'Kubernetes' 카테고리의 다른 글
쿠버네티스 - Ingress (0) | 2021.07.20 |
---|---|
쿠버네티스 - Service (0) | 2021.07.19 |
쿠버네티스 - Daemonset (0) | 2021.07.18 |
쿠버네티스 - Deployment (0) | 2021.07.17 |
쿠버네티스 - Replicaset (0) | 2021.07.17 |