Sobes.tech
Junior

Селектор чист?

sobes.tech AI

Ҷавоб аз AI

Селектор дар контексти Kubernetes (ва танҳо) — ин тамға (ё гурӯҳи тамғаҳо), ки барои интихоби (филтр кардан) баъзе захираҳо истифода мешавад. Он имкон медиҳад, ки захираҳоро бар асоси метаданашон пайваст кардан мумкин бошад.

Истифодаи селекторҳо дар Kubernetes:

  • Pod Selector дар Deployment/ReplicaSet: муайян мекунад, ки кадом подҳо бо назорати ин контролер идора мешаванд.
  • Service Selector: нишон медиҳад, ки кадом подҳо ба трафик, ки ба хизмат меравад, ҷавобгӯ хоҳанд буд.
  • Node Selector дар Pod Specification: муайян мекунад, ки кадом нодҳо метавонанд подро дар он ҷо оғоз кунанд.
  • NetworkPolicy Selector: барои татбиқи сиёсати шабакавӣ ба баъзе подҳо ё фазоҳои ном истифода мешавад.
  • ResourceQuota Scope Selector: метавонад квотҳои захираҳоро барои объектҳои муайян маҳдуд кунад.

Масали Pod Selector дар YAML барои 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: // Ифодаи асоси маҷмӯъ
    - key: environment
      operator: In
      values:
        - production
        - staging

// Интихоб кардани подҳо, ки тамғаи "beta" надоранд
selector:
  matchExpressions:
    - key: beta
      operator: DoesNotExist

Аз ин рӯ, селекторҳо асосии механизм дар Kubernetes барои таъмин кардани пайвандҳо ва идоракунии захираҳо бар асоси метаданашон мебошанд.