本文主要演示如何在阿里云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. 在左侧导航栏中,选择路由与负载均衡 > 服务
    4. 单击Jenkins服务的外部端点登录Jenkins。
      Jenkins服务
    5. 在Jenkins登录页面,输入用户名和密码。默认用户名和密码均为admin,请于登录后进行修改。
      Jenkins登录页面

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

  1. 配置Kubernetes Cloud,动态创建slave pod。
    1. 在左侧导航栏中,选择系统管理
    2. 在右侧的Manage Jenkins页面,单击系统设置
    3. Cloud区域中,填写KubeConfig中的API server URL作为Kubernetes URL
      Kubernetes URL
    4. 单击凭证右侧的Add
      Add
      在添加凭据前,先在Serverless Kubernetes集群的基本信息页面,找到配置集群凭据中提供的KubeConfigKubeConfig
      在弹出的添加凭据对话框中,完成以下配置:添加凭据
      • 类型:选择Docker Host Certificate Authentication
      • Client Key:填写KubeConfig中client-key-data对应的内容。
      • Client Certificate:填写KubeConfig中client-certificate-data对应的内容。
      • ID:填写证书ID。本示例中填写k8sCertAuth。
      • 描述:填写描述。
    5. 单击添加
    6. 测试连通性。
      Credentials下拉框中选择上一步添加的凭据,单击Test ConnectionTest Connection
    7. 填写jenkins服务的外部端点作为Jenkins URL,jenkins-agent的外部端点作为Jenkins tunnel
      Jenkins URL
    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, 请根据提示信息进行替换。
      api_server_url
    4. 单击Build
    5. 查看Build History。下图表示构建成功。
      Build History
    6. 构建成功后,登录容器服务管理控制台,查看应用的服务地址。
    7. 构建成功后,登录,查看应用的服务地址。

获取源码仓库

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