2015-01-26 7 views
16

मैं कुबेरनेट के हुक को आजमा देना चाहता हूं लेकिन मुझे कोई उदाहरण नहीं मिला कि मुझे यह कैसे करना चाहिए। जहां तक ​​मुझे पता है, इस हुक के साथ मैं ताजा बनाए गए कंटेनर में बैश स्क्रिप्ट चला सकता हूं और उन्हें समाप्त करने से पहले।कुबर्नेट्स हुक का उपयोग

मुझे बस एक छोटा documentation मिला है जो कहता है कि यह संभव है लेकिन यह सब कुछ है।

क्या किसी के पास कोई उदाहरण या कुछ उपयोगी जानकारी है?

अग्रिम धन्यवाद।

उत्तर

14

मुझे कोई उदाहरण नहीं दिख रहा है। वाईएमएल फाइलें, लेकिन Kubernetes API v1 उसी तरह जीवन चक्र की घटनाओं का वर्णन करती है। वर्तमान में, केवल पोस्टस्टार्ट और प्रीस्टॉप को परिभाषित किया गया है और आप अपनी पॉड परिभाषा में एक कंटेनर में जीवन चक्र अनुभाग जोड़कर उनका उपयोग करने में सक्षम होना चाहिए।

एपीआई परिभाषा पढ़ने के आधार पर, कुछ इस तरह काम करना चाहिए (अस्वीकरण: मैं वास्तव में इसे अपने आप को प्रयास नहीं किया है):

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] त्रुटि apache.default.etcd कंटेनर मास्टर चलाने में त्रुटि: ईवेंट हैंडलर को कॉल करने में विफल : सर्वर संस्करण आउटपुट से डॉकर सर्वर संस्करण गायब है - और [आर्क = amd64 गीटकॉमिट = 5bc2ff8/1.4.1 GoVersion = go1.3.3 कर्नेलवर्सन = 3.11.10-301.fc20.x86_64 ओएस = लिनक्स संस्करण = 1.4.1 अपिवर्सन = 1.16] " यह शायद एक बग हो सकता है? यहां मेरी पॉड परिभाषाएं हैं: http: //pastebin.com/VVqRQpZm – Halacs

0

ऊपर जवाब के साथ मैं postStart हुक की कोशिश कर सकते हैं, और मैं एक पाया बग जो पिछले वर्ष के अंत में हल किया गया था, लेकिन इसे अभी तक कच्चेहाइड रेपो में फेडोरा के परीक्षण भंडार में प्रकाशित नहीं किया गया है।

रेपो अगले कुछ दिनों में अपडेट किया जाना चाहिए।

अधिक जानकारी: https://github.com/kubernetes/kubernetes/issues/3930

संबंधित मुद्दे