Junior
Co je to selektor?
sobes.tech AI
Odpověď od AI
Selektor v kontextu Kubernetes (a nejen tam) je značka (nebo sada značek), která se používá k výběru (filtraci) určitých zdrojů. Umožňuje spojit zdroje na základě jejich metadat.
Použití selektorů v Kubernetes:
- Pod Selector v Deployment/ReplicaSet: Určuje, které pody jsou řízeny tímto kontrolérem.
- Service Selector: Udává, které pody budou přijímat provoz směřující na službu.
- Node Selector v specifikaci Pod: Určuje uzly clusteru, na kterých může být spuštěn pod.
- NetworkPolicy Selector: Používá se k aplikaci síťových politik na určité pody nebo jmenné prostory.
- ResourceQuota Scope Selector: Může omezit kvóty na zdroje pro určité objekty.
Příklad Pod Selector v YAML pro službu:
// Definice služby
apiVersion: v1
kind: Service
metadata:
name: my-service
spec:
selector:
app: my-app // Selector: služba bude směrovat provoz na pody s označením app: my-app
ports:
- protocol: TCP
port: 80
targetPort: 8080
Příklad podů s odpovídajícími značkami:
// Definice podu 1
apiVersion: v1
kind: Pod
metadata:
name: my-app-pod-1
labels: // Pody s těmito značkami budou vybrány službou
app: my-app
version: v1
spec:
containers:
- name: my-container
image: my-image
// Definice podu 2 (bude také vybrán 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:
- Rovnost (Equality-based): Založeno na přesném shodě klíče a/nebo hodnoty. Příklady operátorů:
=,==,!=. - Na základě množin (Set-based): Používají množiny hodnot. Příklady operátorů:
in,notin,exists(kontrola existence klíče),!exists(kontrola absence klíče).
Příklad set-based selektoru:
// Vybrat pody s etiketou "environment" s hodnotou "production" nebo "staging"
selector:
matchLabels:
app: frontend
matchExpressions: // Výraz založený na množinách
- key: environment
operator: In
values:
- production
- staging
// Vybrat pody, které nemají etiket "beta"
selector:
matchExpressions:
- key: beta
operator: DoesNotExist
Tímto jsou selektory základním mechanismem v Kubernetes pro zajištění spojení a správu zdrojů na základě jejich metadat.