在指定的节点上运行流水线¶
本文介绍如何在应用工作台中客户的流水线任务在指定的节点上运行。
修改配置文件 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 节点上。