joeの小窝

Loading...

jenkins中pod模版详解

前提是安装了kubernetes插件,并对接了k8s

在连接k8s的那配置

k8s插件pod模板配置

pod模板主要包含2部分的配置

  • pod基本信息,可以配置pod名称,docker镜像,pod label,pod的原始yaml以及rbac权限

  • container的详细配置

1、pod基本信息

  • 名称: Pod 模板的名称;
  • 命名空间: Pod 要启动到 Kubernetes 的 Namespace 名称;
  • 标签列表: 用于 Jenkins Job 在执行任务时候,指定的slave的标签;
  • 用法: 控制 Jenkins 如何在这台机器上安排构建。有两个值“尽可能的使用这个节点”和“只允许运行绑定到这台机器的Job”两个选项,“尽可能的使用这个节点”会当有别的节点也能执行任务时会交由别的节点执行,而“只允许运行绑定到这台机器的Job”则是只能由这个节点执行任务。
  • 父级的 Pod 模板名称: 如果之前已经创建了 Pod 模板,这里则可以使用 Pod 模板名称引入该模板,让其当做父级模板。
  • 容器列表: 一个 Pod 中可以设置多个 Docker 容器,这里可以对这些容器进行配置。
  • 环境变量: Pod 环境变量设置。
  • 卷: 可以设置 Pod 中各个容器的存储挂载。
  • Concurrency Limit: 允许在 Kubernetes 集群中创建 Pod 的最大值。
  • Pod Retention: Pod 的保留策略,默认会替换基本设置中的保留策略值。
  • 代理的空闲存活时间(分): 在执行完任务后,代理将空闲,设置此值可以设置该代理可以空闲多久,当到达时间后,Pod 就可能被删掉。
  • Pod 寿命(秒): 不用 Pod 执行 Jenkins Job 任务是成功还是失败,到达这个指定时间都会将 Pod 杀死。
  • 连接 Jenkins 的超时时间(秒): Slave Pod 连接 Jenkins Master 的超时时间。
  • 注解: Slave Pod 的 Annotation 注解值。
  • Pod 的原始 yaml: 原始 Pod 模板 yaml,这个可以作为底层模板,可以在 yaml 中设置上面界面中配置的全部参数(Pod Template 中可以只配置个 yaml,就不需要对一堆界面上的东西进行配置了 )。
  • Yaml merge strategy: 对于 yaml 文件和界面上的 Pod 可视化配置的操作规则,可以将 yaml 中的配置和界面中的配置进行合并或者界面的配置替换掉 yaml 中的配置。
  • Show raw yaml in console: 是否显示 Pod 模板信息输出到控制台日志中。
  • 拉取镜像的 Secret: 拉取镜像的 Secret。
  • Service Account: Kubernetes 一般是使用 RBAC 插件管理权限,如果想对 Pod 设置一定权限,就需要配置此值。
  • 节点选择器: 节点筛选,选择 Pod 只能启动在带有特定 Label 的节点上。
  • 使用自定义的工作空间卷: 自定义 Jenkins 执行任务时候,将构建的文本,拉取的源码,编译的项目存放的地址。
  • 工具位置: 可以设置 Maven、Docker 工具,一般不需要特别设置。

2、container信息

主要是设置 Pod 模板中,Pod 包含的 Container 的参数配置,可以设置多个镜像的镜像名称、工作目录、环境变量、CPU 与 Memory 限制等。

  • 名称: 容器名称。
  • Docker 镜像: Docker 镜像名称。
  • 总是拉取镜像: 是否每次执行都重新拉取镜像。
  • 工作目录: 设置在执行 Jenkins Job 时容器上的工作目录。
  • 运行的命令: 在容器启动后执行的命令。
  • 命令参数: 要执行的命令的参数。
  • 分配伪终端: 是否能带伪命令终端。
  • EnvVars: 环境变量。
  • 以最高权限运行: 是否提供 Kubernetes 中的特权。
  • CPU 需求: 预估程序使用CPU大小。
  • 内存需求: 预估程序使用内存大小,Kubernetes 会根据此值来判断一个 Pod 最多启几个这样容器。
  • CPU 限制: CPU使用上限
  • 内存限制: 内存使用上限
  • 健康检查 Exec action: 存活探针执行健康检测 Exec action 命令
  • Initial Delay Seconds: 初始化延迟的探针检测时间
  • Timeout Seconds: 探针延迟超时时间
  • Failure Threshold: 探针检测认为探测失败几次就为真正失败。
  • Period Seconds: 探针检测间隔。
  • Success Threshold: 探针检测认为探测成功几次就为真正成功。
  • 端口映射: Docker 的端口映射。

3、案例

img

img

img

img

4、pipeline使用模板

pipeline {
    agent { label 'template' }  // label 就能直接使用这个模板
    stages {
        stage('test') {
            steps {
                sh "pwd"
                sh "ls -lh ."
            }
        }
    }
}
posted @ 2026-04-19 20:37  乔的港口  阅读(52)  评论(0)    收藏  举报