Junior
რა არის სელექტორი?
sobes.tech AI
პასუხი AI-სგან
კუბერნეტეს კონტექსტში (და არა მხოლოდ) სელექტორი — ეს არის მარკა (ან მარკების ნაკრები), რომელიც გამოიყენება გარკვეული რესურსების არჩევისთვის (ფილტრაციისთვის). ის საშუალებას აძლევს რესურსების დაკავშირებას მათი მეტადატების საფუძველზე.
კუბერნეტესში სელექტორების გამოყენება:
- Pod Selector — განსაზღვრავს, რომელი პოდები მართავს ამ კონტროლერს.
- Service Selector — მიუთითებს, რომელი პოდები მიიღებენ სერვისზე მიმართულ ტრეფიკს.
- Node Selector — განსაზღვრავს კვანძებს, რომლებზეც შეიძლება იყოს დაწყებული პოდი.
- NetworkPolicy Selector — გამოიყენება კონკრეტული პოდების ან სახელფასო სივრცეების ქსელური პოლიტიკების გამოყენებისთვის.
- ResourceQuota Scope Selector — შეუძლია შეზღუდოს რესურსების კვოტები გარკვეული ობიექტებისთვის.
მაგალითი Pod Selector YAML-ში სერვისისთვის:
// სერვისის განსაზღვრა
apiVersion: v1
kind: Service
metadata:
name: my-service
spec:
selector:
app: my-app // სელექტორი: სერვისი მიმართავს ტრეფიკს `app: my-app` მარკით პოდებზე
ports:
- protocol: TCP
port: 80
targetPort: 8080
მოწესრიგებული მარკებით პოდების მაგალითი:
// პოდის განსაზღვრა 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
// პოდის განსაზღვრა 2 (მეორედაც შეირჩევა)
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-ში კავშირების უზრუნველყოფისა და რესურსების მართვისთვის მათი მეტადატების საფუძველზე.