Sobes.tech
Junior

Шта је селектор?

sobes.tech АИ

Одговор од АИ

Selektor u kontekstu Kubernetes (i ne samo) je oznaka (ili skup oznaka), koja se koristi za izbor (filtriranje) određenih resursa. Omogućava povezivanje resursa na osnovu njihovih metapodataka.

Primena selektora u Kubernetes:

  • Pod Selector u Deployment/ReplicaSet: Određuje koje podove upravlja taj kontroler.
  • Service Selector: Navodi koje podove će primati saobraćaj usmeren na servis.
  • Node Selector u Pod Specification: Određuje čvorove klastera na kojima može biti pokrenut pod.
  • NetworkPolicy Selector: Koristi se za primenu mrežnih politika na određene podove ili imenske prostore.
  • ResourceQuota Scope Selector: Može ograničiti kvote za resurse za određene objekte.

Primer Pod Selektora u YAML za Service:

// Definicija servisa
apiVersion: v1
kind: Service
metadata:
  name: my-service
spec:
  selector:
    app: my-app // Selektor: servis će usmeravati saobraćaj na podove sa oznakom app: my-app
  ports:
    - protocol: TCP
      port: 80
      targetPort: 8080

Primer podova sa odgovarajućim oznakama:

// Definicija pod 1
apiVersion: v1
kind: Pod
metadata:
  name: my-app-pod-1
  labels: // Podovi sa ovim oznakama biće izabrani od strane servisa
    app: my-app
    version: v1
spec:
  containers:
  - name: my-container
    image: my-image

// Definicija pod 2 (takođe će biti izabran od strane servisa)
apiVersion: v1
kind: Pod
metadata:
  name: my-app-pod-2
  labels:
    app: my-app
    env: production
spec:
  containers:
  - name: my-container
    image: my-image

Selektori postoje u dva tipa:

  • Jednakost (Equality-based): Osnovani na tačnom podudaranju ključa i/ili vrednosti. Primeri operatora: =, ==, !=.
  • Na osnovu skupova (Set-based): Koriste skupove vrednosti. Primeri operatora: in, notin, exists (provera postojanja ključa), !exists (provera odsustva ključa).

Primer set-based selektora:

// Izabrati podove sa oznakom "environment" sa vrednošću "production" ili "staging"
selector:
  matchLabels:
    app: frontend
  matchExpressions: // Set-based izraz
    - key: environment
      operator: In
      values:
        - production
        - staging

// Izabrati podove koji nemaju oznaku "beta"
selector:
  matchExpressions:
    - key: beta
      operator: DoesNotExist

Tako, selektori su fundamentalni mehanizam u Kubernetes za obezbeđivanje veza i upravljanje resursima na osnovu njihovih metapodataka.