4.3.5. 라이프사이클 후크
롤링 및 재현 전략에서는 라이프사이클 후크 또는 배포 후크를 지원하므로 전략 내의 미리 정의한 지점에서 배포 프로세스에 동작을 삽입할 수 있습니다.
pre
라이프사이클 후크의 예
pre:
failurePolicy: Abort
execNewPod: {} 1
- 1
execNewPod
는 Pod 기반 라이프사이클 후크입니다.
모든 후크에는 후크에 오류가 발생했을 때 전략에서 취해야 하는 조치를 정의하는 실패 정책이 있습니다.
| 후크가 실패하면 배포 프로세스가 실패로 간주됩니다. |
| 성공할 때까지 후크를 다시 실행합니다. |
| 모든 후크 오류를 무시하고 배포를 계속 진행합니다. |
후크에는 후크 실행 방법을 설명하는 유형별 필드가 있습니다. 현재는 Pod 기반 후크가 지원되는 유일한 후크 유형으로 execNewPod
필드에 지정되어 있습니다.
Pod 기반 라이프사이클 후크
Pod 기반 라이프사이클 후크는 DeploymentConfig
오브젝트의 템플릿에서 파생된 새 Pod에서 후크 코드를 실행합니다.
간소화된 다음 예제 배포에서는 롤링 전략을 사용합니다. 간결성을 위해 트리거 및 몇 가지 기타 사소한 세부 정보는 생략되었습니다.
kind: DeploymentConfig apiVersion: apps.openshift.io/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
이므로 후크가 실패하면 배포 프로세스가 실패합니다. -
후크 Pod는
DeploymentConfig
오브젝트 Pod의data
볼륨을 상속합니다.
4.3.5.1. 라이프사이클 후크 설정
CLI를 사용하여 배포에 라이프사이클 후크 또는 배포 후크를 설정할 수 있습니다.
프로세스
oc set deployment-hook
명령을 사용하여 원하는 후크 유형을--pre
,--mid
또는--post
로 설정합니다. 예를 들어 사전 배포 후크를 설정하려면 다음을 실행합니다.$ oc set deployment-hook dc/frontend \ --pre -c helloworld -e CUSTOM_VAR1=custom_value1 \ --volumes data --failure-policy=abort -- /usr/bin/command arg1 arg2