在指定的节点上运行流水线¶
本文介绍如何在应用工作台中客户的流水线任务在指定的节点上运行。
修改配置文件 jenkins-casc-config¶
-
前往
容器管理
模块,进入目标集群的详情页面,例如kpanda-global-cluster
集群。 -
在左侧导航点击
配置与密钥
->配置项
。 -
搜索
jenkins-casc-config
,在列表选择编辑 YAML
。 -
在 YAML 配置项
jenkins.yaml
中的jenkins.cloud.kubernetes.templates
位置下为某个具体的 Agent 添加nodeSelector: "ci=base"
,点击确定
保存更改。
选择指定的节点添加标签¶
-
进入
容器管理
模块,在kpanda-global-cluster
集群的详情页面,在左侧导航点击节点管理
。 -
选择目标的工作节点(例如 demo-dev-worker-03),点击
修改标签
。 -
添加
ci=base
标签,点击确定
保存更改。
访问 Jenkins Dashbord,重新加载配置¶
首先需要讲通过 NodePort 方式暴露 Jenkins Dashbord 的访问地址(其他暴露方式根据业务实际情况进行暴露)。
-
进入
容器管理
模块,在kpanda-global-cluster
集群页面,在左侧导航栏点击容器网络
->服务
。 -
搜索
amamba-jenkins
,在列表选择更新
。 -
将访问类型更改为 NodePort,节点端口选择自动生成即可。
-
点击确定,然后返回到详情页面点击链接访问 Jenkins Dashboard。
-
输入账号/密码(默认为
admin/Admin01
) ,进入到 Jenkins Dashboard 页面。 -
在左侧导航栏选择
Manage Jenkins
。 -
点击
Configuration as Code
。 -
在
Configuration as Code
点击Reload existing configuration
。如果点击后在当前页面没有任何提示,说明配置加载生效。
运行流水线,检查是否在指定的节点上¶
-
在
应用工作台
创建一个流水线任务,并编辑Jenkinsfile
如下:pipeline { agent { node { label 'base' } } stages { stage('Hello') { agent none steps { container('base') { echo 'Hello World' sh 'sleep 300' } } } } }
Note
需要注意 agent 部分需要选择 label 为 base。因为在配置文件中只为 base 设置了指定节点,如果需要为其他的 agent 设置。重复上述操作即可。
-
点击
立即执行
该流水线,前往容器管理
查看执行该任务的 Pod 运行的节点。 -
可以看到执行该流水任务的 Pod 运行在了预期的
demo-dev-worker-03
节点上。