9.3.5. 라이프사이클 후크
재생성 및 롤링 전략에서는 라이프사이클 후크를 지원하므로 전략 내의 사전 정의된 지점에서 해당 동작을 배포 프로세스에 삽입할 수 있습니다.
다음은 pre
라이프사이클 후크의 예입니다.
pre:
failurePolicy: Abort
execNewPod: {} 1
- 1
execNewPod
는 Pod 기반 라이프사이클 후크 입니다.
모든 후크에는 후크에 오류가 발생했을 때 전략에서 취해야 하는 작업을 정의하는 failurePolicy
가 있습니다.
| 후크가 실패하면 배포 프로세스가 실패로 간주됩니다. |
| 성공할 때까지 후크를 다시 실행합니다. |
| 모든 후크 오류를 무시하고 배포를 계속 진행합니다. |
후크에는 후크 실행 방법을 설명하는 유형별 필드가 있습니다. 현재 Pod 기반 후크 는 execNewPod
필드에서 지정하는 유일한 후크 유형입니다.
9.3.5.1. Pod 기반 라이프사이클 후크
Pod 기반 라이프사이클 후크는 배포 구성의 템플릿에서 파생된 새 Pod에서 후크 코드를 실행합니다.
간소화된 다음 예제 배포 구성에서는 롤링 전략을 사용합니다. 간결성을 위해 트리거 및 몇 가지 기타 사소한 세부 정보는 생략되었습니다.
kind: DeploymentConfig apiVersion: v1 metadata: name: frontend spec: template: metadata: labels: name: frontend spec: containers: - name: helloworld image: openshift/origin-ruby-sample replicas: 5 selector: name: frontend strategy: type: Rolling rollingParams: pre: failurePolicy: Abort execNewPod: containerName: helloworld 1 command: [ "/usr/bin/command", "arg1", "arg2" ] 2 env: 3 - name: CUSTOM_VAR1 value: custom_value1 volumes: - data 4
이 예제에서 pre
후크는 helloworld 컨테이너의 openshift/origin-ruby-sample 이미지를 사용하여 새 Pod에서 실행됩니다. 후크 Pod에는 다음과 같은 속성이 있습니다.
-
후크 명령은
/usr/bin/command arg1 arg2
입니다. -
후크 컨테이너에는
CUSTOM_VAR1=custom_value1
환경 변수가 있습니다. -
후크 실패 정책은
Abort
이며, 후크가 실패하면 배포 프로세스가 실패합니다. -
후크 포드는 배포 구성 포드의
데이터
볼륨을 상속합니다.