2016-12-05 7 views
6

मैं कुबर्नेट्स के लिए नया हूं और इसलिए मैं सोच रहा हूं कि आपके ऐप के स्रोत कोड को कुबेरनेट या इसी तरह के वातावरण में कंटेनर में चलाने के लिए सबसे अच्छा प्रथा क्या है?आप अपने स्रोत कोड को कुबेरनेट में कैसे डालते हैं?

मेरा ऐप एक PHP तो मैं पीएचपी (यूके), और Nginx कंटेनर (गूगल कंटेनर इंजन से चलने) है

सबसे पहले है, मैं Git मात्रा की थी, लेकिन यह इतना तरह ऐप्लिकेशन संस्करण को बदलने का कोई रास्ता नहीं था मैं खाली करने के लिए स्विच किया गया और मेरे स्रोत कोड को एक छवि में एक ज़िप संग्रह में रखने के लिए जो इसे शुरू करने पर इस वॉल्यूम में अनजिप कर देगा और अब मेरे पास अलग-अलग गिट निर्देशिका के साथ गिट के माध्यम से दोनों छवियों में स्रोत कोड अलग है इसलिए मेरे पास/ऐप है और/एप्लिकेशन-Git।

यह अच्छा है क्योंकि मुझे वॉल्यूम्स (कम संसाधन और कॉन्फ़िगरेशन) को साझा या कॉन्फ़िगर करने की आवश्यकता नहीं है, ऐप की परत दोनों छवियों में पुन: उपयोग की जाती है, इसलिए अंतरिक्ष पर कोई प्रभाव नहीं पड़ता है और चूंकि यह गिट है "बेस" बनाया गया है मैं अंत में अपने dockerfile कमांड को समायोजित कर सकता हूं और अलग-अलग शाखा या आसानी से टैग कर सकता हूं।

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

स्रोत कोड को संभालने के आपके तरीके क्या हैं?

उत्तर

0

हमने पारंपरिक रूप से PHP के साथ क्या किया है रनटाइम पर एक ओवरले है। असल में कंटेनर में आपके गिट रेपो में तैनाती कुंजी के साथ एक वॉल्यूम लगाया जाएगा। यह आपको गिट पुल ऑपरेशंस करने की अनुमति देगा।

अधिक बटन-अप दृष्टिकोण आपके कोड की कस्टम, टैग की गई छवियों को एफपीएम से बढ़ाया गया है या जो भी छवि आप उपयोग कर रहे हैं। इस तरह आप YourImage का संस्करण 1.3 चलाएंगे जहां आपके इमेज में आपके एप्लिकेशन का कोड संस्करण 1.3 होगा।

1

आदर्श रूप से, आप निरंतर वितरण पैटर्न का उपयोग करेंगे, जिसका अर्थ है ट्रैविस सीआई, बिटबकेट पाइपलाइन या जेनकिन्स का उपयोग कोड परिवर्तन पर छवि बनाने के लिए करें।

, हर बार जब आपका कोड बदलता है, तो आपका स्वचालित निर्माण ट्रिगर हो जाएगा और एक नई डॉकर छवि तैयार करेगा, जिसमें आपका स्रोत कोड होगा। फिर आप नई छवि के साथ Pods को अद्यतन करने के लिए एक परिनियोजन रोलिंग अद्यतन ट्रिगर कर सकते हैं।

यदि आपके पास गतिशील सामग्री है, तो संभवतः आप इसे एक सतत स्टोरेज डाल दें, जिसे पॉड अपडेट पर फिर से आरोहित किया जाएगा।

+0

सर्कल पर क्रिस्टल स्पष्ट ट्यूटोरियल (मान लीजिए कि आप जीसी पर हैं, जैसा कि प्रश्न में टैग किया गया है) https://circleci.com/docs/continuous-deployment-with-google-container-engine/ और https: // circleci .com/डॉक्स/google-प्रमाणन / – Ben

0

निरंतर एकीकरण और निरंतर तैनाती का लाभ उठाने का प्रयास करें। आप जेनकींस को सीआई/सीडी सर्वर के रूप में उपयोग कर सकते हैं, और छवि बनाने, छवि को धक्का देने और छवि को तैनात करने के लिए कुछ नौकरियां बना सकते हैं।

मैं आपके स्रोत कोड को गिट रेपो के बजाय डॉकर छवि में डालने की सलाह देता हूं। आप डॉकर छवि से कॉन्फ़िगरेशन फ़ाइलों को भी निकाल सकते हैं। Kubernetes v1.2 में, यह नई सुविधा 'ConfigMap' प्रदान करता है, इसलिए हम कॉन्फ़िगरेशन फ़ाइलों को ConfigMap में डाल सकते हैं। एक फली चलाते समय, विन्यास फाइल स्वचालित रूप से आरोहित किया जाएगा। यह बहुत सुविधा है।

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