Sobes.tech
Junior

Селектор дегеніміз не?

sobes.tech AI

AI-дан жауап

Kubernetes контекстіндегі селектор (және тек қана емес) — бұл белгi (немесе белгілер жиынтығы), ол белгілі бір ресурстарды таңдау (сүзу) үшін пайдаланылады. Ол метадеректер негізінде бір ресурсты басқа ресурстармен байланыстыруға мүмкіндік береді.

Kubernetes-те селекторларды қолдану:

  • Pod Selector в Deployment/ReplicaSet: Бұл контроллер басқаратын подларды анықтайды.
  • Service Selector: Бұл сервистің трафигін алатын подларды көрсетеді.
  • Node Selector в Pod Specification: Бұл кластердің қай түйіндерінде под іске қосылатынын анықтайды.
  • NetworkPolicy Selector: Бұл желілік саясаттарды белгілі бір подларға немесе аттар кеңістіктеріне қолдану үшін пайдаланылады.
  • ResourceQuota Scope Selector: Бұл белгілі бір объектілер үшін ресурстардың квоталарын шектеуге мүмкіндік береді.

Мысал ретінде Service YAML-дағы 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

Белгілері бар подлар мысалы:

// Pod анықтамасы 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

// Екінші под (да селектор арқылы таңдалады)
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-те ресурстарды байланыстыру және басқару үшін метадеректер негізінде қолданылатын негізгі механизм.