17장. StatefulSet [apps/v1]
- 설명
StatefulSet은 일관된 ID가 있는 Pod 세트를 나타냅니다. ID는 다음과 같이 정의됩니다. - 네트워크: 단일 안정적인 DNS 및 호스트 이름. - 스토리지: 요청된 만큼 많은 VolumeClaims입니다.
StatefulSet은 지정된 네트워크 ID가 항상 동일한 스토리지 ID에 매핑되도록 합니다.
- 유형
-
object
17.1. 사양
속성 | 유형 | 설명 |
---|---|---|
|
| APIVersion은 버전이 지정된 이 오브젝트 표현의 스키마를 정의합니다. 서버는 인식된 스키마를 최신 내부 값으로 변환해야 하며, 인식되지 않는 값을 거부할 수 있습니다. 자세한 내용은 https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |
|
| kind는 이 오브젝트가 나타내는 REST 리소스에 해당하는 문자열 값입니다. 서버는 클라이언트에서 요청을 제출한 끝점에서 이를 유추할 수 있습니다. CamelCase로 업데이트할 수 없습니다. 자세한 내용은 https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
| 표준 오브젝트의 메타데이터입니다. 자세한 내용은 https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata | |
|
| StatefulSetSpec은 StatefulSet의 사양입니다. |
|
| StatefulSetStatus는 StatefulSet의 현재 상태를 나타냅니다. |
17.1.1. .spec
- 설명
- StatefulSetSpec은 StatefulSet의 사양입니다.
- 유형
-
object
- 필수 항목
-
선택기
-
템플릿
-
serviceName
-
속성 | 유형 | 설명 |
---|---|---|
|
| 새로 생성된 Pod를 사용할 수 있는 컨테이너 충돌 없이 준비해야 하는 최소 시간(초)입니다. 기본값은 0입니다 (pod는 준비되는 즉시 사용 가능한 것으로 간주됨) |
|
| StatefulSetOrdinals는 이 StatefulSet의 복제본 ordinal 할당에 사용되는 정책을 설명합니다. |
|
| StatefulSetPersistentVolumeClaimRetentionPolicy는 StatefulSet VolumeClaimTemplates에서 생성된 PVC에 사용되는 정책을 설명합니다. |
|
|
podManagementPolicy는 초기 확장 중에 포드를 생성하는 방법, 노드에서 Pod를 교체할 때 또는 축소할 때 제어합니다. 기본 정책은
가능한 enum 값: - |
|
| replicas는 지정된 템플릿의 원하는 복제본 수입니다. 이러한 복제본은 동일한 템플릿을 인스턴스화한다는 점에서 복제본이지만 개별 복제본에는 일관된 ID도 있습니다. 지정되지 않은 경우 기본값은 1입니다. |
|
| revisionHistoryLimit은 StatefulSet의 버전 기록에서 유지 관리할 최대 버전 수입니다. 개정 내역은 현재 적용된 StatefulSetSpec 버전으로 표시되지 않는 모든 버전으로 구성됩니다. 기본값은 10입니다. |
| selector는 복제본 수와 일치해야 하는 Pod의 레이블 쿼리입니다. Pod 템플릿의 레이블과 일치해야 합니다. 자세한 내용은 https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors | |
|
| ServiceName은 이 StatefulSet을 관리하는 서비스의 이름입니다. 이 서비스는 StatefulSet 앞에 있어야 하며 세트의 네트워크 ID를 담당합니다. Pod는 statefulSet 컨트롤러에서 "pod-specific-string-string"을 관리하는 pod-specific-string.serviceName.default.svc.cluster.local 패턴을 따르는 DNS/호스트를 가져옵니다. |
| 템플릿은 충분하지 않은 복제본이 감지되면 생성되는 Pod를 설명하는 오브젝트입니다. StatefulSet에서 샘플링된 각 pod는 이 템플릿을 수행하지만 StatefulSet의 나머지 부분에서 고유한 ID가 있습니다. 각 Pod의 이름은 <statefulsetname>-<podindex> 형식으로 지정됩니다. 예를 들어 인덱스 번호가 "3"인 StatefulSet의 Pod의 이름은 "web-3"입니다. 허용된 유일한 template.spec.restartPolicy 값은 "항상"입니다. | |
|
| StatefulSetUpdateStrategy는 StatefulSet 컨트롤러가 업데이트를 수행하는 데 사용할 전략을 나타냅니다. 지정된 전략에 대한 업데이트를 수행하는 데 필요한 추가 매개변수가 포함되어 있습니다. |
| VolumeClaimTemplates는 Pod가 참조할 수 있는 클레임 목록입니다. StatefulSet 컨트롤러는 Pod의 ID를 유지 관리하는 방식으로 네트워크 ID를 클레임에 매핑합니다. 이 목록의 모든 클레임에는 템플릿의 하나의 컨테이너에 일치하는 (이름별) volumeMount가 하나 이상 있어야 합니다. 이 목록의 클레임은 템플릿의 모든 볼륨보다 우선하며 이름이 같습니다. |
17.1.2. .spec.ordinals
- 설명
- StatefulSetOrdinals는 이 StatefulSet의 복제본 ordinal 할당에 사용되는 정책을 설명합니다.
- 유형
-
object
속성 | 유형 | 설명 |
---|---|---|
|
| start는 첫 번째 복제본의 인덱스를 나타내는 숫자입니다. 기본 0 인덱스 이름에 대해 대체 인덱스(예: 1 인덱싱됨)의 복제본 수를 늘리거나 하나의 StatefulSet에서 다른 상태로 복제본의 점진적 이동을 오케스트레이션하는 데 사용할 수 있습니다. 설정된 경우 복제본 인덱스는 [.spec.ordinals.start, .spec.ordinals.start + .spec.replicas) 범위에 있습니다. 설정되지 않은 경우 기본값은 0입니다. 복제본 인덱스는 [0, .spec.replicas) 범위에 있습니다. |
17.1.3. .spec.persistentVolumeClaimRetentionPolicy
- 설명
- StatefulSetPersistentVolumeClaimRetentionPolicy는 StatefulSet VolumeClaimTemplates에서 생성된 PVC에 사용되는 정책을 설명합니다.
- 유형
-
object
속성 | 유형 | 설명 |
---|---|---|
|
|
WhenDeleted는 StatefulSet VolumeClaimTemplates를 삭제할 때 StatefulSet VolumeClaimTemplates에서 생성된 PVC에 어떤 일이 발생하는지 지정합니다. |
|
|
WhenScaled StatefulSet VolumeClaimTemplates 상태 저장 설정이 축소될 때 PVC에 발생하는 작업을 지정합니다. |
17.1.4. .spec.updateStrategy
- 설명
- StatefulSetUpdateStrategy는 StatefulSet 컨트롤러가 업데이트를 수행하는 데 사용할 전략을 나타냅니다. 지정된 전략에 대한 업데이트를 수행하는 데 필요한 추가 매개변수가 포함되어 있습니다.
- 유형
-
object
속성 | 유형 | 설명 |
---|---|---|
|
| RollingUpdateStatefulSetStrategy는 RollingUpdateStatefulSetStrategyType의 매개변수를 전달하는 데 사용됩니다. |
|
| type은 StatefulSetUpdateStrategy 유형을 나타냅니다. 기본값은 RollingUpdate입니다.
가능한 enum 값: - |
17.1.5. .spec.updateStrategy.rollingUpdate
- 설명
- RollingUpdateStatefulSetStrategy는 RollingUpdateStatefulSetStrategyType의 매개변수를 전달하는 데 사용됩니다.
- 유형
-
object
속성 | 유형 | 설명 |
---|---|---|
| 업데이트 중에 사용할 수 없는 최대 Pod 수입니다. 값은 절대 숫자(예: 5) 또는 원하는 Pod의 백분율(예: 10%)일 수 있습니다. 절대 수는 백분율로 반올림하여 계산됩니다. 이 값은 0이 될 수 없습니다. 기본값은 1입니다. 이 필드는 알파 수준이며 MaxUnavailableStatefulSet 기능을 활성화하는 서버에서만 적용됩니다. 이 필드는 0~Replicas-1 범위의 모든 Pod에 적용됩니다. 즉, 0에서 Replicas-1 사이의 범위에 사용할 수 없는 Pod가 있는 경우 MaxUnavailable으로 계산됩니다. | |
|
| partition은 업데이트를 위해 StatefulSet을 분할해야 하는 ordinal을 나타냅니다. 롤링 업데이트 중에 ordinal Replicas-1에서 Partition으로 모든 Pod가 업데이트됩니다. ordinal Partition-1에서 0으로의 모든 Pod는 변경되지 않은 상태로 유지됩니다. 이 기능은 카나리아 기반 배포를 수행할 수 있는 데 유용합니다. 기본값은 0입니다. |
17.1.6. .status
- 설명
- StatefulSetStatus는 StatefulSet의 현재 상태를 나타냅니다.
- 유형
-
object
- 필수 항목
-
replicas
-
속성 | 유형 | 설명 |
---|---|---|
|
| 이 statefulset에서 대상으로 하는 사용 가능한 총 Pod 수(최소 minReadySeconds) 수입니다. |
|
| collisionCount는 StatefulSet의 해시 충돌 수입니다. StatefulSet 컨트롤러는 최신 ControllerRevision의 이름을 생성해야 하는 경우 이 필드를 충돌 방지 메커니즘으로 사용합니다. |
|
| 상태 저장 세트의 현재 상태에 대한 사용 가능한 최신 관찰을 나타냅니다. |
|
| StatefulSetCondition은 특정 시점에서 상태 저장 설정 상태를 설명합니다. |
|
| currentReplicas는 currentRevision으로 표시된 StatefulSet 버전에서 StatefulSet 컨트롤러에서 생성한 Pod 수입니다. |
|
| currentRevision은 비어 있지 않은 경우 [0,currentReplicas) 순서로 Pod를 생성하는 데 사용되는 StatefulSet 버전을 나타냅니다. |
|
| observedGeneration은 이 StatefulSet에서 관찰되는 최신 세대입니다. StatefulSet의 생성은 API 서버에서 변경 시 업데이트되는 StatefulSet의 생성에 해당합니다. |
|
| readyReplicas는 Ready Condition을 사용하여 이 StatefulSet에 대해 생성된 Pod 수입니다. |
|
| replicas는 StatefulSet 컨트롤러에서 생성한 Pod 수입니다. |
|
| updateRevision은 비어 있지 않은 경우 [replicas-updatedReplicas,replicas) 순서로 포드를 생성하는 데 사용되는 StatefulSet 버전을 나타냅니다. |
|
| updatedReplicas는 updateRevision으로 표시된 StatefulSet 버전에서 StatefulSet 컨트롤러에서 생성한 Pod 수입니다. |
17.1.7. .status.conditions
- 설명
- 상태 저장 세트의 현재 상태에 대한 사용 가능한 최신 관찰을 나타냅니다.
- 유형
-
array
17.1.8. .status.conditions[]
- 설명
- StatefulSetCondition은 특정 시점에서 상태 저장 설정 상태를 설명합니다.
- 유형
-
object
- 필수 항목
-
type
-
status
-
속성 | 유형 | 설명 |
---|---|---|
| 조건이 한 상태에서 다른 상태로 전환된 마지막 시간입니다. | |
|
| 전환에 대한 세부 정보를 나타내는 사람이 읽을 수 있는 메시지입니다. |
|
| 조건의 마지막 전환 이유는 다음과 같습니다. |
|
| 조건의 상태, True, False, 알 수 없음. |
|
| 상태 저장 설정 조건의 유형입니다. |