Sobes.tech
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те байланышты камсыз кылуу жана ресурстарды башкаруу үчүн негизги механизмдер болуп саналат, алардын метадата негизинде.