0Pricing
Kubernetes Basics · บทเรียน

ConfigMaps สำหรับการกำหนดค่า

แยกการกำหนดค่าแอปพลิเคชันออกจากอิมเมจคอนเทนเนอร์โดยใช้ ConfigMaps

ConfigMaps สำหรับการกำหนดค่า เป็นบทเรียน Kubernetes Basics ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Kubernetes Basics และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Kubernetes Basics มีบทเรียนทั้งหมด 4 บทเรียน

บทนำสู่ ConfigMaps

แอปพลิเคชันมักต้องใช้ข้อมูลการกำหนดค่า เช่น สตริงการเชื่อมต่อฐานข้อมูลหรือแฟล็กคุณลักษณะ

การฝังข้อมูลเหล่านี้ไว้โดยตรงในอิมเมจคอนเทนเนอร์อาจทำให้อิมเมจปรับเปลี่ยนได้ยากและอัปเดตลำบาก

ConfigMaps ช่วยให้คุณแยกการกำหนดค่าที่ไม่ใช่ข้อมูลละเอียดอ่อนของแอปพลิเคชันออกมาไว้ภายนอกและรวมศูนย์ ทำให้อิมเมจมีความยืดหยุ่น

ConfigMap คืออะไร

ConfigMap คือออบเจ็กต์ Kubernetes ที่ใช้จัดเก็บ ข้อมูลที่ไม่ใช่ข้อมูลละเอียดอ่อน ในรูปแบบคู่คีย์-ค่า

ให้คิดว่าเป็นศูนย์กลางสำหรับการตั้งค่าแอปพลิเคชัน ซึ่งพ็อดของคุณสามารถเข้าถึงได้

  • แยกการกำหนดค่า: แยกการกำหนดค่าออกจากโค้ดแอปพลิเคชัน
  • ความยืดหยุ่น: เปลี่ยนการตั้งค่าได้ง่ายโดยไม่ต้องสร้างอิมเมจใหม่
  • การเคลื่อนย้าย: ย้ายแอปไปมาระหว่างสภาพแวดล้อมที่มีการกำหนดค่าต่างกันได้

การสร้าง ConfigMaps: แบบ命令

คุณสามารถสร้าง ConfigMap ได้อย่างรวดเร็วโดยตรงจากบรรทัดคำสั่งด้วย kubectl create configmap

วิธีนี้เหมาะสำหรับการกำหนดค่าแบบง่าย ๆ ที่ใช้เพียงครั้งเดียว หรือการทดสอบอย่างรวดเร็ว

มาสร้าง ConfigMap ชื่อ my-app-config พร้อมการตั้งค่าระดับบันทึกกัน

kubectl create configmap my-app-config \
  --from-literal=log_level=INFO

การตรวจสอบ ConfigMap

หลังจากสร้าง ConfigMap แล้ว คุณสามารถดูรายละเอียดและตรวจสอบเนื้อหาได้

ใช้ kubectl get ร่วมกับแฟล็ก -o yaml เพื่อดูคำจำกัดความ YAML ทั้งหมด รวมถึงข้อมูลที่จัดเก็บไว้ภายใน

kubectl get configmap my-app-config -o yaml

ConfigMap แบบประกาศ (YAML)

สำหรับการใช้งานจริงและการควบคุมเวอร์ชัน แนวทางมาตรฐานคือการกำหนด ConfigMaps โดยใช้ไฟล์กำกับ YAML

แนวทางนี้ทำให้การกำหนดค่าของคุณสร้างซ้ำได้เหมือนเดิมและจัดการได้ง่ายควบคู่ไปกับโค้ดแอปพลิเคชัน

ต่อไปนี้คือตัวอย่าง YAML สำหรับการกำหนดค่าของเกม

apiVersion: v1
kind: ConfigMap
metadata:
  name: game-config
data:
  game.properties: |
    level=easy
    player_limit=10
  ui.properties: |
    theme=dark
    language=en

การใช้ ConfigMap จาก YAML

หากต้องการสร้าง ConfigMap game-config ให้บันทึกเนื้อหา YAML จากฉากก่อนหน้าลงในไฟล์ (เช่น game-config.yaml)

จากนั้นใช้ kubectl apply -f เพื่อติดตั้งลงในคลัสเตอร์ของคุณ

# Save the YAML to game-config.yaml
kubectl apply -f game-config.yaml
kubectl get configmap game-config -o yaml

ConfigMaps ในรูปแบบตัวแปรสภาพแวดล้อม

วิธีทั่วไปที่พ็อดจะนำข้อมูลจาก ConfigMap ไปใช้ คือการฉีดข้อมูลเป็นตัวแปรสภาพแวดล้อม

คุณสามารถระบุคีย์แต่ละรายการที่จะเปิดเผย หรือใช้ envFrom เพื่อเปิดเผยคู่คีย์-ค่าทั้งหมดจาก ConfigMap

วิธีนี้เหมาะสำหรับการตั้งค่าแอปพลิเคชันแบบง่าย

apiVersion: v1
kind: Pod
metadata:
  name: my-env-pod
spec:
  containers:
  - name: my-container
    image: busybox
    command: ["sh", "-c", "echo Log Level: $LOG_LEVEL && sleep 3600"]
    env:
    - name: LOG_LEVEL
      valueFrom:
        configMapKeyRef:
          name: my-app-config
          key: log_level

สาธิต: พ็อดพร้อมการกำหนดค่าสภาพแวดล้อม

มารันคำจำกัดความของพ็อดเพื่อดูตัวแปรสภาพแวดล้อม LOG_LEVEL ทำงานกัน

บันทึก YAML ของพ็อดลงใน env-pod.yaml ใช้งาน แล้วตรวจสอบบันทึกของพ็อด

# Save Pod YAML to env-pod.yaml
kubectl apply -f env-pod.yaml
kubectl logs my-env-pod

# Clean up
kubeclt delete pod my-env-pod

ConfigMaps ในรูปแบบโวลุมที่เมานต์

สำหรับแอปพลิเคชันที่ต้องใช้ไฟล์การกำหนดค่า (เช่น nginx.conf, application.properties) คุณสามารถเมานต์ ConfigMap เป็นโวลุมได้

คู่คีย์-ค่าแต่ละคู่ใน ConfigMap จะกลายเป็นไฟล์ภายในเส้นทางเมานต์ที่ระบุในคอนเทนเนอร์

apiVersion: v1
kind: Pod
metadata:
  name: my-volume-pod
spec:
  containers:
  - name: my-container
    image: busybox
    command: ["sh", "-c", "echo 'Contents of game.properties:' && cat /etc/config/game.properties && sleep 3600"]
    volumeMounts:
    - name: config-volume
      mountPath: /etc/config
  volumes:
  - name: config-volume
    configMap:
      name: game-config

สาธิต: พ็อดพร้อมการกำหนดค่าที่เมานต์

ตอนนี้มาปรับใช้พ็อดที่เมานต์ ConfigMap game-config ของเราเป็นโวลุมกัน

บันทึก YAML ของพ็อดลงใน volume-pod.yaml ใช้งาน แล้วตรวจสอบบันทึกเพื่อดูเนื้อหาของไฟล์ที่เมานต์

# Save Pod YAML to volume-pod.yaml
kubectl apply -f volume-pod.yaml
kubectl logs my-volume-pod

# Clean up
kubeclt delete pod my-volume-pod

ตรวจสอบความเข้าใจอย่างรวดเร็ว: ConfigMaps

ข้อความใดต่อไปนี้เกี่ยวกับ Kubernetes ConfigMaps ที่ถูกต้อง

สรุป: ConfigMaps

ทำได้ดีมาก คุณได้เรียนรู้แล้วว่า ConfigMaps ช่วยจัดการการกำหนดค่าใน Kubernetes ได้อย่างไร

  • จุดประสงค์: จัดเก็บข้อมูลการกำหนดค่าที่ไม่ใช่ข้อมูลละเอียดอ่อนในรูปแบบคู่คีย์-ค่า
  • การสร้าง: สร้างแบบ命令ด้วย kubectl create หรือสร้างแบบประกาศด้วย YAML
  • การนำไปใช้: ใช้เป็นตัวแปรสภาพแวดล้อมหรือไฟล์ที่เมานต์ภายในพ็อด
  • ประโยชน์: แยกการกำหนดค่าออกจากโค้ดแอปพลิเคชัน ทำให้มีความยืดหยุ่นมากขึ้น

ต่อไป เราจะสำรวจวิธีจัดการข้อมูลละเอียดอ่อนอย่างปลอดภัยด้วย Secrets ของ Kubernetes

คำถามที่พบบ่อย

บทเรียน “ConfigMaps สำหรับการกำหนดค่า” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “ConfigMaps สำหรับการกำหนดค่า” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Kubernetes Basics ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Kubernetes Basics มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “ConfigMaps สำหรับการกำหนดค่า”

แยกการกำหนดค่าแอปพลิเคชันออกจากอิมเมจคอนเทนเนอร์โดยใช้ ConfigMaps คุณปฏิบัติ Kubernetes Basics ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Kubernetes Basics หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Kubernetes Basics บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน

บทเรียน “ConfigMaps สำหรับการกำหนดค่า” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Kubernetes Basics นี้ได้ไหม

ได้ บทเรียน Kubernetes Basics ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. ConfigMaps สำหรับการกำหนดค่า
  2. Secrets สำหรับข้อมูลละเอียดอ่อน
  3. โวลุมถาวรและคำขอใช้โวลุม
  4. StorageClasses และการจัดสรรแบบพลวัต
← กลับไปที่ Kubernetes Basics