Bootstrap

jenkins-k8s pod方式动态生成slave节点

一. 简述: 

  使用 Jenkins 和 Kubernetes (k8s) 动态生成 Slave 节点是一种高效且灵活的方式来管理 CI/CD 流水线。通过这种方式,Jenkins 可以根据需要在 Kubernetes 集群中创建和销毁 Pod 来执行任务,从而充分利用集群资源并实现更好的隔离性和安全性。

二. 环境部署:

  1. k8s 集群环境。 

  2. 安装Kubernetes Plugin 。 

  3. 配置Kubernetes 权限凭证:

# cat jenkins-pipline.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
  name: jenkins-pipline
  namespace: jenkins-pipline

---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: jenkins-pipline
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
- kind: ServiceAccount
  name: jenkins-pipline
  namespace: jenkins-pipline

---
apiVersion: v1
kind: Secret
metadata:
  annotations:
    kubernetes.io/service-account.name: jenkins-pipline
  name: jenkins-pipline
  namespace: jenkins-pipline
type: kubernetes.io/service-account-token

 获取证书凭据:

kubectl get secrets -n jenkins-pipline -o jsonpath="{.items[?(@.metadata.annotations['kubernetes\.io/service-account\.name']=='jenkins-pipline')].data.token}" | base64 -d

4. jenkins上配置: 

创建凭据:选择上面的证书凭据 :

创建cloud: 

打开: 系统管理----节点和cloud-----create:

选择之前的凭据。 测试OK: 
;