Kubernetes + Jenkins: как назначить всех подчиненных jenkins одному конкретному узлу - PullRequest
0 голосов
/ 07 сентября 2018

В моем кластере у меня есть один узел vm1 с меткой "kubernetes.io/hostname: vm-1". Могу ли я настроить назначение всех подчиненных модулей Pod узлу vm-1? Я пытаюсь установить «Выбор узла» в Jenkin> Конфигурация> облако, но он не работает.

Спасибо

Ответы [ 2 ]

0 голосов
/ 10 сентября 2018

Используйте плагин Kubernetes синтаксис yaml и добавьте раздел affinity, как описано в https://kubernetes.io/docs/concepts/configuration/assign-pod-node/

0 голосов
/ 07 сентября 2018

Все, что вам нужно сделать, это указать это в Deployment вашего раба jenkins с помощью nodeAffinity, например:

---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: jenkins-slave
  namespace: ci
  labels:
    app: jenkins
    role: slave
spec:
  selector:
    matchLabels:
      app: jenkins
      role: slave
  template:
    metadata:
      labels:
        app: jenkins
        role: slave
    spec:
      affinity:
        nodeAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            nodeSelectorTerms:
              - matchExpressions:
                  - key: kubernetes.io/hostname
                    operator: In
                    values:
                      - vm-1

Вы можете увидеть некоторые примеры здесь

Однако я не уверен, является ли kubernetes.io/hostname допустимой меткой, которая будет использоваться при выборе привязки узла, возможно, вам потребуется создать такую, как role, dedicated или type.

...