2016-03-24 11 views
10

हम यहाँ बैच कंप्यूटिंग का एक बहुत के लिए उपयोग Kubernetes Job रों और मैं एक निगरानी साइड कार के साथ एक नौकरी साधन एक नौकरी की प्रगति के साथ एक केंद्रीकृत ट्रैकिंग प्रणाली को अद्यतन करने के लिए करना चाहते हैं।कुबर्नेट्स जॉब्स में साइडकार कंटेनर?

केवल समस्या यह है, मैं समझ नहीं क्या अर्थ विज्ञान रहे हैं (या होने की अपेक्षा की जाती है) एक नौकरी में कई कंटेनरों की।

मैं इसे एक शॉट वैसे भी दे दी है और अपने मुख्य कार्य पूरा करने के बाद, Job रों Successful और Kubernetes में kubectl get pods 1.2.0 शो माना जाता है (एक alpine साइडकार कि मुद्रित "हैलो" हर 1 सेकंड के साथ):

NAME           READY  STATUS  RESTARTS AGE 
    job-69541b2b2c0189ba82529830fe6064bd-ddt2b 1/2  Completed 0   4m 
    job-c53e78aee371403fe5d479ef69485a3d-4qtli 1/2  Completed 0   4m 
    job-df9a48b2fc89c75d50b298a43ca2c8d3-9r0te 1/2  Completed 0   4m 
    job-e98fb7df5e78fc3ccd5add85f8825471-eghtw 1/2  Completed 0   4m 

और अगर मैं उन फली

State:    Terminated 
    Reason:   Completed 
    Exit Code:  0 
    Started:   Thu, 24 Mar 2016 11:59:19 -0700 
    Finished:   Thu, 24 Mar 2016 11:59:21 -0700 

फिर GET नौकरी के YAML ing में से एक का वर्णन प्रति कंटेनर जानकारी दिखाता है:

status: 
    conditions: 
    - lastProbeTime: null 
     lastTransitionTime: 2016-03-24T18:59:29Z 
     message: 'containers with unready status: [pod-template]' 
     reason: ContainersNotReady 
     status: "False" 
     type: Ready 
    containerStatuses: 
    - containerID: docker://333709ca66462b0e41f42f297fa36261aa81fc099741e425b7192fa7ef733937 
     image: luigi-reduce:0.2 
     imageID: docker://sha256:5a5e15390ef8e89a450dac7f85a9821fb86a33b1b7daeab9f116be252424db70 
     lastState: {} 
     name: pod-template 
     ready: false 
     restartCount: 0 
     state: 
     terminated: 
      containerID: docker://333709ca66462b0e41f42f297fa36261aa81fc099741e425b7192fa7ef733937 
      exitCode: 0 
      finishedAt: 2016-03-24T18:59:30Z 
      reason: Completed 
      startedAt: 2016-03-24T18:59:29Z 
    - containerID: docker://3d2b51436e435e0b887af92c420d175fafbeb8441753e378eb77d009a38b7e1e 
     image: alpine 
     imageID: docker://sha256:70c557e50ed630deed07cbb0dc4d28aa0f2a485cf7af124cc48f06bce83f784b 
     lastState: {} 
     name: sidecar 
     ready: true 
     restartCount: 0 
     state: 
     running: 
      startedAt: 2016-03-24T18:59:31Z 
    hostIP: 10.2.113.74 
    phase: Running 

तो ऐसा लगता है कि मेरे साइडकार को मुख्य प्रक्रिया (कैसे?) देखना होगा और यह पता चल जाएगा कि यह पॉड में अकेला है? यदि यह सही है, तो इसके लिए सर्वोत्तम प्रथाओं/पैटर्न हैं (क्या मुख्य कंटेनर के रिटर्न कोड के साथ साइडकार निकास होना चाहिए? लेकिन यह कैसे मिलता है?)?

** अद्यतन ** आगे प्रयोग के बाद, मैं भी पता चला है निम्नलिखित: अगर वहाँ एक फली में दो कंटेनर, तो यह बाहर निकलने के कोड 0 के साथ फली बदले में सभी कंटेनर तक माना जाता सफल नहीं हो पाता।

साथ ही, यदि restartPolicy: OnFailure फली कल्पना पर सेट है, तो फली उस के साथ गैर शून्य से बाहर निकलें कोड एक ही फली में पुन: प्रारंभ हो जाएगा समाप्त हो जाता है में किसी भी कंटेनर (इस उपयोगी एक निगरानी साइड कार की संख्या की गणना करने के लिए किया जा सकता है किसी निश्चित संख्या के बाद नौकरी को दोबारा हटाएं और हटाएं (क्यूबेरनेट नौकरियों में वर्तमान में कोई अधिकतम-रेट्री उपलब्ध नहीं है)।

+0

यह कोई एक सुरुचिपूर्ण समाधान भी तरह से है, लेकिन मुझे लगता है कि आप अपनी साइड कार पर एक जीवंतता जांच है कि वास्तव में मुख्य कंटेनर की जांच करता सेट कर सकते हैं। फिर, जब मुख्य कंटेनर नीचे चला जाता है, तो जांच विफल हो जाएगी और क्यूबलेट साइडकार को मार देगा। –

उत्तर

3

आप साइडकार के भीतर से अपना खुद का पॉडनाम जानने के लिए downward api का उपयोग कर सकते हैं, और उसके बाद एपिसर्वर से अपनी खुद की फली को अस्तित्व में देखने के लिए पुनर्प्राप्त कर सकते हैं। मुझे बताएं कि यह कैसे जाता है।

+0

@JKnight यह कैसे चला गया? – pkyeck

+0

@PhilippKyeck, हम सफलतापूर्वक नीचे एपीआई हमारे साइडकार में मुख्य कंटेनर की स्थिति की जांच करने के लिए इस्तेमाल किया। मैं इसे व्यवहार्य विकल्प के रूप में अनुशंसा करता हूं। – JKnight

+1

जहां तक ​​मैं देख सकता हूँ नीचे एपीआई कंटेनर स्थितियों का खुलासा नहीं करता @JKnight। क्या आप इस समाधान को कार्यान्वित करने के बारे में अधिक जानकारी साझा करना चाहते हैं? – Adrian

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