Jenkins 系统设置
Jenkins 强大而灵活,已经成为 CI/CD 工作流的事实标准。但是,许多插件要求用户先设置系统级配置,然后才能使用。
KubeSphere DevOps 系统提供基于 Jenkins 的容器化 CI/CD 功能。为了向用户提供可调度的 Jenkins 环境,KubeSphere 使用 Configuration-as-Code 进行 Jenkins 系统设置,这要求用户登录 Jenkins 仪表板并在修改配置后重新加载。Jenkins 系统设置在 KubeSphere 当前版本的控制台上不可用,即将发布的版本将支持该设置。
本教程演示如何在 Jenkins 仪表板上设置 Jenkins 并重新加载配置。
准备工作
您已启用 KubeSphere DevOps 系统。
修改 ConfigMap
建议您通过 Configuration-as-Code (CasC) 在 KubeSphere 中配置 Jenkins。内置 Jenkins CasC 文件存储为 ConfigMap。
以
admin
身份登录 KubeSphere,点击左上角的平台管理,然后选择集群管理。如果您已经启用多集群功能并已导入 Member 集群,您可以选择一个特定集群来编辑 ConfigMap。如果您尚未启用多集群功能,请直接参考下一步。
在左侧导航栏中选择配置中心下的配置。在配置页面上,从下拉列表中选择
kubesphere-devops-system
,然后点击jenkins-casc-config
。在详情页面上,点击更多操作,在下拉列表中选择编辑配置文件。
jenkins-casc-config
的配置模板是一个 YAML 文件,如下图所示。您可以在 ConfigMap 的代理 (Kubernetes Jenkins Agent) 中修改容器镜像、标签等内容,或者在 podTemplate 中添加容器。完成操作后,点击更新。
登录 Jenkins 重新加载配置
修改 jenkins-casc-config
后,您需要在 Jenkins 仪表板的 Configuration as Code 页面上重新加载更新后的系统配置。这是因为直接通过 Jenkins 仪表板配置的系统设置可能在 Jenkins 重新调度之后被 CasC 配置覆盖。
执行以下命令获取 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
您可以看到如下所示的预期输出,获取 Jenkins 的 IP 地址和端口号。
http://10.77.1.201:30180
使用地址
http://Node IP:Port Number
访问 Jenkins。安装 KubeSphere 时,默认情况下也会安装 Jenkins 仪表板。Jenkins 还配置有 KubeSphere LDAP,这意味着您可以直接使用 KubeSphere 帐户(例如admin/P@88w0rd
)登录 Jenkins。备注
取决于您的实例的部署位置,您可能需要设置必要的端口转发规则并在您的安全组中放行端口
30180
,以便访问 Jenkins。登录仪表板后,点击导航栏中的 Manage Jenkins。
向下翻页并点击 Configuration as Code.
要重新加载 ConfigMap 中已修改的配置,请点击 Apply new configuration。
有关如何通过 CasC 设置 Jenkins 的更多信息,请参见 Jenkins 文档。
备注
在当前版本中,并非所有插件都支持 CasC 设置。CasC 仅会覆盖通过 CasC 设置的插件配置。