Sobes.tech
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-ში კავშირების უზრუნველყოფისა და რესურსების მართვისთვის მათი მეტადატების საფუძველზე.