Junior
Селектор деген эмне?
sobes.tech AI
AIден жооп
Кубернетес контекстинде (жана гана эмес) селектор — бул белгилүү бир ресурстарды тандоо (фильтрлөө) үчүн колдонулган белгилүү (же белгилердин топтому). Ал метадата негизинде ресурстарды байланыштыруу мүмкүнчүлүгүн берет.
Кубернетестеги селекторлорду колдонуу:
- Pod Selector — бул контроллер тарабынан башкарылуучу кайсы поддорду аныктайт.
- Service Selector — кызматка багытталган трафикти кайсы поддор алат, аны көрсөтөт.
- Node Selector — подду иштетүүгө болуучу түйүндөрдү аныктайт.
- NetworkPolicy Selector — белгилүү бир поддорго же аталыш кеңейтүүлөрүнө тармактык саясаттарды колдонуу үчүн пайдаланылады.
- ResourceQuota Scope Selector — белгилүү бир объекттер үчүн ресурстардын квоталарын чектөө мүмкүнчүлүгүн берет.
Мисал — YAMLда Service үчүн Pod Selector:
// Service аныктамасы
apiVersion: v1
kind: Service
metadata:
name: my-service
spec:
selector:
app: my-app // Селектор: кызмат трафикти app: my-app белгилери менен поддорго багыттайт
ports:
- protocol: TCP
port: 80
targetPort: 8080
Тийиштүү белгилери бар поддордун мисалы:
// Под аныктамасы 1
apiVersion: v1
kind: Pod
metadata:
name: my-app-pod-1
labels: // Бул белгилери бар поддор кызмат тарабынан тандалат
app: my-app
version: v1
spec:
containers:
- name: my-container
image: my-image
// Под аныктамасы 2 (да дагы тандалат)
apiVersion: v1
kind: Pod
metadata:
name: my-app-pod-2
labels:
app: my-app
env: production
spec:
containers:
- name: my-container
image: my-image
Селекторлор эки түргө бөлүнөт:
- Теңдик (Equality-based): так кілт жана/же маанинин так дал келүүсүнө негизделген. Операторлордун мисалдары:
=,==,!=. - Жыйынтык (Set-based): маанилердин топтомдорун колдонуу. Операторлордун мисалдары:
in,notin,exists(клавиштин бар экенин текшерүү),!exists(клавиштин жоктугун текшерүү).
Set-based селектордун мисалы:
// "environment" белгилери менен "production" же "staging" маанилери бар поддорду тандоо
selector:
matchLabels:
app: frontend
matchExpressions: // Set-based өрнөк
- key: environment
operator: In
values:
- production
- staging
// "beta" белгилери жок поддорду тандоо
selector:
matchExpressions:
- key: beta
operator: DoesNotExist
Ошентип, селекторлор Kubernetesте байланышты камсыз кылуу жана ресурстарды башкаруу үчүн негизги механизмдер болуп саналат, алардын метадата негизинде.