Junior
Mis on selektor?
sobes.tech AI
Vastus AI-lt
Kuberneți kontekstā selektors ir marķējums (vai marķējumu kopums), kas tiek izmantots noteiktu resursu izvēlei (filtrēšanai). Tas ļauj sasaistīt resursus, balstoties uz to metadatiem.
Kubernetes selektoru izmantošana:
- Pod Selector — nosaka, kuri podi tiek pārvaldīti ar šo kontrolieri.
- Service Selector — norāda, kuri podi saņems trafiku, kas vērsts uz pakalpojumu.
- Node Selector — nosaka klastera mezglus, kuros var tikt palaists pod.
- NetworkPolicy Selector — tiek izmantots, lai piemērotu tīkla politikas noteiktām podiem vai nosaukumu telpām.
- ResourceQuota Scope Selector — var ierobežot resursu kvotas noteiktiem objektiem.
Piemērs Pod Selector YAML failā pakalpojumam:
// Pakalpojuma definīcija
apiVersion: v1
kind: Service
metadata:
name: my-service
spec:
selector:
app: my-app // Selektors: pakalpojums novirza trafiku uz podiem ar marķējumu app: my-app
ports:
- protocol: TCP
port: 80
targetPort: 8080
Atbilstošu marķējumu podu piemērs:
// Pod definīcija 1
apiVersion: v1
kind: Pod
metadata:
name: my-app-pod-1
labels: // Podiem ar šiem marķējumiem tiks izvēlēti pakalpojuma
app: my-app
version: v1
spec:
containers:
- name: my-container
image: my-image
// Pod definīcija 2 (tiks izvēlēts arī)
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 ir divu veidu:
- Vienādojums (Equality-based): balstīts uz precīzu atbilstību atslēgai un/vai vērtībai. Operatoru piemēri:
=,==,!=. - Komplekti (Set-based): izmanto vērtību kopas. Operatoru piemēri:
in,notin,exists(atslēgas esamības pārbaude),!exists(atslēgas neesamības pārbaude).
Set-based selektora piemērs:
// Izvēlēties podus ar marķējumu "environment" ar vērtību "production" vai "staging"
selector:
matchLabels:
app: frontend
matchExpressions: // Set-based izteiksme
- key: environment
operator: In
values:
- production
- staging
// Izvēlēties podus, kuriem nav marķējuma "beta"
selector:
matchExpressions:
- key: beta
operator: DoesNotExist
Tādējādi selektori ir būtisks mehānisms Kubernetes, nodrošinot saites un resursu pārvaldību, balstoties uz to metadatiem.