คอนเทนเนอร์· ~13 นาที
ConfigMap — แยกค่าตั้งค่าออกจาก image
เปลี่ยน config โดยไม่ต้อง build image ใหม่
ConfigMap เหมือนป้ายตั้งค่าที่แปะข้างเครื่อง แทนที่จะสลักค่าลงในตัวเครื่อง (image) เลย · อยากเปลี่ยน "URL ของฐานข้อมูล" หรือ "โหมด debug" ก็แก้ที่ป้าย ไม่ต้องหล่อเครื่องใหม่
หลักการสำคัญ (จาก 12-factor app): แยก config ออกจากโค้ด · image เดียวกันควรรันได้ทั้ง dev/staging/prod โดยเปลี่ยนแค่ค่าตั้งค่า · ConfigMap เก็บค่าที่ไม่เป็นความลับ (URL, ชื่อ, flag) แล้วป้อนให้ container
ค่าตั้งค่า/ความลับป้อนเข้า Pod เป็น env var หรือไฟล์
ConfigMapค่าทั่วไป (plain)
Secretค่าลับ (base64)
env / volume
Pod
containerอ่านค่าจาก env/ไฟล์
image เดียวกันรันได้ทุก environment เพราะค่าอยู่ข้างนอก
apiVersion: v1
kind: ConfigMap
metadata:
name: app-config
data:
APP_MODE: "production"
DB_HOST: "db.production.svc.cluster.local"
---
# ในสเปกของ container:
envFrom:
- configMapRef:
name: app-configสรุป Key Takeaways
- ConfigMap = แยกค่าตั้งค่าที่ไม่ลับออกจาก image (image เดียวรันได้ทุก environment)
- ป้อนเข้า container เป็น env var หรือ mount เป็นไฟล์
- อย่าเก็บความลับใน ConfigMap (plain text) — ใช้ Secret
อ่านจบแล้วอย่าลืมทำเครื่องหมาย

