У меня есть модуль jenkins
, имеющий метку app: jenkins-master
. Он находится в jenkins
пространстве имен.
Я хочу модуль nginx
развертывания (на другом пространство имен, default
) для размещения в вышеуказанном модуле.
Поэтому я добавлю следующее в его спецификацию c:
spec:
affinity:
podAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
- weight: 100
podAffinityTerm:
namespaces:
- all
labelSelector:
matchExpressions:
- key: app
operator: In
values:
- jenkins-master
topologyKey: "kubernetes.io/os"
У меня кластер GKE из 8 узлов.
Из 5-6 раз, когда я создавал / удалял развертывание, модуль nginx
фактически никогда не приземлялся на том же узле, что и jenkins-master
.
I знаю, что это preferred
планирование, но это нормальное поведение?
Работа на GKE с "v1.15.9-gke.24"
edit 1 : у меня есть изменил topologyKey: "kubernetes.io/hostname"
, как предложено в нескольких ответах ниже, но это тоже мало помогло.
edit 2 : Это выделенные ресурсы для узла, который jenkins-master
pod запланировано на
Resource Requests Limits
cpu 1691m (43%) 5013m (127%)
memory 4456Mi (33%) 8902Mi (66%)
Поскольку планирование основано на запросах, я не понимаю, как при следующем развертывании не удается совместить, запросы, которые я делаю, минимальны
resources:
limits:
memory: "1Gi"
cpu: "100m"
requests:
memory: "100Mi"
cpu: "50m"