8장. 배포 [apps/v1]
- 설명
- 배포를 사용하면 Pod 및 ReplicaSet에 대한 선언적 업데이트가 활성화됩니다.
- 유형
-
object
8.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 | |
|
| DeploymentSpec은 원하는 배포 동작의 사양입니다. |
|
| DeploymentStatus는 가장 최근에 관찰된 배포 상태입니다. |
8.1.1. .spec
- 설명
- DeploymentSpec은 원하는 배포 동작의 사양입니다.
- 유형
-
object
- 필수 항목
-
선택기
-
템플릿
-
속성 | 유형 | 설명 |
---|---|---|
|
| 컨테이너 충돌 없이 새로 생성된 Pod를 준비해야 하는 최소 시간(초)을 사용할 수 있습니다. 기본값은 0입니다 (pod는 준비되는 즉시 사용 가능한 것으로 간주됨) |
|
| 배포가 일시 중지되었음을 나타냅니다. |
|
| 배포가 실패로 간주되기 전에 진행할 수 있는 최대 시간(초)입니다. 배포 컨트롤러는 실패한 배포를 계속 처리하고 ProgressDeadlineExceeded 이유가 있는 조건이 배포 상태에 표시됩니다. 배포가 일시 중지되는 동안 진행 상황을 추정하지 않습니다. 기본값은 600입니다. |
|
| 원하는 Pod 수입니다. 이는 명시적 0과 지정되지 않음을 구분하기 위한 포인터입니다. 기본값은 1입니다. |
|
| 롤백을 허용하기 위해 보유할 이전 ReplicaSet 수입니다. 이는 명시적 0과 지정되지 않음을 구분하기 위한 포인터입니다. 기본값은 10입니다. |
| Pod의 라벨 선택기입니다. 이 과정에서 선택한 Pod가 있는 기존 ReplicaSet은 이 배포의 영향을 받는 것입니다. Pod 템플릿의 레이블과 일치해야 합니다. | |
|
| DeploymentStrategy는 기존 Pod를 새 Pod로 교체하는 방법을 설명합니다. |
| 템플릿은 생성할 Pod를 설명합니다. 허용된 유일한 template.spec.restartPolicy 값은 "항상"입니다. |
8.1.2. .spec.strategy
- 설명
- DeploymentStrategy는 기존 Pod를 새 Pod로 교체하는 방법을 설명합니다.
- 유형
-
object
속성 | 유형 | 설명 |
---|---|---|
|
| 롤링 업데이트의 원하는 동작을 제어하는 사양입니다. |
|
| 배포 유형입니다. "Recreate" 또는 "RollingUpdate"일 수 있습니다. 기본값은 RollingUpdate입니다.
가능한 enum 값: - |
8.1.3. .spec.strategy.rollingUpdate
- 설명
- 롤링 업데이트의 원하는 동작을 제어하는 사양입니다.
- 유형
-
object
속성 | 유형 | 설명 |
---|---|---|
| 원하는 Pod 수 이상으로 예약할 수 있는 최대 Pod 수입니다. 값은 절대 숫자(예: 5) 또는 원하는 Pod의 백분율(예: 10%)일 수 있습니다. MaxUnavailable이 0인 경우 이 값은 0이 될 수 없습니다. 절대 수는 백분율로 반올림하여 계산됩니다. 기본값은 25%입니다. 예: 이 값을 30 %로 설정하면 롤링 업데이트가 시작될 때 새 ReplicaSet을 즉시 확장할 수 있으므로 이전 Pod와 새 Pod의 총 수가 원하는 Pod의30%를 초과하지 않습니다. 이전 Pod가 종료되면 새 ReplicaSet을 추가로 확장할 수 있으므로 업데이트 중에 언제든지 실행 중인 총 Pod 수가 원하는 Pod의 최대 192.0.2.%가 되도록 할 수 있습니다. | |
| 업데이트 중에 사용할 수 없는 최대 Pod 수입니다. 값은 절대 숫자(예: 5) 또는 원하는 Pod의 백분율(예: 10%)일 수 있습니다. 절대 수는 백분율로 반올림하여 계산됩니다. MaxSurge가 0인 경우 이 값은 0이 될 수 없습니다. 기본값은 25%입니다. 예: 이 값을 30%로 설정하면 롤링 업데이트가 시작될 때 이전 ReplicaSet을 원하는 Pod의 70%로 즉시 축소할 수 있습니다. 새 Pod가 준비되면 이전 ReplicaSet을 추가로 축소한 후 새 ReplicaSet을 확장하여 업데이트 중에 항상 사용 가능한 총 Pod 수가 필요한 Pod의 70% 이상인지 확인할 수 있습니다. |
8.1.4. .status
- 설명
- DeploymentStatus는 가장 최근에 관찰된 배포 상태입니다.
- 유형
-
object
속성 | 유형 | 설명 |
---|---|---|
|
| 이 배포를 대상으로 하는 사용 가능한 총 Pod 수(최소 minReadySeconds) 수입니다. |
|
| 배포에 대한 해시 충돌 수입니다. 배포 컨트롤러는 최신 ReplicaSet의 이름을 생성해야 하는 경우 이 필드를 충돌 방지 메커니즘으로 사용합니다. |
|
| 배포의 현재 상태에 대한 사용 가능한 최신 관찰을 나타냅니다. |
|
| DeploymentCondition은 특정 시점에서 배포 상태를 설명합니다. |
|
| 배포 컨트롤러에서 관찰하는 생성입니다. |
|
| ReadyReplicas는 이 배포에서 Ready 상태가 되는 Pod 수입니다. |
|
| 이 배포를 대상으로 하는 총 종료되지 않은 Pod 수입니다(해당 레이블은 선택기와 일치). |
|
| 이 배포에서 대상으로 하는 총 사용 불가능한 Pod 수입니다. 이는 배포에 필요한 총 Pod 수에 100% 사용 가능한 용량이 있습니다. 실행 중이지만 아직 사용할 수 없는 Pod 또는 아직 생성되지 않은 Pod일 수 있습니다. |
|
| 원하는 템플릿 사양이 있는 이 배포를 대상으로 하는 총 종료되지 않은 Pod 수입니다. |
8.1.5. .status.conditions
- 설명
- 배포의 현재 상태에 대한 사용 가능한 최신 관찰을 나타냅니다.
- 유형
-
array
8.1.6. .status.conditions[]
- 설명
- DeploymentCondition은 특정 시점에서 배포 상태를 설명합니다.
- 유형
-
object
- 필수 항목
-
type
-
status
-
속성 | 유형 | 설명 |
---|---|---|
| 조건이 한 상태에서 다른 상태로 전환된 마지막 시간입니다. | |
| 이 조건이 마지막으로 업데이트된 시간입니다. | |
|
| 전환에 대한 세부 정보를 나타내는 사람이 읽을 수 있는 메시지입니다. |
|
| 조건의 마지막 전환 이유는 다음과 같습니다. |
|
| 조건의 상태, True, False, 알 수 없음. |
|
| 배포 조건 유형입니다. |