17장. StatefulSet [apps/v1]


설명

StatefulSet은 일관된 ID가 있는 Pod 세트를 나타냅니다. ID는 다음과 같이 정의됩니다. - 네트워크: 단일 안정적인 DNS 및 호스트 이름. - 스토리지: 요청된 만큼 많은 VolumeClaims입니다.

StatefulSet은 지정된 네트워크 ID가 항상 동일한 스토리지 ID에 매핑되도록 합니다.

유형
object

17.1. 사양

속성유형설명

apiVersion

string

APIVersion은 버전이 지정된 이 오브젝트 표현의 스키마를 정의합니다. 서버는 인식된 스키마를 최신 내부 값으로 변환해야 하며, 인식되지 않는 값을 거부할 수 있습니다. 자세한 내용은 https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources

kind

string

kind는 이 오브젝트가 나타내는 REST 리소스에 해당하는 문자열 값입니다. 서버는 클라이언트에서 요청을 제출한 끝점에서 이를 유추할 수 있습니다. CamelCase로 업데이트할 수 없습니다. 자세한 내용은 https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds

메타데이터

ObjectMeta

표준 오브젝트의 메타데이터입니다. 자세한 내용은 https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata

spec

object

StatefulSetSpec은 StatefulSet의 사양입니다.

status

object

StatefulSetStatus는 StatefulSet의 현재 상태를 나타냅니다.

17.1.1. .spec

설명
StatefulSetSpec은 StatefulSet의 사양입니다.
유형
object
필수 항목
  • 선택기
  • 템플릿
  • serviceName
속성유형설명

minReadySeconds

integer

새로 생성된 Pod를 사용할 수 있는 컨테이너 충돌 없이 준비해야 하는 최소 시간(초)입니다. 기본값은 0입니다 (pod는 준비되는 즉시 사용 가능한 것으로 간주됨)

ordinals

object

StatefulSetOrdinals는 이 StatefulSet의 복제본 ordinal 할당에 사용되는 정책을 설명합니다.

persistentVolumeClaimRetentionPolicy

object

StatefulSetPersistentVolumeClaimRetentionPolicy는 StatefulSet VolumeClaimTemplates에서 생성된 PVC에 사용되는 정책을 설명합니다.

podManagementPolicy

string

podManagementPolicy는 초기 확장 중에 포드를 생성하는 방법, 노드에서 Pod를 교체할 때 또는 축소할 때 제어합니다. 기본 정책은 OrderedReady 입니다. 여기서 Pod는 증가 순서(pod-0, pod-1 등)로 생성되고 컨트롤러는 계속하기 전에 각 Pod가 준비될 때까지 기다립니다. 축소하면 Pod가 반대 순서로 제거됩니다. 대체 정책은 대기 없이 원하는 규모와 일치하도록 병렬로 Pod를 만드는 Parallel 이며 축소 시 모든 Pod가 한 번에 삭제됩니다.

가능한 enum 값: - "OrderedReady" 는 이전 Pod가 준비되거나 종료된 경우에만 진행되도록 스케일링 및 축소 시 주문을 엄격하게 늘립니다. 언제든지 하나의 Pod가 변경됩니다. - "Parallel" 은 상태 저장 세트 복제본 수가 변경되는 즉시 Pod를 생성 및 삭제하고 Pod가 준비되거나 종료될 때까지 기다리지 않습니다.

replicas

integer

replicas는 지정된 템플릿의 원하는 복제본 수입니다. 이러한 복제본은 동일한 템플릿을 인스턴스화한다는 점에서 복제본이지만 개별 복제본에는 일관된 ID도 있습니다. 지정되지 않은 경우 기본값은 1입니다.

revisionHistoryLimit

integer

revisionHistoryLimit은 StatefulSet의 버전 기록에서 유지 관리할 최대 버전 수입니다. 개정 내역은 현재 적용된 StatefulSetSpec 버전으로 표시되지 않는 모든 버전으로 구성됩니다. 기본값은 10입니다.

선택기

LabelSelector

selector는 복제본 수와 일치해야 하는 Pod의 레이블 쿼리입니다. Pod 템플릿의 레이블과 일치해야 합니다. 자세한 내용은 https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors

serviceName

string

ServiceName은 이 StatefulSet을 관리하는 서비스의 이름입니다. 이 서비스는 StatefulSet 앞에 있어야 하며 세트의 네트워크 ID를 담당합니다. Pod는 statefulSet 컨트롤러에서 "pod-specific-string-string"을 관리하는 pod-specific-string.serviceName.default.svc.cluster.local 패턴을 따르는 DNS/호스트를 가져옵니다.

템플릿

PodTemplateSpec

템플릿은 충분하지 않은 복제본이 감지되면 생성되는 Pod를 설명하는 오브젝트입니다. StatefulSet에서 샘플링된 각 pod는 이 템플릿을 수행하지만 StatefulSet의 나머지 부분에서 고유한 ID가 있습니다. 각 Pod의 이름은 <statefulsetname>-<podindex> 형식으로 지정됩니다. 예를 들어 인덱스 번호가 "3"인 StatefulSet의 Pod의 이름은 "web-3"입니다. 허용된 유일한 template.spec.restartPolicy 값은 "항상"입니다.

updateStrategy

object

StatefulSetUpdateStrategy는 StatefulSet 컨트롤러가 업데이트를 수행하는 데 사용할 전략을 나타냅니다. 지정된 전략에 대한 업데이트를 수행하는 데 필요한 추가 매개변수가 포함되어 있습니다.

volumeClaimTemplates

배열(PersistentVolumeClaim)

VolumeClaimTemplates는 Pod가 참조할 수 있는 클레임 목록입니다. StatefulSet 컨트롤러는 Pod의 ID를 유지 관리하는 방식으로 네트워크 ID를 클레임에 매핑합니다. 이 목록의 모든 클레임에는 템플릿의 하나의 컨테이너에 일치하는 (이름별) volumeMount가 하나 이상 있어야 합니다. 이 목록의 클레임은 템플릿의 모든 볼륨보다 우선하며 이름이 같습니다.

17.1.2. .spec.ordinals

설명
StatefulSetOrdinals는 이 StatefulSet의 복제본 ordinal 할당에 사용되는 정책을 설명합니다.
유형
object
속성유형설명

start

integer

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

string

WhenDeleted는 StatefulSet VolumeClaimTemplates를 삭제할 때 StatefulSet VolumeClaimTemplates에서 생성된 PVC에 어떤 일이 발생하는지 지정합니다. Retain 의 기본 정책으로 인해 PVC가 StatefulSet 삭제의 영향을 받지 않습니다. Delete 정책으로 인해 해당 PVC가 삭제됩니다.

whenScaled

string

WhenScaled StatefulSet VolumeClaimTemplates 상태 저장 설정이 축소될 때 PVC에 발생하는 작업을 지정합니다. Retain 의 기본 정책으로 인해 PVC가 스케일 다운의 영향을 받지 않습니다. Delete 정책으로 인해 복제본 수 이상의 초과 Pod에 대한 연결된 PVC가 삭제됩니다.

17.1.4. .spec.updateStrategy

설명
StatefulSetUpdateStrategy는 StatefulSet 컨트롤러가 업데이트를 수행하는 데 사용할 전략을 나타냅니다. 지정된 전략에 대한 업데이트를 수행하는 데 필요한 추가 매개변수가 포함되어 있습니다.
유형
object
속성유형설명

rollingUpdate

object

RollingUpdateStatefulSetStrategy는 RollingUpdateStatefulSetStrategyType의 매개변수를 전달하는 데 사용됩니다.

type

string

type은 StatefulSetUpdateStrategy 유형을 나타냅니다. 기본값은 RollingUpdate입니다.

가능한 enum 값: - "OnDelete" 는 레거시 동작을 트리거합니다. 버전 추적 및 순서가 지정된 롤링 재시작은 비활성화되어 있습니다. Pod는 수동으로 삭제할 때 StatefulSetSpec에서 다시 생성됩니다. 이 전략으로 스케일링 작업을 수행하면 StatefulSet의 currentRevision에 표시된 특정 버전을 지정합니다. - "RollingUpdate" 는 StatefulSet 순서 제약 조건과 관련하여 StatefulSet의 모든 Pod에 업데이트가 적용됨을 나타냅니다. 이 전략을 사용하여 스케일링 작업을 수행하면 StatefulSet의 updateRevision으로 표시된 사양 버전에서 새 Pod가 생성됩니다.

17.1.5. .spec.updateStrategy.rollingUpdate

설명
RollingUpdateStatefulSetStrategy는 RollingUpdateStatefulSetStrategyType의 매개변수를 전달하는 데 사용됩니다.
유형
object
속성유형설명

maxUnavailable

IntOrString

업데이트 중에 사용할 수 없는 최대 Pod 수입니다. 값은 절대 숫자(예: 5) 또는 원하는 Pod의 백분율(예: 10%)일 수 있습니다. 절대 수는 백분율로 반올림하여 계산됩니다. 이 값은 0이 될 수 없습니다. 기본값은 1입니다. 이 필드는 알파 수준이며 MaxUnavailableStatefulSet 기능을 활성화하는 서버에서만 적용됩니다. 이 필드는 0~Replicas-1 범위의 모든 Pod에 적용됩니다. 즉, 0에서 Replicas-1 사이의 범위에 사용할 수 없는 Pod가 있는 경우 MaxUnavailable으로 계산됩니다.

파티션

integer

partition은 업데이트를 위해 StatefulSet을 분할해야 하는 ordinal을 나타냅니다. 롤링 업데이트 중에 ordinal Replicas-1에서 Partition으로 모든 Pod가 업데이트됩니다. ordinal Partition-1에서 0으로의 모든 Pod는 변경되지 않은 상태로 유지됩니다. 이 기능은 카나리아 기반 배포를 수행할 수 있는 데 유용합니다. 기본값은 0입니다.

17.1.6. .status

설명
StatefulSetStatus는 StatefulSet의 현재 상태를 나타냅니다.
유형
object
필수 항목
  • replicas
속성유형설명

availableReplicas

integer

이 statefulset에서 대상으로 하는 사용 가능한 총 Pod 수(최소 minReadySeconds) 수입니다.

collisionCount

integer

collisionCount는 StatefulSet의 해시 충돌 수입니다. StatefulSet 컨트롤러는 최신 ControllerRevision의 이름을 생성해야 하는 경우 이 필드를 충돌 방지 메커니즘으로 사용합니다.

conditions

array

상태 저장 세트의 현재 상태에 대한 사용 가능한 최신 관찰을 나타냅니다.

conditions[]

object

StatefulSetCondition은 특정 시점에서 상태 저장 설정 상태를 설명합니다.

currentReplicas

integer

currentReplicas는 currentRevision으로 표시된 StatefulSet 버전에서 StatefulSet 컨트롤러에서 생성한 Pod 수입니다.

currentRevision

string

currentRevision은 비어 있지 않은 경우 [0,currentReplicas) 순서로 Pod를 생성하는 데 사용되는 StatefulSet 버전을 나타냅니다.

observedGeneration

integer

observedGeneration은 이 StatefulSet에서 관찰되는 최신 세대입니다. StatefulSet의 생성은 API 서버에서 변경 시 업데이트되는 StatefulSet의 생성에 해당합니다.

readyReplicas

integer

readyReplicas는 Ready Condition을 사용하여 이 StatefulSet에 대해 생성된 Pod 수입니다.

replicas

integer

replicas는 StatefulSet 컨트롤러에서 생성한 Pod 수입니다.

updateRevision

string

updateRevision은 비어 있지 않은 경우 [replicas-updatedReplicas,replicas) 순서로 포드를 생성하는 데 사용되는 StatefulSet 버전을 나타냅니다.

updatedReplicas

integer

updatedReplicas는 updateRevision으로 표시된 StatefulSet 버전에서 StatefulSet 컨트롤러에서 생성한 Pod 수입니다.

17.1.7. .status.conditions

설명
상태 저장 세트의 현재 상태에 대한 사용 가능한 최신 관찰을 나타냅니다.
유형
array

17.1.8. .status.conditions[]

설명
StatefulSetCondition은 특정 시점에서 상태 저장 설정 상태를 설명합니다.
유형
object
필수 항목
  • type
  • status
속성유형설명

lastTransitionTime

시간

조건이 한 상태에서 다른 상태로 전환된 마지막 시간입니다.

message

string

전환에 대한 세부 정보를 나타내는 사람이 읽을 수 있는 메시지입니다.

reason

string

조건의 마지막 전환 이유는 다음과 같습니다.

status

string

조건의 상태, True, False, 알 수 없음.

type

string

상태 저장 설정 조건의 유형입니다.

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.