Jenkins 系统设置

Jenkins 强大而灵活,已经成为 CI/CD 工作流的事实标准。但是,许多插件要求用户先设置系统级配置,然后才能使用。

KubeSphere DevOps 系统提供基于 Jenkins 的容器化 CI/CD 功能。为了向用户提供可调度的 Jenkins 环境,KubeSphere 使用 Configuration as Code 进行 Jenkins 系统设置,这要求用户登录 Jenkins 仪表板并在修改配置后重新加载。Jenkins 系统设置在 KubeSphere 当前版本的控制台上不可用,即将发布的版本将支持该设置。

本教程演示如何在 Jenkins 仪表板上设置 Jenkins 并重新加载配置。

准备工作

您已启用 KubeSphere DevOps 系统

Jenkins Configuration as Code

KubeSphere 默认安装 Jenkins Configuration as Code 插件,您可以通过 YAML 文件定义 Jenkins 的期望状态,便于再现 Jenkins 的配置(包括插件配置)。您可以在该目录中查看具体的 Jenkins 配置和示例 YAML 文件。

此外,您可以在 ks-jenkins 仓库中找到 formula.yaml 文件,查看插件版本并按需自定义这些版本。

plugin-version

修改 ConfigMap

建议您通过 Configuration as Code (CasC) 在 KubeSphere 中配置 Jenkins。内置 Jenkins CasC 文件存储为 ConfigMap

  1. admin 身份登录 KubeSphere,点击左上角的平台管理,然后选择集群管理

  2. 如果您已经启用多集群功能并已导入 Member 集群,您可以选择一个特定集群来编辑 ConfigMap。如果您尚未启用多集群功能,请直接参考下一步。

  3. 在左侧导航栏中选择配置中心下的配置。在配置页面上,从下拉列表中选择 kubesphere-devops-system,然后点击 jenkins-casc-config

    编辑 ConfigMap

  4. 在详情页面上,点击更多操作,在下拉列表中选择编辑配置文件

    more-list

  5. jenkins-casc-config 的配置模板是一个 YAML 文件,如下图所示。您可以在 ConfigMap 的代理 (Kubernetes Jenkins Agent) 中修改容器镜像、标签、资源请求 (Request) 和限制 (Limit) 等内容,或者在 podTemplate 中添加容器。完成操作后,点击更新

    编辑 Jenkins

登录 Jenkins 重新加载配置

修改 jenkins-casc-config 后,您需要在 Jenkins 仪表板的 Configuration as Code 页面上重新加载更新后的系统配置。这是因为直接通过 Jenkins 仪表板配置的系统设置可能在 Jenkins 重新调度之后被 CasC 配置覆盖。

  1. 执行以下命令获取 Jenkins 的地址。

    export NODE_PORT=$(kubectl get --namespace kubesphere-devops-system -o jsonpath="{.spec.ports[0].nodePort}" services ks-jenkins)
    export NODE_IP=$(kubectl get nodes --namespace kubesphere-devops-system -o jsonpath="{.items[0].status.addresses[0].address}")
    echo http://$NODE_IP:$NODE_PORT
    
  2. 您可以看到如下所示的预期输出,获取 Jenkins 的 IP 地址和端口号。

    http://10.77.1.201:30180
    
  3. 使用地址 http://Node IP:Port Number 访问 Jenkins。安装 KubeSphere 时,默认情况下也会安装 Jenkins 仪表板。Jenkins 还配置有 KubeSphere LDAP,这意味着您可以直接使用 KubeSphere 帐户(例如 admin/P@88w0rd)登录 Jenkins。

    Jenkins 仪表板

    备注

    取决于您的实例的部署位置,您可能需要设置必要的端口转发规则并在您的安全组中放行端口 30180,以便访问 Jenkins。
  4. 登录仪表板后,点击导航栏中的系统管理

    manage-jenkins

  5. 向下翻页并点击 Configuration as Code.

    configuration-as-code

  6. 要重新加载 ConfigMap 中已修改的配置,请点击应用新配置

    应用配置

  7. 有关如何通过 CasC 设置 Jenkins 的更多信息,请参见 Jenkins 文档

    备注

    在当前版本中,并非所有插件都支持 CasC 设置。CasC 仅会覆盖通过 CasC 设置的插件配置。

感谢您的反馈。如果您有关于如何使用 KubeSphere 的具体问题,请在 Slack 上提问。如果您想报告问题或提出改进建议,请在 GitHub 存储库中打开问题。