本文主要演示如何在阿里云Serverless Kubernetes服务上快速搭建Jenkins持续集成环境,并基于提供的示例应用快速完成应用源码编译、镜像构建和推送以及应用部署的流水线。

前提条件

您已经成功创建了一个Serverless Kubernetes集群。有关详细信息,请参见创建 Serverless Kubernetes 集群。

部署Jenkins

  1. 执行以下命令下载部署文件:
    $ git clone https://github.com/AliyunContainerService/jenkins-on-serverless.git
    $ cd jenkins-on-serverless
  2. 完成jenkins_home持久化配置。
    Serverless Kubernetes目前不支持云盘,如需持久化jenkins_home,您可以挂载nfs volume, 修改
    serverless-k8s-jenkins-deploy.yaml文件,注释掉以下字段并配置您的nfs信息:

    #volumeMounts:
            #  - mountPath: /var/jenkins_home
            #    name: jenkins-home
          .....
          #volumes:
          #  - name: jenkins-home
          #    nfs:
          #      path: /
          #      server:

  3. 执行以下命令部署Jenkins。
    $ kubectl apply -f serverless-k8s-jenkins-deploy.yaml
  4. 登录Jenkins。
    1. 登录容器服务管理控制台。
    2. 在左侧导航栏中,选择路由与负载均衡 > 服务
    3. 单击Jenkins服务的外部端点登录Jenkins。
      在Serverless Kubernetes服务上快速搭建Jenkins环境及执行流水线构建
    4. 在Jenkins登录页面,输入用户名和密码。默认用户名和密码均为admin,请于登录后进行修改。
      在Serverless Kubernetes服务上快速搭建Jenkins环境及执行流水线构建

创建集群证书和镜像仓库证书,构建和部署示例应用

  1. 配置Kubernetes Cloud,动态创建slave pod。
    1. 在左侧导航栏中,选择系统管理
    2. 在右侧的Manage Jenkins页面,单击系统设置
    3. Cloud区域中,填写KubeConfig中的API server URL作为Kubernetes URL
      在Serverless Kubernetes服务上快速搭建Jenkins环境及执行流水线构建
    4. 单击凭证右侧的Add
      在Serverless Kubernetes服务上快速搭建Jenkins环境及执行流水线构建
      在添加凭据前,先在Serverless Kubernetes集群的
      基本信息页面,找到
      配置集群凭据中提供的
      KubeConfig

      在Serverless Kubernetes服务上快速搭建Jenkins环境及执行流水线构建
      在弹出的
      添加凭据对话框中,完成以下配置:

      在Serverless Kubernetes服务上快速搭建Jenkins环境及执行流水线构建
      • 类型:选择Docker Host Certificate Authentication
      • Client Key: 填写KubeConfig中client-key-data对应的内容。
      • Client Certificate: 填写KubeConfig中client-certificate-data对应的内容。
      • ID:填写证书ID。本示例中填写k8sCertAuth。
      • 描述:填写描述。
    5. 单击添加
    6. 测试连通性。

      Credentials下拉框中选择上一步添加的凭据,单击
      Test Connection

      在Serverless Kubernetes服务上快速搭建Jenkins环境及执行流水线构建
    7. 填写jenkins服务的外部端点作为Jenkins URL,jenkins-agent的外部端点作为Jenkins tunnel
      在Serverless Kubernetes服务上快速搭建Jenkins环境及执行流水线构建
    8. 单击Save保存配置。
  2. 通过kubectl在Serverless Kubernetes集群中创建jenkins-docker-cfg secret,用于设置镜像仓库权限。
    本示例中使用阿里云镜像服务提供的北京区域镜像仓库:

    $ docker login -u xxx -p xxx registry.cn-beijing.aliyuncs.com
    Login Succeeded
    $ kubectl create secret generic jenkins-docker-cfg  --from-file=/root/.docker/config.json

  3. 构建demo-pipeline并访问应用服务。
    1. 在Jenkins首页,单击demo-pipeline
    2. 在左侧导航栏中,选择Build with Parameters
    3. 根据自己的镜像仓库信息修改构建参数,并填写KubeConfig中的API server URL作为api_server_url。本示例中源码仓库分支为serverless,镜像为registry.cn-beijing.aliyuncs.com/haoshuwei/jenkins-java-demo:serverless, 请根据提示信息进行替换。
      在Serverless Kubernetes服务上快速搭建Jenkins环境及执行流水线构建
    4. 单击Build
    5. 查看Build History。下图表示构建成功。
      在Serverless Kubernetes服务上快速搭建Jenkins环境及执行流水线构建
    6. 构建成功后,登录容器服务管理控制台,查看应用的服务地址。

点击这里获取示例项目中使用的源码仓库。