Кубернет Дженкинс раб с нечетными номерами ресурсов - PullRequest
1 голос
/ 31 января 2020

Я использую модуль Jenkins pod со схемами руля и веду странные логи при запуске заданий jenkins. Запрошенные ресурсы и лимиты находятся в состоянии по умолчанию - по сравнению с тем, что я установил в значениях.

helm install stable/jenkins --name jenkins -f jenkins.yaml

И после создания и запуска случайного задания из пользовательского интерфейса

Agent jenkins-agent-mql8q is provisioned from template Kubernetes Pod Template
---
apiVersion: "v1"
kind: "Pod"
metadata:
  annotations: {}
  labels:
    jenkins/jenkins-slave: "true"
    jenkins/label: "jenkins-jenkins-slavex"
  name: "jenkins-agent-mql8q"
spec:
  containers:
  - args:
    - "********"
    - "jenkins-agent-mql8q"
    env:
    - name: "JENKINS_SECRET"
      value: "********"
    - name: "JENKINS_TUNNEL"
      value: "jenkins-agent:50000"
    - name: "JENKINS_AGENT_NAME"
      value: "jenkins-agent-mql8q"
    - name: "JENKINS_NAME"
      value: "jenkins-agent-mql8q"
    - name: "JENKINS_AGENT_WORKDIR"
      value: "/home/jenkins/agent"
    - name: "JENKINS_URL"
      value: "http://jenkins:8080/"
    image: "jenkins/jnlp-slave:3.27.1"
    imagePullPolicy: "IfNotPresent"
    name: "jnlp"
    resources:
      limits:
        memory: "2Gi"
        cpu: "2"
      requests:
        memory: "1Gi"
        cpu: "1"

И мой Значения helm:

master:
(...)
  resources:
    requests:
      cpu: "1"
      memory: "1Gi"
    limits:
      cpu: "3"
      memory: "3Gi"
agent:
  resources:
    requests:
      cpu: "2"
      memory: "2Gi"
    limits:
      cpu: "4"
      memory: "3Gi"

Любая идея, почему он порождает агентов со значениями по умолчанию от 1 кПа / 1Gi до 2cpu / 2Gi

1 Ответ

1 голос
/ 05 февраля 2020

Я воспроизвел ваш сценарий, я объясню, как это работает для меня. Я использую GKE с Kubernetes 1.15.3 и HELM 2.16.1.

Я загрузил таблицу управления рулем на свой локальный компьютер и распаковал файл, чтобы настроить значение.yaml:

$ helm fetch stable/jenkins
$ tar xzvf jenkins-1.9.16.tgz

В папке jenkins отредактируйте строки 422-427 из файла values.yaml.

agent:
...
    requests:
      cpu: "2"
      memory: "2Gi"
    limits:
      cpu: "4"
      memory: "3Gi"
...

Это настроит контейнер агента для запуска с указанными ресурсами.

Выполните другие изменения в файле, если вы хотите, для этого примера я позволю со значениями по умолчанию.

Установить таблицу управления:

helm install jenkins/ -n jenkins

После установки следуйте инструкциям на экран для доступа к консоли jenkins.

Чтобы проверить, будут ли агенты запускаться с настроенными ресурсами, давайте создадим новое задание с помощью простой команды оболочки.

New Item > Freestyle project

В разделе «Конфигурация задания» выберите «Выполнить оболочку» над разделом «Сборка» в раскрывающемся списке. Введите любую команду linux как id, ls, uname -a и т. Д. c ...

Сохранить и вызвать кнопку Build Now.

Проверить в кубернетах для новые контейнеры, в этом случае новый контейнер агента имеет имя default-6w3fq

См. описание модуля:

kubectl describe pod default-6w3fq

Name:         default-6w3fq
...
IP:           
Containers:
  jnlp:
    Image:      jenkins/jnlp-slave:3.27-1
...
    Limits:
      cpu:     4
      memory:  3Gi
    Requests:
      cpu:     2
      memory:  2Gi
...

Вы можете ждать задания завершите и просмотрите журналы заданий, вместо этого используйте команду kubectl.

Я попытался выполнить развертывание со значениями по умолчанию и обновить таблицу управления новыми значениями значений ... ничего не произошло. Это сработало, когда я запустил обновление с флагом --force: helm upgrade jenkins jenkins/ --force

- force - принудительно обновлять ресурсы с помощью стратегии замены

Ссылки: https://helm.sh/docs/helm/helm_upgrade/ https://github.com/helm/charts/tree/master/stable/jenkins

...