ข้ามไปเนื้อหาหลัก
คอนเทนเนอร์· ~15 นาที

kubectl และแนวคิด Declarative

สั่งงานคลัสเตอร์ด้วย kubectl และไฟล์ YAML manifest

เปรียบเทียบให้เห็นภาพ

kubectl คือรีโมตคอนโทรลของคลัสเตอร์ · การสั่งมี 2 สไตล์: imperative = กดปุ่มสั่งทีละอย่าง ("เปิดแอร์เดี๋ยวนี้") กับ declarative = เขียนโพยไว้ว่าอยากให้ห้องเป็นยังไงแล้วให้ระบบจัดการ ("ห้องนี้ให้ 25°C เสมอ") — K8s แนะนำแบบหลัง

คำสั่ง kubectl ที่ใช้บ่อยที่สุด

kubectl get nodes            # ดูรายชื่อเครื่องในคลัสเตอร์
kubectl get pods             # ดู Pod ใน namespace ปัจจุบัน
kubectl get pods -A          # ดู Pod ทุก namespace
kubectl describe pod <ชื่อ>  # ดูรายละเอียด + เหตุการณ์ (ดีมากตอน debug)
kubectl logs <ชื่อ pod>       # ดู log ของ container
kubectl apply -f app.yaml    # ปรับคลัสเตอร์ให้ตรงกับไฟล์ (declarative)
kubectl delete -f app.yaml   # ลบสิ่งที่นิยามในไฟล์
สำรวจคลัสเตอร์ด้วยชุดคำสั่งพื้นฐาน

Imperative vs Declarative

  • Imperativekubectl run, kubectl create สั่งตรง ๆ เห็นผลไว เหมาะทดลอง/เรียนรู้ แต่ไม่มีบันทึกว่าระบบควรเป็นยังไง
  • Declarative — เขียนไฟล์ YAML บอก "อยากได้อะไร" แล้ว kubectl apply -f · ไฟล์เก็บใน Git ได้ ทำซ้ำได้ ตรวจสอบย้อนหลังได้ = มาตรฐานงานจริง

สรุป Key Takeaways

  • kubectl = รีโมตสั่งงานคลัสเตอร์ · get / describe / logs / apply คือชุดที่ใช้บ่อยสุด
  • Declarative (apply -f ไฟล์ YAML) เป็นมาตรฐานงานจริง — เก็บใน Git ทำซ้ำได้ idempotent
  • ทุก manifest มี 4 ฟิลด์: apiVersion, kind, metadata, spec · YAML เยื้องด้วย space ห้าม Tab
อ่านจบแล้วอย่าลืมทำเครื่องหมาย