我正在运行带有 Helm chart 的Jenkins pods ,并且在开始执行jenkins作业时有奇怪的日志。与我设置的值相比,请求的资源和限制似乎处于默认状态。

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

并且从UI创建并运行随机作业之后
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 值(value)观是
master:
(...)
  resources:
    requests:
      cpu: "1"
      memory: "1Gi"
    limits:
      cpu: "3"
      memory: "3Gi"
agent:
  resources:
    requests:
      cpu: "2"
      memory: "2Gi"
    limits:
      cpu: "4"
      memory: "3Gi"

知道为什么会生成默认值为1cpu / 1Gi到2cpu / 2Gi的代理

最佳答案

我已经转载了您的情况,我将为您解释这种情况。
我正在将GKE与Kubernetes 1.15.3和HELM 2.16.1一起使用。

我已经将 Helm chart 下载到我的本地计算机上,并解压缩了文件以自定义value.yaml:

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

在jenkins文件夹中,编辑values.yaml文件中的422-427行。
agent:
...
    requests:
      cpu: "2"
      memory: "2Gi"
    limits:
      cpu: "4"
      memory: "3Gi"
...

这将配置代理容器以使用指定的资源生成。

如果需要,可以在文件中执行其他更改,在本示例中,我将使用默认值。

安装 Helm chart :
helm install jenkins/ -n jenkins
安装后,请按照屏幕上的说明访问jenkins控制台。

要验证代理是否将从配置的资源开始,让我们使用简单的shell命令创建一个新作业。
New Item > Freestyle project
在作业配置中,从下拉列表的“构建”部分上方选择“执行 shell ”。输入任何Linux命令为idlsuname -a等...

保存并触发Build Now按钮。

在kubernetes中验证新容器,在这种情况下,将使用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命令。

我尝试使用默认值进行部署,并使用新的值升级 Helm chart ……什么也没发生。
当我使用--force标志运行升级时,该方法有效:helm upgrade jenkins jenkins/ --force


参考文献:
https://helm.sh/docs/helm/helm_upgrade/
https://github.com/helm/charts/tree/master/stable/jenkins

08-03 23:14
查看更多