Junior
Čo je to selektor?
sobes.tech AI
Odpoveď od AI
Selektor v kontexte Kubernetes (a nie len) je značka (alebo súbor značiek), ktorá sa používa na výber (filtráciu) určitých zdrojov. Umožňuje prepojiť zdroje na základe ich metadát.
Použitie selektorov v Kubernetes:
- Pod Selector v Deployment/ReplicaSet: Určuje, ktoré pod-y riadi daný kontrolér.
- Service Selector: Uvádza, ktoré pod-y budú prijímať prenos smerovaný na službu.
- Node Selector v Pod Specification: Určuje uzly klastru, na ktorých môže byť spustený pod.
- NetworkPolicy Selector: Používa sa na uplatnenie sieťových politík na určité pod-y alebo priestory mien.
- ResourceQuota Scope Selector: Môže obmedziť kvóty na zdroje pre určité objekty.
Príklad Pod Selector v YAML pre Service:
// Definícia služby
apiVersion: v1
kind: Service
metadata:
name: my-service
spec:
selector:
app: my-app // Selektor: služba bude smerovať prenos na pod-y s označením app: my-app
ports:
- protocol: TCP
port: 80
targetPort: 8080
Príklad podov s príslušnými značkami:
// Definícia podu 1
apiVersion: v1
kind: Pod
metadata:
name: my-app-pod-1
labels: // Pod-y s týmito značkami budú vybrané službou
app: my-app
version: v1
spec:
containers:
- name: my-container
image: my-image
// Definícia podu 2 (tiež bude vybraný službou)
apiVersion: v1
kind: Pod
metadata:
name: my-app-pod-2
labels:
app: my-app
env: production
spec:
containers:
- name: my-container
image: my-image
Selektory majú dva typy:
- Rovnosť (Equality-based): Založené na presnom zhodovaní kľúča a/alebo hodnoty. Príklady operátorov:
=,==,!=. - Založené na množinách (Set-based): Používajú množiny hodnôt. Príklady operátorov:
in,notin,exists(kontrola prítomnosti kľúča),!exists(kontrola neprítomnosti kľúča).
Príklad set-based selektora:
// Vybrať pod-y s označením "environment" s hodnotou "production" alebo "staging"
selector:
matchLabels:
app: frontend
matchExpressions: // Set-based výraz
- key: environment
operator: In
values:
- production
- staging
// Vybrať pod-y, ktoré nemajú označenie "beta"
selector:
matchExpressions:
- key: beta
operator: DoesNotExist
Takže, selektory sú základným mechanizmom v Kubernetes na zabezpečenie väzieb a riadenie zdrojov na základe ich metadát.