คอนเทนเนอร์· ~12 นาที
Labels และ Selectors
ระบบป้ายกำกับที่ K8s ใช้เชื่อมทุกอย่างเข้าด้วยกัน
Label เหมือนป้ายสติกเกอร์ที่แปะบนของ (เช่น app: web, env: prod) · Selector เหมือนคำสั่งค้นหา ("เอาทุกอย่างที่ติดป้าย app=web มา") · K8s ไม่ได้ผูกของเข้าด้วยกันแบบตายตัว แต่ใช้ป้ายกับการค้นหานี่แหละเชื่อมทุกอย่าง
Labels คือคู่ key/value ที่แปะบน object ได้ทุกชนิด · Selectors คือเงื่อนไขเลือก object ตาม label · กลไกนี้คือ "กาว" ที่ทำให้ Deployment หา Pod เจอ และ (บทหน้า) ทำให้ Service ส่ง traffic ถึง Pod ที่ถูกต้อง
selector ค้นหา Pod ด้วย label ที่ตรงกัน
Deploymentselector: app=web
Serviceselector: app=web
เลือกที่ app=web
Pod #1🏷️ app=web
Pod #2🏷️ app=web
Pod #3🏷️ app=api (ไม่ถูกเลือก)
Pod #3 ติดป้าย app=api จึงไม่ถูก selector app=web เลือก
kubectl get pods --show-labels # ดู label ของทุก Pod
kubectl get pods -l app=web # เอาเฉพาะที่ติด app=web
kubectl get pods -l 'env in (prod,staging)' # เลือกหลายค่า
kubectl label pod my-pod tier=frontend # แปะ label เพิ่มสรุป Key Takeaways
- Label = ป้าย key/value แปะบน object · Selector = เงื่อนไขค้นหาตาม label
- กลไกนี้คือกาวที่เชื่อม Deployment→Pod และ Service→Pod
- ตั้ง label เป็นระบบ (app/tier/env/version) ตั้งแต่แรก
- Label ใช้ค้นหา · Annotation ใช้แนบข้อมูลเฉย ๆ (ค้นไม่ได้)
อ่านจบแล้วอย่าลืมทำเครื่องหมาย

