कुबेरनेट्स तैनाती में डॉकटर


13

मैं एक थर्ड पार्टी लाइब्रेरी का उपयोग कर रहा हूँ, जो सिबलिंग डॉकटर कंटेनर बनाती है:

docker run -d /var/run/docker.sock:/var/run/docker.sock ...

मैं उपरोक्त कंटेनर में से कुबेरनेट्स परिनियोजन बनाने का प्रयास कर रहा हूं, लेकिन वर्तमान में:

Unix पर Docker डेमन से कनेक्ट नहीं किया जा सकता: ///var/run/docker.sock। क्या डॉकटर डेमॉन चल रहा है?

यह अपेक्षित है क्योंकि मैं /var/run/docker.sockपरिनियोजन याम में वॉल्यूम के रूप में घोषित नहीं कर रहा हूं।

समस्या यह है कि मुझे नहीं पता कि यह कैसे करना है। क्या /var/run/docker.sockएक तैनाती यमल में वॉल्यूम के रूप में माउंट करना संभव है ?

यदि नहीं, तो कुबेरनेट्स परिनियोजन / पॉड के भीतर से डॉक सिबलिंग-कंटेनर चलाने के लिए सबसे अच्छा तरीका क्या है?

जवाबों:


19

असत्यापित के रूप में यह k8s पर्यवेक्षण के बाहर एक कंटेनर शुरू करने के लिए मेरे लिए भंगुर लगता है, लेकिन आप /var/run/docker.sockएक hostPath मात्रा के साथ माउंट करने में सक्षम होना चाहिए ।

दस्तावेज़ीकरण से उदाहरण भिन्नता:

apiVersion: v1
kind: Pod
metadata:
  name: test-pd
spec:
  containers:
  - image: gcr.io/google_containers/test-webserver
    name: test-container
    volumeMounts:
    - mountPath: /var/run/docker.sock
      name: docker-sock-volume
  volumes:
  - name: docker-sock-volume
    hostPath:
      # location on host
      path: /var/run/docker.sock
      # this field is optional
      type: File

मुझे लगता है कि एक साधारण माउंट को होस्ट पर docker डेमॉन के लिए कंटेनर के भीतर docker क्लाइंट से संचार की अनुमति देने के लिए पर्याप्त होना चाहिए, लेकिन यदि आपको लिखित अनुमति त्रुटि मिलती है तो इसका मतलब है कि आपको अपने कंटेनर को सुरक्षा कंटेनर के रूप में विशेषाधिकार युक्त ऑब्जेक्ट के रूप में चलाने की आवश्यकता है (जैसे) अतिरिक्त दिखाने के लिए ऊपर से एक अर्क, प्रलेखन से लिए गए मूल्य ):

spec:
  containers:
  - image: gcr.io/google_containers/test-webserver
    securityContext:
      privileged: true
    name: test-container

यह काम किया, धन्यवाद। हाँ, यह एक थर्ड पार्टी टूल है इसलिए यह आदर्श नहीं है। लेकिन मैं कम से कम कुबेरनेट्स में मुख्य कंटेनर को अधिक विश्वसनीय बनाना चाहता हूं। कंटेनर स्वचालन यूआई परीक्षण के लिए ब्राउज़र के साथ अस्थायी कंटेनरों को रैंप करता है, फिर ब्राउज़र कंटेनर नष्ट हो जाता है।
rys

@rys हाँ, यह एक ऐसा मामला था जिसके बारे में मैंने सोचा था, आप अभी भी समस्याओं में चल सकते हैं यदि नोड लोड बहुत अधिक हो जाता है क्योंकि k8 आपके 'लॉन्चर' कंटेनर को स्थानांतरित कर सकता है। लेकिन मुझे लगता है कि परीक्षण सूट की विफलता इस मामले में कुछ स्वीकार्य है
तेंसिबाई

2

यद्यपि यह एक कार्यशील समाधान है (मैं इसे स्वयं उपयोग करता हूं), बढ़ते हुए डबनेर को कुबेरनेटरी पॉड में चलाने के लिए कुछ कमियां हैं /var/run/docker.sock

ज्यादातर तथ्य यह है कि आप कुबेरनेट्स के नियंत्रण के बाहर डोकर कंटेनर के साथ काम कर रहे हैं।

एक और सुझाए गए समाधान जो मैंने पाया है वह आपके पॉड में साइड-कार कंटेनर का उपयोग कर रहा है । कुबेरनेट्स पर डॉकटर-इन-डॉकर के लिए एक मामला देखें । इसके दो भाग हैं जहाँ प्रस्तावित समाधान भाग 2 में है

आशा है कि ये आपकी मदद करेगा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.