Jenkins通过Kubernetes插件实现动态Pod Agent:安装插件后配置云连接(API地址、凭证)、定义Pod模板(镜像、资源、卷挂载),并在Pipeline中声明kubernetes agent执行构建与部署。

Jenkins 通过 Kubernetes 插件实现与 Kubernetes 集群的集成部署,核心在于让 Jenkins 能动态创建 Pod 作为构建代理(Agent),并在其中执行构建、镜像推送、kubectl 部署等操作。整个过程不依赖固定物理/虚拟机节点,而是按需拉起容器化 Agent,更贴合云原生实践。
安装 Kubernetes 插件
进入 Jenkins 管理界面 → 系统管理 → 插件管理 → 可选插件,搜索 Kubernetes,勾选并安装。安装完成后需重启 Jenkins 才能生效。注意:该插件是官方维护的,截至 2026 年仍在持续更新,无需额外兼容性处理。
配置 Kubernetes 云连接
系统管理 → 系统配置 → 云 → 新增一个 Kubernetes。关键配置项包括:
-
Kubernetes URL:填集群 API Server 地址,如
https://192.168.10.100:6443;若 Jenkins 运行在集群内,可用https://kubernetes.default.svc -
Credentials:选择或新建凭证,推荐使用 Secret text 类型,内容为 base64 解码后的
admin.pem和admin-key.pem拼接体(即 kubeconfig 中的 client-certificate-data + client-key-data) - Test Connection 按钮可验证连通性与权限;成功后会显示命名空间列表
定义动态 Agent 模板
在同一个 Kubernetes 云配置页中,展开“Kubernetes Pod 模板”:
- 设置 Pod 名称前缀、命名空间(如
jenkins-build) - 添加容器模板,指定镜像(如
jenkins/inbound-agent:4.11-1或自定义含kubectl、docker、mvn的镜像) - 挂载必要卷:ConfigMap 或 Secret 类型的 kubeconfig、Docker socket(
/var/run/docker.sock)、Maven 本地仓库(避免每次下载依赖) - 设置资源限制(CPU / Memory),防止构建任务耗尽集群资源
在 Pipeline 中调用 Kubernetes Agent 部署应用
流水线脚本中不再使用 agent any,而是显式声明运行环境:
pipeline {
agent {
kubernetes {
cloud 'kubernetes'
yaml '''
apiVersion: v1
kind: Pod
spec:
containers:
- name: maven
image: maven:3.8-openjdk-17
command: ['cat']
tty: true
volumeMounts:
- name: kubeconfig
mountPath: /home/jenkins/.kube/config
subPath: config
volumes:
- name: kubeconfig
secret:
secretName: jenkins-kubeconfig
'''
}
}
stages {
stage('Deploy to K8s') {
steps {
sh 'kubectl apply -f deployment.yaml --namespace=prod'
}
}
}
}也可用 kubernetesDeploy 步骤(需额外安装 Kubernetes Continuous Deploy Plugin)直接部署 YAML 或 Helm Chart。


















