ခဏလေး ဒီလိုပဲ စဉ်းစားကြည့်
Kubernetes မှာ resource (pod, deployment, service) တွေကို key-value pair label တပ်နိုင်ပါတယ် — ဥပမာ `app: web`, `env: production`, `tier: frontend`. Selector ကတော့ 'ဒီ label ရှိတဲ့ resource အားလုံးကို ရွေးပါ' ဆိုတဲ့ query ပါ — Service က pod ကို ရှာတဲ့အခါ, Deployment က ကိုယ့် pod ဘယ်ဟာလဲ သိတဲ့အခါ Label/Selector ကို သုံးပါတယ်။ Label က resource name လို unique မဟုတ်ပါ — pod ၅၀ မှာ တူညီတဲ့ label ရှိနိုင်ပါတယ်, Selector က အဲဒီ ၅၀ ခုလုံးကို တစ်ပြိုင်နက် ရွေးနိုင်ပါတယ်။
လက်တွေ့ scenario နဲ့ ချိတ်ကြည့်မယ်
`kubectl get pods -l app=web` ရေးရင် app=web label ပါတဲ့ pod တွေချည်း filter ကြည့်လို့ရပါတယ် — production troubleshooting လုပ်တဲ့အခါ (pod ရာနဲ့ချီရှိတဲ့ cluster) label filter က အရေးကြီးပါတယ်။ Team တွေက convention သတ်မှတ်ကြပါတယ် — `app`, `env`, `team`, `version` စတဲ့ label ကို consistent ထားရင် ရှာဖွေရလွယ်ပါတယ်။
အတူတူ ကြည့်မယ်
# Filter pods by label
kubectl get pods -l app=web
# Multiple labels (AND condition)
kubectl get pods -l app=web,env=production
# Add a label to an existing pod
kubectl label pod my-first-pod team=backend
# See labels on all pods
kubectl get pods --show-labelsNAME READY STATUS LABELS
web-deployment-7d9f8c6b5-abc12 1/1 Running app=web,env=production
web-deployment-7d9f8c6b5-def34 1/1 Running app=web,env=production၅ မိနစ် စမ်းကြည့်
Pod/Deployment အားလုံးကို app, env label ၂ ခု တပ်ထားပြီး `kubectl get pods -l` command အမျိုးမျိုးနဲ့ filter ကြည့်ပါ။
သတိလေးတစ်ချက်
Deployment ရဲ့ selector field ကို create ပြီးတဲ့နောက် ပြန်ပြင်လို့ မရပါ (immutable) — အစကတည်းက သေချာစဉ်းစားပြီး ရေးပါ။