Junior
Seçici nədir?
sobes.tech Süni İntellekt
AI-dan cavab
Kubernetes kontekstində (və yalnız deyil) selector, müəyyən resursları seçmək (filtrləmək) üçün istifadə olunan etiket (və ya etiketlər to‘plami)dir. Bu, resurslarni metama’lumotlar asosida bir-biriga bog‘lash imkonini beradi.
Kubernetesda selectorlarning qo‘llanilishi:
- Pod Selector Deployment/ReplicaSet ichida: Bu kontroler tomonidan boshqariladigan podlarni belgilaydi.
- Service Selector: Qaysi podlar xizmatga yo‘naltirilgan trafikni olishini ko‘rsatadi.
- Node Selector Pod spetsifikatsiyasida: Pod ishga tushirilishi mumkin bo‘lgan klaster tugunlarini belgilaydi.
- NetworkPolicy Selector: Tarmoqli siyosatlarni ma’lum podlar yoki nomlar uchun qo‘llash uchun ishlatiladi.
- ResourceQuota Scope Selector: Ma’lum ob’ektlar uchun resurs kvotalarini cheklash mumkin.
YAMLda Pod Selector misoli:
// Xizmat ta’rif
apiVersion: v1
kind: Service
metadata:
name: my-service
spec:
selector:
app: my-app // Selector: xizmat, app: my-app belgisiga ega podlarga trafikni yo‘naltiradi
ports:
- protocol: TCP
port: 80
targetPort: 8080
Mos keladigan belgilarga ega podlar misoli:
// Pod ta’rif 1
apiVersion: v1
kind: Pod
metadata:
name: my-app-pod-1
labels: // Bu belgilarga ega podlar xizmat tomonidan tanlanadi
app: my-app
version: v1
spec:
containers:
- name: my-container
image: my-image
// Pod ta’rif 2 (ham xizmat tomonidan tanlanadi)
apiVersion: v1
kind: Pod
metadata:
name: my-app-pod-2
labels:
app: my-app
env: production
spec:
containers:
- name: my-container
image: my-image
Selectorlar ikki turga bo‘linadi:
- Tenglik (Equality-based): Kalit va/yoki qiymatning aniq mosligi asosida. Operatorlar misoli:
=,==,!=. - Set-based: Qiymatlar to‘plamini ishlatadi. Operatorlar misoli:
in,notin,exists(kalit mavjudligini tekshirish),!exists(kalit mavjud emasligini tekshirish).
Set-based selector misoli:
// "environment" belgisiga ega bo‘lgan podlarni tanlash, uning qiymati "production" yoki "staging"
selector:
matchLabels:
app: frontend
matchExpressions: // Set-based ifoda
- key: environment
operator: In
values:
- production
- staging
// "beta" belgisiga ega bo‘lmagan podlarni tanlash
selector:
matchExpressions:
- key: beta
operator: DoesNotExist
Shu tarzda, selectorlar Kubernetesda bog‘lanishlarni ta’minlash va resurslarni metama’lumotlariga asoslangan boshqarish uchun asosiy mexanizmdir.