2015-01-26 8 views
16

Kubernetes의 후크를 시험해보고 싶지만 어떻게해야하는지 예제를 찾지 못했습니다. 지금까지 내가 아는 한,이 훅을 사용하여 새로 작성한 컨테이너에서 bash 스크립트를 실행하고 종료하기 전에 실행할 수 있습니다.Kubernetes의 후크 사용

나는 이것이 가능하다고 말하는 짧은 documentation을 발견했지만 그게 전부입니다.

예를 들어 유용한 정보가 있습니까?

미리 감사드립니다.

답변

14

예제 .yaml 파일은 표시되지 않지만 Kubernetes API v1은 동일한 방식으로 수명주기 이벤트를 설명합니다. 현재 PostStart 및 PreStop 만 정의되어 있으므로 창 정의의 컨테이너에 라이프 사이클 섹션을 추가하여 PostStart 및 PreStop을 사용할 수 있어야합니다. 내가 postStart 후크를 시도 할 수 위의 대답

containers: 
    - name: lifecycle 
    image: busybox 
    lifecycle: 
     postStart: 
     exec: 
      command: 
      - "touch" 
      - "/var/log/lifecycle/post-start" 
     preStop: 
     httpGet: 
      path: "/abort" 
      port: 8080 
+0

덕분에 그것은 나를 도왔지만, 그냥 거의 아직 작동합니다. 내 포드가 실행 상태가되지만 미니언 사이트에서 다음 메시지와 함께 실패하면 잠시 후 : "kubelet.go : 811"pod apache.default.etcd 컨테이너 마스터 실행 중 오류 : 이벤트 핸들러를 호출하지 못했습니다. : 서버 버전 출력에서 ​​도커 서버 버전이 누락 됨 - & [Arch = amd64 GitCommit = 5bc2ff8/1.4.1 GoVersion = go1.3.3 KernelVersion = 3.11.10-301.fc20.x86_64 Os = linux 버전 = 1.4.1 ApiVersion = 1.16] " 아마도 버그 일 수 있습니까? 다음은 내 포드 정의입니다. http : //pastebin.com/VVqRQpZm – Halacs

0

, 그리고 내가 발견 : (: 나는 실제로 그것을 자신을 시도하지 않은 면책 조항)이 API 정의를 읽기를 바탕으로

,이 같은 작업을해야합니다 지난 해 말에 해결되었지만 아직 생가죽 저장소에있는 Fedora의 테스트 저장소에는 게시되지 않은 버그입니다.

repos는 며칠 이내에 업데이트되어야합니다.

더 자세한 사항 : https://github.com/kubernetes/kubernetes/issues/3930