2015-01-26 13 views
16

Ich möchte Kubernetes Haken versuchen, aber ich habe kein Beispiel gefunden, wie ich es tun sollte. Soweit ich weiß, kann ich mit diesen Hooks Bash-Skripte in frisch erstellten Containern ausführen und vor deren Beendigung.Mit Kubernetes Haken

Ich habe nur eine kurze documentation gefunden, die sagen, das ist möglich, aber das ist alles.

Hat jemand ein Beispiel oder etwas Nützliches?

Vielen Dank im Voraus.

Antwort

14

Ich sehe keine Beispiele .yaml-Dateien, aber Kubernetes API v1 beschreibt die Lebenszyklusereignisse in der gleichen Weise. Momentan sind nur PostStart und PreStop definiert und Sie können diese verwenden, indem Sie einen Lebenszyklusabschnitt zu einem Container in Ihrer Poddefinition hinzufügen.

Basierend auf der API-Definition lesen, sollten so etwas wie dies funktionieren (Disclaimer: Ich habe mich nicht versucht es tatsächlich):

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

Dank half es mir, aber es funktioniert nur fast noch. Mein Pod wird im laufenden Zustand sein, aber in kurzer Zeit, nachdem es mit dieser Nachricht auf der Minion-Site fehlgeschlagen ist: "kubelet.go: 811] Fehler beim Ausführen von Pod apache.default.etcd Container-Master: Fehler beim Aufruf des Event-Handlers : docker server version fehlt in der server versionsausgabe - & [Arch = amd64 GitCommit = 5bc2ff8/1.4.1 GoVersion = go1.3.3 KernelVersion = 3.11.10-301.fc20.x86_64 Os = linux Version = 1.4.1 ApiVersion = 1.16] " Es kann ein Fehler sein vielleicht? Hier sind meine Pod Definitionen: http: //pastebin.com/VVqRQpZm – Halacs

0

Mit der oben Antwort, die ich Poststart Haken versuchen könnte, und ich fand ein Fehler, der am Ende des letzten Jahres behoben wurde, aber noch nicht in Fedoras Testing Repository nur im Rohhaut-Repo veröffentlicht wurde.

Die Repos sollten in den nächsten Tagen aktualisiert werden.

Weitere Informationen: https://github.com/kubernetes/kubernetes/issues/3930