पृष्ठभूमि:
वर्तमान में हम अपनी सेवाओं के लिए डॉकर और डॉकर कंपोज का उपयोग कर रहे हैं। हमने विभिन्न वातावरणों के लिए विन्यास को फाइलों में बदल दिया है जो कि अनुप्रयोग द्वारा पढ़े गए पर्यावरण चरों को परिभाषित करता है। उदाहरण के लिए एक prod.env
फ़ाइल:
ENV_VAR_ONE=Something Prod
ENV_VAR_TWO=Something else Prod
और एक test.env
फ़ाइल:
ENV_VAR_ONE=Something Test
ENV_VAR_TWO=Something else Test
इस प्रकार हम केवल कंटेनर को शुरू करते समय prod.env
या test.env
फाइल का उपयोग कर सकते हैं :
docker run --env-file prod.env <image>
हमारा एप्लिकेशन तब परिभाषित किए गए पर्यावरण चर के आधार पर इसके कॉन्फ़िगरेशन को चुनता है prod.env
।
प्रशन:
- क्या कुबेरनेट्स में एक फ़ाइल से पर्यावरण चर प्रदान करने का एक तरीका है (उदाहरण के लिए, जब एक फली को परिभाषित करते हुए) उन्हें इस तरह से हार्डकोड करने के बजाय:
एपीवर्सन: v1 तरह: फली मेटाडाटा: लेबल: संदर्भ: docker-k8s-lab नाम: mysql- फली नाम: mysql- फली कल्पना: कंटेनर: - env: - नाम: MYSQL_USER मूल्य: mysql - नाम: MYSQL_PASSWORD मूल्य: mysql - नाम: MYSQL_DATABASE मूल्य: नमूना - नाम: MYSQL_ROOT_PASSWORD मूल्य: सुपरसेक्ट चित्र: "mysql: latest" नाम: mysql बंदरगाहों: - कंटेनरपार्ट: 3306
- यदि यह संभव नहीं है, तो सुझाया दृष्टिकोण क्या है?
Secret
याConfigMap
संसाधन नहीं बनाना चाहता क्योंकि यह सिर्फ अस्थायी है और परीक्षण के लिए उपयोग करता है। मेरे पास k8s क्लस्टर में अनुमतियाँ हैं। मैं शायद एकSecret
संसाधन बनाने में सक्षम हो जाऊंगा, लेकिन पहले से ही निर्मित होने के बाद मैं उन्हें हटा नहीं पाऊंगा।