Junior
Селектор дегеніміз не?
sobes.tech AI
AI-дан жауап
Kubernetes контекстіндегі селектор (және тек қана емес) — бұл белгi (немесе белгілер жиынтығы), ол белгілі бір ресурстарды таңдау (сүзу) үшін пайдаланылады. Ол метадеректер негізінде бір ресурсты басқа ресурстармен байланыстыруға мүмкіндік береді.
Kubernetes-те селекторларды қолдану:
- Pod Selector в Deployment/ReplicaSet: Бұл контроллер басқаратын подларды анықтайды.
- Service Selector: Бұл сервистің трафигін алатын подларды көрсетеді.
- Node Selector в Pod Specification: Бұл кластердің қай түйіндерінде под іске қосылатынын анықтайды.
- NetworkPolicy Selector: Бұл желілік саясаттарды белгілі бір подларға немесе аттар кеңістіктеріне қолдану үшін пайдаланылады.
- ResourceQuota Scope Selector: Бұл белгілі бір объектілер үшін ресурстардың квоталарын шектеуге мүмкіндік береді.
Мысал ретінде Service YAML-дағы Pod Selector:
// Service анықтамасы
apiVersion: v1
kind: Service
metadata:
name: my-service
spec:
selector:
app: my-app // Селектор: сервис трафигін app: my-app белгілері бар подларға бағыттайды
ports:
- protocol: TCP
port: 80
targetPort: 8080
Белгілері бар подлар мысалы:
// Pod анықтамасы 1
apiVersion: v1
kind: Pod
metadata:
name: my-app-pod-1
labels: // Бұл белгілермен подлар селектор арқылы таңдалады
app: my-app
version: v1
spec:
containers:
- name: my-container
image: my-image
// Екінші под (да селектор арқылы таңдалады)
apiVersion: v1
kind: Pod
metadata:
name: my-app-pod-2
labels:
app: my-app
env: production
spec:
containers:
- name: my-container
image: my-image
Селекторлар екі түрге бөлінеді:
- Теңдік (Equality-based): Кілт пен/немесе мәннің дәл сәйкестігіне негізделген. Операторлар мысалы:
=,==,!=. - Мәндер жиынтығына негізделген (Set-based): Мәндер жиынтығын пайдаланады. Операторлар мысалы:
in,notin,exists(кілттің бар-жоғын тексеру),!exists(кілттің жоқтығын тексеру).
Set-based селектор мысалы:
// "environment" кілті бар және оның мәні "production" немесе "staging" болатын подларды таңдау
selector:
matchLabels:
app: frontend
matchExpressions: // Set-based өрнек
- key: environment
operator: In
values:
- production
- staging
// "beta" кілті жоқ подларды таңдау
selector:
matchExpressions:
- key: beta
operator: DoesNotExist
Осылайша, селекторлар — Kubernetes-те ресурстарды байланыстыру және басқару үшін метадеректер негізінде қолданылатын негізгі механизм.