Jenkins BlueOcean 多分支 部署 Kubernetes 应用

zccheu 2020-07-18

在实际的项? 中,往往?个代码仓库都会有很多分?的,?如开发、测试、线上这些分?都是分开的,?般情况下 开发或者测试的分?我们希望提交代码后就直接进? CI/CD 操作,?线上的话最好增加?个???预 的步骤,这就需要 Jenkins 对代码仓库有多分?的?持。这里我们使用 BlueOcean 来完成此处的 CICD 。

插件安装

登录 Jenkins Web UI -> 点击左侧的 Manage Jenkins -> Manage Plugins -> Available -> 搜索查找 BlueOcean -> 点击下载安装并重启

Jenkins BlueOcean 多分支 部署 Kubernetes 应用

创建新 pipeline

安装完成后,我们可以在 Jenkins Web UI ??左侧看到会多?个 Open Blue Ocean 的??,我们点 击就可以打开

Jenkins BlueOcean 多分支 部署 Kubernetes 应用

点击开始创建?个新的 Pipeline,我们可以看到可以选择 Git、Bitbucket、GitHub,我们这? 选择 GitHub,

Jenkins BlueOcean 多分支 部署 Kubernetes 应用

可以看到这?需要?个访问我们 GitHub 仓库权限的 token,在 GitHub 的仓库中创建?个 Personal access token:

Jenkins BlueOcean 多分支 部署 Kubernetes 应用

将?成的 token 填?下?的创建 Pipeline 的流程中,然后我们就有权限选择??的仓库,包括下?需要构建的仓库,?如我们这?需要构建的是 jenkins-demo 这个仓库,然后创建 Pipeline 即可:

Jenkins BlueOcean 多分支 部署 Kubernetes 应用

Blue Ocean 会?动扫描仓库中的每个分?,会为根?件夹中包含Jenkinsfile的每个分?创建?个 Pipeline,?如我们这?有 master 和 dev 两个分?,并且两个分?下?都有 Jenkinsfile ?件,所以创建完成后会?成两个 Pipeline。

Jenkins BlueOcean 多分支 部署 Kubernetes 应用

两个文件中 k8s.yaml 文件中 namespace 不一样,用来区分不同的分支

Jenkins BlueOcean 多分支 部署 Kubernetes 应用

构建结果

~]# kubectl  get pod -n default  -o wide # master 分支部署到 default 分支
NAME                                      READY   STATUS    RESTARTS   AGE    IP             NODE    NOMINATED NODE   READINESS GATES
mvnweb-demo-8f8d69455-l4s4c               1/1     Running   0          5m5s   10.244.1.3     node2   <none>           <none>
~]# kubectl  get pod -n dev -o wide
NAME                                   READY   STATUS    RESTARTS   AGE     IP           NODE    NOMINATED NODE   READINESS GATES
mvnweb-demo-8ef7d50-578945f7fb-cr6kv   1/1     Running   0          5m40s   10.244.1.2   node2   <none>           <none>

Jenkins BlueOcean 多分支 部署 Kubernetes 应用

相关推荐