Junior
Seçici nedir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Kubernetes (ve sadece değil) bağlamında selector, belirli kaynakları seçmek (filtrelemek) için kullanılan bir etiket (veya etiketler kümesi)dir. Bu, kaynakları meta verilerine göre birbirine bağlamayı sağlar.
Kubernetes'te selector'ların kullanımı:
- Pod Selector Deployment/ReplicaSet içinde: Bu kontrolör tarafından yönetilen pod'ları belirler.
- Service Selector: Hangi pod'ların servise yönlendirilen trafiği alacağını gösterir.
- Node Selector Pod Tanımında: Bir pod'un çalıştırılabileceği küme düğümlerini belirler.
- NetworkPolicy Selector: Belirli pod'lara veya isim alanlarına ağ politikalarını uygulamak için kullanılır.
- ResourceQuota Scope Selector: Belirli nesneler için kaynak kotalarını sınırlayabilir.
YAML'de Pod Selector örneği:
// Servis tanımı
apiVersion: v1
kind: Service
metadata:
name: my-service
spec:
selector:
app: my-app // Seçici: servis, app: my-app etiketi olan pod'lara trafik yönlendirecek
ports:
- protocol: TCP
port: 80
targetPort: 8080
İlgili etiketlere sahip pod örnekleri:
// Pod tanımı 1
apiVersion: v1
kind: Pod
metadata:
name: my-app-pod-1
labels: // Bu etiketlere sahip pod'lar servis tarafından seçilecek
app: my-app
version: v1
spec:
containers:
- name: my-container
image: my-image
// Pod tanımı 2 (de servis tarafından seçilecek)
apiVersion: v1
kind: Pod
metadata:
name: my-app-pod-2
labels:
app: my-app
env: production
spec:
containers:
- name: my-container
image: my-image
Selector'lar iki türe ayrılır:
- Eşitlik (Equality-based): Anahtar ve/veya değer ile tam eşleşmeye dayanır. Operatör örnekleri:
=,==,!=. - Kümeye Dayalı (Set-based): Değerler kümesi kullanır. Operatör örnekleri:
in,notin,exists(anahtarın varlığını kontrol eder),!exists(anahtarın yokluğunu kontrol eder).
Set tabanlı selector örneği:
// "environment" etiketi "production" veya "staging" olan pod'ları seç
selector:
matchLabels:
app: frontend
matchExpressions: // Set tabanlı ifade
- key: environment
operator: In
values:
- production
- staging
// "beta" etiketi olmayan pod'ları seç
selector:
matchExpressions:
- key: beta
operator: DoesNotExist
Bu nedenle, selector'lar Kubernetes'te bağlantıları sağlamak ve meta verilere dayalı kaynak yönetimi için temel bir mekanizmadır.