TKE上动态部署jenkins-slaves

本章我们来讲一下如何在TKE上搭建jenkins这个CI/CD工具,这边我们在进行构建的时候可以自动生成一个slave pod来进行走流水线,流水线跑完之后会自动销毁。

部署jenkins的rbac权限

[root@VM_0_13_centos jenkins]# cat rbac.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
  name: jenkins2
  namespace: jenkins

---

kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
  name: jenkins2
rules:
  - apiGroups: ["extensions", "apps"]
    resources: ["deployments"]
    verbs: ["create", "delete", "get", "list", "watch", "patch", "update"]
  - apiGroups: [""]
    resources: ["services"]
    verbs: ["create", "delete", "get", "list", "watch", "patch", "update"]
  - apiGroups: [""]
    resources: ["pods"]
    verbs: ["create","delete","get","list","patch","update","watch"]
  - apiGroups: [""]
    resources: ["pods/exec"]
    verbs: ["create","delete","get","list","patch","update","watch"]
  - apiGroups: [""]
    resources: ["pods/log"]
    verbs: ["get","list","watch"]
  - apiGroups: [""]
    resources: ["secrets"]
    verbs: ["get"]

---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
  name: jenkins2
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: jenkins2
subjects:
  - kind: ServiceAccount
    name: jenkins2
    namespace: jenkins

创建pvc进行jenkins的数据持久化

这边通过cbs卷挂载jenkins的数据

upload-image

部署jenkins的应用

采用treafik暴露域名给jenkins

访问初始化jenkins

查看登录的初始密码,然后安装好推荐的插件,安装好之后配置账号,直接登录即可。

upload-image

安装Kubernetes-plugin 插件

我这边已经安装好了,可以选择可选插件输入Kubernetes搜索找到插件进行安装

upload-image

连接TKE集群

在“系统配置”面板最下方,选择“云”模块下的【新增一个云】>【Kubernetes】。如下图所示

对应的证书文件和token以及api地址可以从TKE集群中节点上的下面文件获取

集群证书获取

apiserver地址和token

将上述获取的填入集群配置

upload-image

其他配置如下图所示,我们jenkins的master采用的hosts模式,所以这边直接用节点的8080端口

upload-image

slave 的 pod的配置如下

upload-image
upload-image

创建测试项目进行构建

upload-image
upload-image

执行任务构建

执行构建会自动生成一个slave pod,执行任务结束后会自动删除掉

upload-image
upload-image
upload-image

参考文档

https://www.qikqiak.com/post/kubernetes-jenkins1/

https://cloud.tencent.com/document/product/457/41396

最后更新于

这有帮助吗?