You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

搭建Jenkins Pipeline以部署至本地Kubernetes集群

Jenkins Pipeline 部署Docker镜像到本地Kubernetes集群完整工作流程

一、整体协同工作流程概述

核心执行步骤

  • 代码拉取:GitHub代码变更触发(或手动触发)Jenkins任务,Jenkins通过Git插件将代码拉取到自身工作目录(无论Jenkins运行在本地磁盘还是K8s集群内,此步骤逻辑一致)
  • 镜像处理(若需构建镜像):使用docker build命令或Docker插件构建镜像,推送到K8s集群可访问的镜像仓库(本地私有仓库或公共仓库均可)
  • 权限准备:Jenkins获取本地K8s集群的认证权限,确保能向集群发送部署指令
  • 部署执行:Jenkins调用Kubernetes插件或直接执行kubectl apply -f <YAML文件路径>,使用仓库中的YAML文件完成应用部署
  • 状态验证(可选):执行kubectl get pods、kubectl get deployments等命令,确认部署状态并输出到Jenkins控制台

组件协同逻辑

  • Jenkins:作为流程调度核心,串联代码拉取、镜像处理、部署执行全流程
  • GitHub:提供代码存储与版本控制,是Jenkins的代码来源
  • Docker:负责构建容器镜像(若业务需要),生成K8s可运行的应用载体
  • Kubernetes集群:应用最终运行环境,接收Jenkins的部署指令并完成资源调度
  • 认证体系:Jenkins与K8s之间的权限验证,通过kubeconfig文件或K8s服务账号实现

二、部署认证错误的核心解决逻辑

你遇到的认证错误本质是Jenkins未获得访问本地K8s集群的合法权限,分两种场景处理:

场景1:Jenkins运行在Windows本地磁盘

  1. 确保Jenkins服务使用的Windows账户有权访问本地K8s的kubeconfig文件(默认路径C:\Users\<你的账户>\.kube\config)
  2. 在Jenkins全局配置中添加Kubernetes集群,选择"kubeconfig文件"模式,指定上述路径;或直接复制kubeconfig内容粘贴到配置框
  3. 点击"测试连接",确认Jenkins能正常与K8s集群通信

场景2:Jenkins运行在本地K8s集群内

  1. 创建K8s服务账号(ServiceAccount),示例YAML:
    apiVersion: v1
    kind: ServiceAccount
    metadata:
      name: jenkins-deployer
      namespace: default
    
  2. 绑定该服务账号到具有部署权限的ClusterRole,示例YAML:
    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRoleBinding
    metadata:
      name: jenkins-deployer-binding
    roleRef:
      apiGroup: rbac.authorization.k8s.io
      kind: ClusterRole
      name: edit # edit角色拥有大部分资源的读写权限,适合部署场景
    subjects:
    - kind: ServiceAccount
      name: jenkins-deployer
      namespace: default
    
  3. 在Jenkins的Kubernetes插件配置中,选择"集群内服务账号"模式,无需手动配置kubeconfig,Jenkins会自动通过服务账号获取权限

三、初学者友好的学习资料推荐

  • Jenkins官方Kubernetes集成指南:从插件安装、集群配置到Pipeline编写,覆盖基础操作,步骤清晰
  • Kubernetes官方Jenkins部署示例:包含在K8s集群上部署Jenkins并配置CI/CD流程的实操案例,结合官方资源更易理解
  • Jenkins Pipeline入门手册:重点讲解Jenkinsfile的基本语法,以及如何在Pipeline中集成kubectl命令或Kubernetes插件
  • Windows环境本地K8s配置教程:针对Windows Server 2022,讲解如何搭建本地K8s集群(如Docker Desktop内置K8s或Minikube),确保集群可正常访问

内容的提问来源于stack exchange,提问作者user22025071

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 15:18:58