15 Kasım 2022 Salı

Kubernetes kind: Pod nodeAffinity

Giriş
nodeAffinity olarak şunlar kullanılabilir
- requiredDuringSchedulingIgnoreDuringExecution
- preferredDuringSchedulingIgnoreDuringExecution

Şeklen şöyle

Planlanan Yeni nodeAffinity Tipleri
Şunlar planlanıyor
- requiredDuringSchedulingRequiredDuringExecution
- preferredDuringSchedulingRequiredDuringExecution

Execution ile eğer çalışma esnasında bir label kaldırılırsa veya değiştirilirse kastediliyor
Şeklen şöyle

Operator Tipleri
operator olarak şunlar kullanılabilir
-  In
-  NotIn
-  Exists

1. requiredDuringSchedulingIgnoreDuringExecution
Pod mutlaka belirtilen worker üzerinde çalışmalıdır


Örnek - In
Şöyle yaparız
kubectl label nodes node-01 size=large
Şeklen şöyle

Şöyle yaparız. Burada label olarak Large, Medium olan worker tercih ediliyor.
apiVersion: v1
kind: Pod
metadata:
 name: dbapp
spec:
 containers:
 - name: dbapp
   image: db-processor
 affinity:
  nodeAffinity:
    requiredDuringSchedulingIgnoredDuringExecution
      nodeSelectorTerms:
      - matchExpresions:
        - key: Size
          operator: In
          values:
          - Large
          - Medium
Örnek - In
Şöyle yaparız. Burada label olarak e2e-az1, e2e-az2 ve custom-value olan worker tercih ediliyor.
apiVersion: v1
kind: Pod
metadata:
  name: with-node-affinity
spec:
  affinity:
    nodeAffinity:
      requiredDuringSchedulingIgnoredDuringExecution:
        nodeSelectorTerms:
        - matchExpressions:
          - key: kubernetes.io/e2e-az-name
            operator: In
            values:
            - e2e-az1
            - e2e-az2
      preferredDuringSchedulingIgnoredDuringExecution:
      - weight: 1
        preference:
          matchExpressions:
          - key: custom-key
            operator: In
            values:
            - custom-value
  containers:
  - name: with-node-affinity
    image: k8s.gcr.io/pause:2.0
Örnek - NotIn
Şöyle yaparız
affinity:
  nodeAffinity:
    requiredDuringSchedulingIgnoredDuringExecution
      nodeSelectorTerms:
      - matchExpresions:
        - key: Size
          operator: NotIn
          values:
          - Small
Örnek - Exists
Şöyle yaparız. Burada operator için "values" tanımlanmıyor. Sadece "Size" isimli bir label olması yeterli
affinity:
  nodeAffinity:
    requiredDuringSchedulingIgnoredDuringExecution
      nodeSelectorTerms:
      - matchExpresions:
        - key: Size
          operator: Exist
2. preferredDuringSchedulingIgnoreDuringExecution Kullanımı
Pod belirtilen worker üzerine atanmaya çalışılır. Eğer olmuyorsa herhangi başka bir worker'a atanır

Hiç yorum yok:

Yorum Gönder

Cluster Propotional Autoscaler - ReplicaSet Ekler/Siler

Giriş Açıklaması şöyle CPA aims to horizontally scale the number of Pod replicas based on the cluster’s scale. A common example is DNS ser...