Является ли хорошей практикой (выполнимой) объединение правил nodeAfinity и podAffinity при назначении модулей на узлы в Kubernetes? - PullRequest
0 голосов
/ 08 января 2020

Является ли хорошей практикой (осуществимой) объединение правил nodeAfinity и podAffinity при назначении модулей для узлов на kubernetes.

Пример:

apiVersion: v1
kind: Pod
metadata:
  name: node-and-pod-affinity-combined
spec:
  affinity:
    nodeAffinity:
      requiredDuringSchedulingIgnoredDuringExecution:
        nodeSelectorTerms:
        - matchExpressions:
          - key: kubernetes.io/e2e-az-name
            operator: In
            values:
            - e2e-az1
    podAffinity:
      requiredDuringSchedulingIgnoredDuringExecution:
      - labelSelector:
          matchExpressions:
          - key: node-label-key
            operator: In
            values:
            - some-node-label-value

1 Ответ

2 голосов
/ 08 января 2020

Конечно, вы можете объединить их. На самом деле это обеспечивает своего рода сходство в планировании модулей, выбранных вами с помощью podAffinity. Даже если эти модули не имеют ни одного nodeAffinity или podAffinity, планировщик попытается запланировать их на узлы, на которых работают ваши node-and-pod-affinity-combined модули.

Более распространенным вариантом использования было бы совместное использование nodeAffinity и podAntiAffinity для распределения модулей по множеству узлов.

...