2016-11-25 5 views
5

मूल्यों का उपभोग करने के लिए प्रलेखन (http://kubernetes.io/docs/user-guide/configmap/) पर उदाहरण कॉन्फ़िगरेशन पर आधारित है जहां प्रत्येक डेटा प्रविष्टि एक एकल जोड़ी/मान है। उदाहरण:संपत्ति फ़ाइलों से बनाए गए कॉन्फ़िगर की प्रविष्टियों का उपभोग

apiVersion: v1 
kind: ConfigMap 
metadata: 
    name: special-config 
    namespace: default 
data: 
    special.how: very 
    special.type: charm 

लेकिन जब हम संपत्ति फाइलों से एक ConfigMap बनाने के लिए, हर डेटा प्रविष्टि मूल्य ही कुंजी/जोड़ी मानों की सूची है। उदाहरण:

$ kubectl get configmaps game-config -o yaml 
apiVersion: v1 
kind: ConfigMap 
metadata: 
    name: game-config 
    [...] 
data: 
    game.properties: |- 
    enemies=aliens 
    lives=3 
    enemies.cheat=true 
    enemies.cheat.level=noGoodRotten 
    secret.code.passphrase=UUDDLRLRBABAS 
    secret.code.allowed=true 
    secret.code.lives=30 
    [...] 

ऐसी स्थिति में:

  1. हम एक ही प्रविष्टि कैसे उपभोग करते हैं (उदाहरण: enemies.cheat) एक वातावरण चर के रूप में?
  2. हम पर्यावरण प्रविष्टियों के एक सेट के रूप में सभी प्रविष्टियों (उदाहरण: सभी game.properties प्रविष्टियों) का उपभोग कैसे करते हैं, मानते हैं कि हम केवल पर्यावरण चर नाम के रूप में प्रत्येक कुंजी का उपयोग करते हैं?

उत्तर

4

आप एक प्रविष्टि का उपभोग नहीं कर सकते क्योंकि यह टेक्स्ट का एक बड़ा ब्लॉब है। आपके पास दो विकल्प हैं जो मैं देखता हूं:

  1. फ़ाइल से कॉन्फ़िगरेशन मानचित्र न बनाएं। इसके बजाय मैन्युअल रूप से ConfigMap में प्रत्येक प्रविष्टि बनाएँ। हालांकि, प्रत्येक कुंजी को अलग से उपभोग करना होगा, कम से कम this issue हल हो गया है।

  2. कॉन्फ़िगरेशन को पर्यावरण चर के रूप में उपयोग न करें। इसके बजाय उस कुंजी को वॉल्यूम के रूप में आरोहित करें और अपना एप्लिकेशन कुंजी/मान पढ़ें।

ऐसा लगता है कि दूसरा विकल्प आपके लिए अच्छी तरह से काम करेगा। यह आपको फ़ाइल से अपना कॉन्फ़िगरेशन जेनरेट करना जारी रखेगा, और आपको अपने कुबर्नेट्स मैनिफ़ेस्ट को लगातार बदलने के बिना सभी घोषित कुंजी/मानों का उपभोग करने की अनुमति देगा।

वॉल्यूम के रूप में आपके कॉन्फ़िगर मैप को घुमाने का एक अन्य लाभ यह है कि यह आपको अपनी कॉन्फ़िगरेशन में इन-प्लेस अपडेट करने की अनुमति देगा (यह मानते हुए कि आपका ऐप सहन करता है)। यदि आप कॉन्फ़िगरमैप कुंजी को पर्यावरण चर के रूप में माउंट करते हैं तो उन्हें अपडेट करने का एकमात्र तरीका ऐप को पुनरारंभ करना है।

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