Junior
Kas yra selektorius?
sobes.tech AI
Atsakymas iš AI
Kubernetes kontekste (ir ne tik) selektorius yra žymė (arba žymių rinkinys), naudojama tam tikrų išteklių pasirinkimui (filtravimui). Jis leidžia susieti išteklius remiantis jų metaduomenimis.
Selektorių taikymas Kubernetes:
- Pod Selector — nustato, kurie podai yra valdoma šio kontrolerio.
- Service Selector — nurodo, kurie podai gaus srautą, nukreiptą į paslaugą.
- Node Selector — nustato klasterio mazgus, kuriuose gali būti paleistas podas.
- NetworkPolicy Selector — naudojamas taikyti tinklo politiką tam tikriems podams ar vardų erdvėms.
- ResourceQuota Scope Selector — gali apriboti išteklių kvotas tam tikriems objektams.
Pavyzdys Pod Selector YAML faile paslaugai:
// Paslaugos apibrėžimas
apiVersion: v1
kind: Service
metadata:
name: my-service
spec:
selector:
app: my-app // Selektorius: paslauga nukreips srautą į podus su žyme app: my-app
ports:
- protocol: TCP
port: 80
targetPort: 8080
Atitinkamų žymių podų pavyzdys:
// Pod apibrėžimas 1
apiVersion: v1
kind: Pod
metadata:
name: my-app-pod-1
labels: // Podai su šiomis žymėmis bus pasirinkti paslaugos
app: my-app
version: v1
spec:
containers:
- name: my-container
image: my-image
// Pod apibrėžimas 2 (taip pat bus pasirinktas)
apiVersion: v1
kind: Pod
metadata:
name: my-app-pod-2
labels:
app: my-app
env: production
spec:
containers:
- name: my-container
image: my-image
Selektoriai būna dviejų tipų:
- Lygybė (Equality-based): pagrįsti tiksliu rakto ir/arba reikšmės atitikimu. Operatoriai:
=,==,!=. - Rinkiniai (Set-based): naudoja reikšmių rinkinius. Operatoriai:
in,notin,exists(raktų egzistavimo patikrinimas),!exists(raktų nebuvimo patikrinimas).
Set-based selektoriaus pavyzdys:
// Pasirinkti podus su žyme "environment" ir reikšme "production" arba "staging"
selector:
matchLabels:
app: frontend
matchExpressions: // Set-based išraiška
- key: environment
operator: In
values:
- production
- staging
// Pasirinkti podus, kurie neturi žymės "beta"
selector:
matchExpressions:
- key: beta
operator: DoesNotExist
Taip selektoriai yra pagrindinis mechanizmas Kubernetes, užtikrinantis ryšius ir išteklių valdymą remiantis jų metaduomenimis.