मेरे पास एक configMap है और मैं उस से अंतिम लागू कॉन्फ़िगरेशन का उपयोग करके एक बैकअप configMap बनाना चाहता हूं।
मैं अंतिम लागू कॉन्फ़िगरेशन प्राप्त करने के लिए निम्न आदेश का उपयोग करता हूं:
kubectl get cm app-map -n app-space \
-o go-template \
--template='{{index .metadata "annotations" "kubectl.kubernetes.io/last-applied-configuration"}}' > backup.json
यह कुछ इस तरह देता है [backup.json की सामग्री]:
{"kind":"ConfigMap","apiVersion":"v1","metadata":{"name":"app-map","creationTimestamp":null},"data":{"app.yml":"xxxxxxxxx","config.yml":"yyyyyyyyy"}}
अब, मैं चाहता हूं कि मेरे बैकअप configMap का एक अलग नाम हो। इसलिए, मैं .metadata.name
को app-map
से app-map-backup
में बदलना चाहता हूं।
क्या ऐसा कोई तरीका है जिससे मैं इसे kubectl
और -o go-template
से हासिल कर सकूं? मैं इसे backup.json
फ़ाइल में लिखने से पहले नाम बदलना चाहता हूं।
मुझे पता है कि मैं jq
का उपयोग करके ऐसा कर सकता हूं लेकिन मुझे उस सर्वर पर jq
स्थापित करने की अनुमति नहीं है जहां मैं kubectl
का उपयोग कर रहा हूं।
2 जवाब
आप इसे केवल Kubectl का उपयोग करके नहीं कर सकते। लेकिन और भी तरीके हैं।
आप स्थिर रूप से लिंक किए गए jq बाइनरी को आधिकारिक jq वेबसाइट से डाउनलोड कर सकते हैं:
wget https://github.com/stedolan/jq/releases/download/jq-1.6/jq-linux64
chmod +x jq-linux64
और फिर आप इस बाइनरी का उपयोग निम्न की तरह कर सकते हैं:
kubectl -o go-template [...] | ./jq-linux64 ...
या आप sed
का उपयोग कर सकते हैं:
kubectl -o go-template [...] | sed 's/"name":"app-map"/"name":"app-map-backup"/'
आप kubectl bulk
प्लगइन का उपयोग कर सकते हैं। नीचे दिया गया कमांड आपके कॉन्फिग मैप को दोहराएगा
# get resource(s) and create with field(name) change
kubectl bulk configmap app-map -n app-space create name app-mapp-backup
Kubectl बल्क उपयोग करने के लिए बहुत शक्तिशाली है, मैं नमूने< की जांच करने का सुझाव देता हूं /ए>.
संबंधित सवाल
नए सवाल
kubernetes
KUBERNETES क्वेरीटेस्ट को विकसित किया जाना चाहिए। Kubernetes एक ओपन-सोर्स प्लेटफ़ॉर्म है जिसे कई मेजबानों और / या बादलों में तैनाती, स्केलिंग और एप्लिकेशन कंटेनरों के संचालन को स्वचालित करने के लिए डिज़ाइन किया गया है। क्लस्टर्स को कॉन्फ़िगर करने के बारे में प्रश्न https://serverfault.com पर पूछे जाने चाहिए