首页 > 其他分享 >jenkins-k8s pod方式动态生成slave节点

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

时间:2025-01-23 15:58:10浏览次数:3  
标签:kind slave name io jenkins pod k8s pipline

一. 简述: 

  使用 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: 

标签:kind,slave,name,io,jenkins,pod,k8s,pipline
From: https://blog.csdn.net/gujimoxiao/article/details/145319250

相关文章

  • Flannel怎样实现不同网段的pod之间的通信
    1.UDP模式(早期支持,性能差)描述:UDP模式是Flannel最早期支持的一种工作模式,它将网络流量通过UDP数据包进行传输。工作原理:在这种模式下,Flannel会将容器网络的流量通过UDP隧道进行封装。这意味着数据包会通过虚拟隧道在不同的节点间传输。性能问题:由于UDP隧道会引......
  • 在 CentOS 7 上为 Jenkins 配置 Node.js 和 npm 的完整指南
    个人名片......
  • Pod的删除过程
    Kubernetes中Pod删除的详细流程在Kubernetes(简称K8s)中,删除一个Pod是一个多阶段的过程,涉及多个组件的协同工作。以下是Pod删除过程中发生的主要事件:1.发出删除命令用户通过命令行工具或API接口发出删除请求,例如:kubectldeletepod<pod-name>删除命令也可以通......
  • Pod的探针区别
    Kubernetes中的Pod探针:监控容器运行状态的核心机制在Kubernetes(简称K8s)中,Pod可以通过三种类型的探针(Probe)来监控容器的运行状态,确保应用程序的健康和服务稳定性。这三种探针分别是:1.存活探针(LivenessProbe)功能:检查容器是否仍然处于正常运行状态。如果Liveness探针......
  • Pod的重启策略
    KubernetesPod的重启策略在Kubernetes(简称K8s)中,Pod的重启策略(RestartPolicy)决定了当容器失败时,kubelet应该如何处理容器的重启行为。重启策略主要由spec.restartPolicy字段定义,并适用于整个Pod中的所有容器。Kubernetes支持以下三种主要的重启策略:1.Always(默认策略......
  • jenkins-pipeline 动态生成参数
    一.简述:  常情况下,jenkins的参数构建可能需要手动定义,或结合第三方插件(如gitparameter)实现日常。的参数化构建。但在一些特殊的场景下,可能无法满足我们的需求,比如:通过应用树的API获取某个接口信息,然后动态生成构建参数。在pipeline的环境中,可能没法通过第三方参数......
  • jenkins-通过api获取所有job及最新build信息
    日常维护的API接口功能:前提:python1.获取所有job:defget_all_jobs(jenkins_url,username,password):url=f"{jenkins_url}/api/json"response=requests.get(url,auth=(username,password))ifresponse.status_code==200:data=response......
  • pod的生命周期
    -Pod的生命周期经历了一系列的状态变化,每个状态反映了Pod当前所处的不同阶段。1.Pending定义:当创建一个Pod时,它会首先进入Pending状态。此时,Kubernetes正在进行节点调度、容器镜像拉取或等待资源准备。原因:Pod可能尚未被调度到特定的Node上,或者其依赖的卷(Volume......
  • Pod的类型
    在Kubernetes中,Pod可以根据其创建和管理的方式分为不同的类型,主要包括静态Pod、自主式Pod和动态Pod。它们之间的主要区别体现在生命周期管理、控制方式和自动恢复等方面。1.静态Pod管理方式:由kubelet直接管理,而不是由Kubernetes控制平面中的APIServer或控制器......
  • 解决 Jenkins 环境下 Lingui 构建报错 "btoa is not defined"
    问题描述在 JenkinsCI环境中构建React 项目时,遇到了以下错误:Error:btoaisnotdefined11|};12|constQkImagePreview=(props:QkImagePreviewType)=>{>13|const{i18n,t}=useLingui();|^^^^^^^^^^^14|co......