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.