อะไร คอนฟิกแมป
เป็น
ConfigMap เป็นวัตถุ API ที่ใช้เก็บข้อมูลที่ไม่เป็นความลับ
คู่คีย์-ค่าพ็อดสามารถใช้ ConfigMaps เป็นตัวแปรสภาพแวดล้อม
อาร์กิวเมนต์บรรทัดคำสั่ง หรือเป็นไฟล์คอนฟิกูเรชันในวอลุ่ม
ConfigMap ช่วยให้คุณแยกการกำหนดค่าเฉพาะสภาพแวดล้อมออกได้
จากอิมเมจคอนเทนเนอร์ของคุณ เพื่อให้แอปพลิเคชันของคุณทำได้อย่างง่ายดาย
แบบพกพา
กล่าวอีกนัยหนึ่งเมื่อ คอนฟิกแมป
ถูกสร้างขึ้นจากไฟล์ภายนอก (เช่นกรณีของคุณ) หรือจากค่าอื่น ๆ เซิร์ฟเวอร์ API จะตรวจสอบว่าทุกอย่างถูกต้องหรือไม่ จากนั้นจะบันทึกลงใน ฯลฯ
. นอกจากนี้ยังอธิบายเหตุผลว่าทำไมเมื่อคุณ แก้ไข
ของคุณ คอนฟิกแมป
คุณเห็นบริบททั้งหมดของมัน สิ่งนี้เกิดขึ้นเพราะ คอนฟิกแมป
คืออ่านจาก ฯลฯ
ไม่ใช่แหล่งข้อมูลภายนอกใดๆ
นี่เป็นหนึ่งในเหตุผลที่ไม่แนะนำให้จัดเก็บไฟล์บันทึกขนาดใหญ่เป็น configmaps หรือข้อมูลลับ เนื่องจากจะส่งผลต่อประสิทธิภาพของคลัสเตอร์ kubernetes เนื่องจากออบเจกต์ของคลัสเตอร์ทั้งหมดถูกจัดเก็บไว้ใน ฯลฯ
.
ปรับแต่ง
นี่เป็นวิธีหนึ่งในการบรรลุความต้องการของคุณในการเรียกใช้คำสั่งเดียวในการสร้าง/กำหนดค่า คอนฟิกแมป
ขึ้นอยู่กับไฟล์ในไดเร็กทอรีเดียวกัน
เป็นเครื่องมือแบบสแตนด์อโลนในการปรับแต่งออบเจ็กต์ Kubernetes ผ่านไฟล์การปรับแต่ง
ฉันสร้างตัวอย่างสั้น ๆ และง่าย ๆ เพื่อแสดงแนวคิด:
$ ต้นไม้
.
âââ application.properties
âââ kustomization.yaml
0 ไดเร็กทอรี 2 ไฟล์
$cat kustomization.yaml
เครื่องกำเนิดตัวเลือก:
enableNameSuffixHash: true # แฟล็กนี้ใช้เพื่อหลีกเลี่ยงการสร้าง configmap ใหม่ แต่จะถูกแก้ไขเมื่อบริบทของไฟล์เปลี่ยนไป
configMapGenerator:
- ชื่อ: การกำหนดค่าแอปพลิเคชัน
ไฟล์:
- application.properties
$cat application.properties
Listen.url=localhost:9010
client.url=some_url:3000
ทดสอบนี้คำสั่งนี้จะ เรนเดอร์เท่านั้น configmap จะยังไม่สร้าง:
$ kubectl ปรับแต่ง application.settings/
api เวอร์ชัน: v1
ข้อมูล:
แอปพลิเคชันคุณสมบัติ: |
Listen.url=localhost:9010
client.url=some_url:3000
ประเภท: ConfigMap
ข้อมูลเมตา:
ชื่อ: การกำหนดค่าแอปพลิเคชัน
ขั้นตอนสุดท้ายคือการ นำมาใช้ มัน:
$ kubectl ใช้ -k application.settings/
สร้าง configmap/application-config แล้ว
$ kubectl รับ ซม
ชื่อข้อมูลอายุ
การกำหนดค่าแอปพลิเคชัน 1 23 วินาที
คำอธิบายสั้น ๆ สำหรับคำสั่งด้านบน:
หากต้องการใช้ทรัพยากรเหล่านั้น ให้เรียกใช้ kubectl ที่ใช้กับ --kustomize หรือ -k
ธง.
ลิงค์ที่มีประโยชน์: