StatefulSet 생성
상태를 가지는 애플리케이션(데이터베이스 등)을 위한 StatefulSet을 생성합니다. StatefulSet은 안정적인 네트워크 ID와 영구 스토리지를 Pod에 제공합니다.
사전 조건
- Container 앱 접근 권한, 대상 Cluster가 Active 상태
- 배포 대상 Namespace 및 컨테이너 Image 준비
- 영구 스토리지가 필요하면 StorageClass 준비
왼쪽 끝의 클러스터 아이콘을 눌러 대상 Cluster 안으로 들어간 뒤 Workloads → StatefulSets 메뉴를 엽니다.
StatefulSet 목록 조회 및 생성 페이지 진입
생성된 StatefulSet이 목록으로 표시됩니다.

| 번호 | 기능 | 항목 | 설명 |
|---|---|---|---|
| 1-1 | 목록 컬럼 | Status / Name | 워크로드 상태와 이름입니다. |
| Namespace | 소속 Namespace입니다. | ||
| Image | 컨테이너 Image입니다. | ||
| Ready | 준비된 Pod 수와 전체 Pod 수입니다. | ||
| Created at | 생성 시각입니다. | ||
| Action | 행 메뉴로 수정·삭제 등을 수행합니다. |
'Create StatefulSet' 버튼을 클릭하면 폼(Create as Form) 또는 YAML 입력(Create as YAML) 중 방식을 선택할 수 있습니다.

Create StatefulSet: StatefulSet
리소스 고유 설정을 지정하는 첫 탭입니다. 상단의 Pod 탭과 컨테이너 탭(container-0)으로 전환하고, 우측 Summary의 Create로 생성합니다.

| 번호 | 기능 | 항목 | 설명 |
|---|---|---|---|
| 3-1 | Namespace | Namespace | · StatefulSet을 배포할 Namespace를 선택합니다. (필수) |
| 3-2 | Name | Name | · 고유한 StatefulSet 이름을 입력합니다. (필수) |
| 3-3 | Replicas | Replicas | · 실행할 Pod 복제본 수를 입력합니다. (필수) |
| 3-4 | Service name | Service name | · Pod에 안정적 네트워크 ID를 부여할 Headless Service를 선택합니다. (필수) |
| 3-5 | Selector labels | Selector labels | · Add Selector로 추가한 행에 Pod 선택용 Match Labels의 Key·Value를 입력합니다. (필수) |
Create StatefulSet: Pod
Pod 템플릿 수준 설정(종료·네트워크·스케줄링·리소스·보안·스토리지)을 섹션별로 지정합니다.

| 번호 | 기능 | 항목 | 설명 |
|---|---|---|---|
| 4-1 | Scaling and upgrade policy | Scaling and upgrade policy | · Termination Grace Period에 Pod 종료 유예 시간을 초 단위로 입력합니다. |
| 4-2 | Networking | Networking | · Network mode·DNS policy·Hostname 등 Pod 네트워크 설정입니다. |
Pod 템플릿 수준 설정(종료·네트워크·스케줄링·리소스·보안·스토리지)을 섹션별로 지정합니다.

| 번호 | 기능 | 항목 | 설명 |
|---|---|---|---|
| 5-1 | Node scheduling | Node scheduling | · Pod를 배치할 노드 선택(nodeSelector·affinity) 규칙입니다. |
| 5-2 | Pod scheduling | Pod scheduling | · Add Pod Selector로 추가한 그룹에서 Pod affinity 유형·우선순위·대상 Pod를 지정합니다. |
Pod 템플릿 수준 설정(종료·네트워크·스케줄링·리소스·보안·스토리지)을 섹션별로 지정합니다.

| 번호 | 기능 | 항목 | 설명 |
|---|---|---|---|
| 6-1 | Resources | Resources | · Pod 수준 리소스 관련 설정입니다. |
| 6-2 | Security context | Security context | · Pod Filesystem Group(fsGroup)을 지정합니다. |
| 6-3 | Storage | Storage | · Pod 수준 볼륨/스토리지 설정입니다. |
Create StatefulSet: Container
컨테이너의 이미지·네트워크·커맨드·환경변수·리소스 등 설정을 섹션별로 지정합니다.

| 번호 | 기능 | 항목 | 설명 |
|---|---|---|---|
| 7-1 | Image | Image | · Container Image·Pull Policy·Pull Secrets를 설정합니다. |
| 7-2 | Networking | Networking | · Add Port or Service로 추가한 행에 컨테이너가 노출할 Service 유형·포트를 입력합니다. |
컨테이너의 이미지·네트워크·커맨드·환경변수·리소스 등 설정을 섹션별로 지정합니다.

| 번호 | 기능 | 항목 | 설명 |
|---|---|---|---|
| 8-1 | Command | Command | · 컨테이너의 Command·Args를 재정의합니다. |
| 8-2 | Environment variables | Environment variables | · Add Variable로 추가한 행에 환경변수의 Key·Value를 입력합니다. |
| 8-3 | Service Account | Service Account | · 컨테이너가 사용할 Service Account를 지정합니다. |
컨테이너의 이미지·네트워크·커맨드·환경변수·리소스 등 설정을 섹션별로 지정합니다.

| 번호 | 기능 | 항목 | 설명 |
|---|---|---|---|
| 9-1 | Lifecycle hooks | Lifecycle hooks | · postStart·preStop 라이프사이클 훅을 설정합니다. |
| 9-2 | Resources | Resources | · CPU·메모리의 Reservation과 Limit을 설정합니다. |
컨테이너의 이미지·네트워크·커맨드·환경변수·리소스 등 설정을 섹션별로 지정합니다.

| 번호 | 기능 | 항목 | 설명 |
|---|---|---|---|
| 10-1 | Security context | Security context | · 컨테이너 보안 컨텍스트(권한·capabilities 등)입니다. |
| 10-2 | Health check | Health check | · Liveness·Readiness·Startup probe를 설정합니다. |
| 10-3 | Storage | Storage | · 볼륨 마운트 등 컨테이너 스토리지를 설정합니다. |
주요 입력 항목
- Service Name — 연결할 Headless Service 이름. 각 Pod에 고정 DNS(
pod-0.svc.namespace.svc.cluster.local)를 부여합니다. - Container Image — 예:
mysql:8.0. Port·CPU/Memory Request·Limit을 함께 지정할 수 있습니다. - Volume Claim Templates — 각 Pod에 독립 PVC를 자동 생성합니다.
| 항목 | 설명 | 예시 |
|---|---|---|
| Mount Path | 컨테이너 내 마운트 경로 | /var/lib/mysql |
| Storage Class | 스토리지 클래스 | standard |
| Access Mode | 접근 모드 | ReadWriteOnce |
| Capacity | 용량 | 10Gi |
비밀번호를 환경변수에 직접 입력하지 마세요
DB 비밀번호 등은 Secret을 생성하고 secretKeyRef로 참조하는 것을 권장합니다.
name-0 → name-1 순서로 기동되고, Volume Claim Templates를 설정한 경우 Pod마다 PVC가 자동 생성됩니다.