跳转至

在指定的节点上运行流水线

本文介绍如何在应用工作台中客户的流水线任务在指定的节点上运行。

修改配置文件 jenkins-casc-config

  1. 前往容器管理模块,进入目标集群的详情页面,例如 kpanda-global-cluster 集群。

    进入集群详情

  2. 在左侧导航点击配置与密钥->配置项

    配置项

  3. 搜索 jenkins-casc-config,在列表选择编辑 YAML

    编辑 YAML

  4. 在 YAML 配置项 jenkins.yaml 中的 jenkins.cloud.kubernetes.templates 位置下为某个具体的 Agent 添加 nodeSelector: "ci=base" ,点击确定保存更改。

    添加selector

选择指定的节点添加标签

  1. 进入容器管理模块,在 kpanda-global-cluster 集群的详情页面,在左侧导航点击节点管理

    节点管理

  2. 选择目标的工作节点(例如 demo-dev-worker-03),点击修改标签

    修改标签

  3. 添加 ci=base 标签,点击确定保存更改。

    添加标签

访问 Jenkins Dashbord,重新加载配置

首先需要讲通过 NodePort 方式暴露 Jenkins Dashbord 的访问地址(其他暴露方式根据业务实际情况进行暴露)。

  1. 进入容器管理模块,在 kpanda-global-cluster 集群页面,在左侧导航栏点击容器网络 ->服务

    进入服务列表

  2. 搜索 amamba-jenkins,在列表选择更新

    更新jenkins

  3. 将访问类型更改为 NodePort,节点端口选择自动生成即可。

    更改访问类型

  4. 点击确定,然后返回到详情页面点击链接访问 Jenkins Dashboard。

    访问jenkins dashboard

  5. 输入账号/密码(默认为 admin/Admin01) ,进入到 Jenkins Dashboard 页面。

    登录

  6. 在左侧导航栏选择 Manage Jenkins

    manage jennkins

  7. 点击 Configuration as Code

    configascode

  8. Configuration as Code 点击 Reload existing configuration 。如果点击后在当前页面没有任何提示,说明配置加载生效。

    reload

运行流水线,检查是否在指定的节点上

  1. 应用工作台 创建一个流水线任务,并编辑 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 设置。重复上述操作即可。

  2. 点击立即执行 该流水线,前往容器管理查看执行该任务的 Pod 运行的节点。

    查看pod节点

  3. 可以看到执行该流水任务的 Pod 运行在了预期的 demo-dev-worker-03 节点上。

评论