हम यहाँ बैच कंप्यूटिंग का एक बहुत के लिए उपयोग 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
फली कल्पना पर सेट है, तो फली उस के साथ गैर शून्य से बाहर निकलें कोड एक ही फली में पुन: प्रारंभ हो जाएगा समाप्त हो जाता है में किसी भी कंटेनर (इस उपयोगी एक निगरानी साइड कार की संख्या की गणना करने के लिए किया जा सकता है किसी निश्चित संख्या के बाद नौकरी को दोबारा हटाएं और हटाएं (क्यूबेरनेट नौकरियों में वर्तमान में कोई अधिकतम-रेट्री उपलब्ध नहीं है)।
यह कोई एक सुरुचिपूर्ण समाधान भी तरह से है, लेकिन मुझे लगता है कि आप अपनी साइड कार पर एक जीवंतता जांच है कि वास्तव में मुख्य कंटेनर की जांच करता सेट कर सकते हैं। फिर, जब मुख्य कंटेनर नीचे चला जाता है, तो जांच विफल हो जाएगी और क्यूबलेट साइडकार को मार देगा। –