服务器运维:K3S下Jenkins 安装及配置的完整操作笔记
以下是本次 Jenkins 在 k3s 中部署的完整操作笔记:
1. 安装 Helm
| 步骤 | 命令 | 说明 |
|---|---|---|
| 下载 Helm | curl -fsSL https://mirrors.huaweicloud.com/helm/v3.18.4/helm-v3.18.4-linux-amd64.tar.gz -o helm.tar.gz | 使用国内镜像源,避免 GitHub 超时 |
| 解压安装 | tar -xzf helm.tar.gz && mv linux-amd64/helm /usr/local/bin/ | 安装到系统 PATH |
| 验证版本 | helm version | 确认 v3.18.4 |
2. 添加 Jenkins Chart 仓库
helm repo add jenkins https://charts.jenkins.io
helm repo update
3. 编写 values.yaml(⚠️ 关键)
⚠️ 镜像配置注意:Jenkins Chart 拼接逻辑为
repository:tag,不要单独设置registry字段,镜像拉取由 k3sregistries.yaml全局代理。
controller:
image:
repository: jenkins/jenkins
tag: lts-jdk17 # ✅ 正确 tag;2.568.3-jdk17 不存在
admin:
username: admin
password: admin123 # ⚠️ 部署后请尽快修改默认密码
ingress:
enabled: true
hostName: jenkins.local
path: /
annotations: {}
resources:
requests:
cpu: 500m
memory: 512Mi
limits:
cpu: 1000m
memory: 1Gi
4. 部署 Jenkins
| 步骤 | 命令 | 说明 |
|---|---|---|
| 创建命名空间 | kubectl create namespace jenkins | 隔离部署 |
| 安装 Release | helm install jenkins jenkins/jenkins -n jenkins -f values.yaml --version 5.9.56 | 指定 Chart 版本避免兼容问题 |
| 查看 Pod 状态 | kubectl get pods -n jenkins -w | 等待 2/2 Running |
| 验证 Ingress | kubectl get ingress -n jenkins | 确认 ADDRESS 和 HOSTS 正确 |
5. 访问验证
| 方式 | 命令 / 操作 | 说明 |
|---|---|---|
| 本地 hosts | 添加 39.107.52.178 jenkins.local | 浏览器直接访问 http://jenkins.local |
| curl 临时验证 | curl -H "Host: jenkins.local" http://39.107.52.178/ | 无需改 hosts,返回 200/302 即正常 |
| 登录凭证 | admin / admin123 | ⚠️ 首次登录后立即修改密码 |
⚠️ 常见问题速查
| 问题 | 原因 | 解决方案 |
|---|---|---|
| Pod ImagePullBackOff | 镜像 tag 不存在 | 改用 lts-jdk17,勿用版本号+jdk后缀 |
| Pod ContainerCreating | 镜像源 DNS 解析失败 | 检查 /etc/rancher/k3s/registries.yaml 中的 endpoint 是否可达 |
| Helm install 报错 | values.yaml 格式错误 | Ingress paths 不要嵌套额外层级,使用标准扁平结构 |
| 外网访问 404 | 安全组未放行 80 端口 | 添加入方向 TCP/80 规则 |
| 外网访问 404 | 未配置 Host 头 | 添加本地 hosts 或 curl 带 -H "Host: jenkins.local" |
Jenkins 2.568.3 (LTS JDK17) 已通过 Helm 成功部署至 k3s,Pod 2/2 Running,外网可通过 http://jenkins.local 访问。建议尽快修改默认密码,并继续配置 Kubernetes Cloud 及 GitLab 对接。
✅ Jenkins 部署完成
| 项目 | 状态 |
|---|---|
| Helm Release | deployed (jenkins-5.9.56) |
| Pod 状态 | 2/2 Running |
| Jenkins 版本 | 2.568.3 (LTS JDK17) |
| Ingress | jenkins.local → Traefik:80 |
| 外网访问 | ✅ http://39.107.52.178/ (需 Host header) |
| 登录页 | ✅ "Sign in - Jenkins" |
| 持久化存储 | 10Gi PVC (local-path) |
| 预装插件 | kubernetes, git, gitlab-plugin, blueocean 等 |
🔐 登录信息
用户名:
admin密码:
admin123
⚠️ 使用说明
由于 Ingress 使用 jenkins.local 域名,访问时需满足以下任一条件:
- 本地 hosts 绑定:在电脑
/etc/hosts添加39.107.52.178 jenkins.local,然后浏览器访问http://jenkins.local- curl 测试:
curl -H "Host: jenkins.local" http://39.107.52.178/- 修改为 IP 直接访问:如需直接用 IP 访问,可更新 Ingress hostName 为
39.107.52.178
📋 后续步骤
- 配置 Jenkins ↔ GitLab 对接(Webhook + 凭证)
- 配置 Kubernetes Cloud(动态 Agent)
- 搭建镜像仓库(ACR/Harbor)
- 编写首个 Pipeline
是否需要我协助配置 Jenkins 与宿主机 GitLab 的对接?
Jenkins 2.568.3 (LTS) 已通过 Helm 成功部署至 k3s 集群,Pod 运行正常,外网可通过 http://39.107.52.178/(Host: jenkins.local)访问,登录账号 admin/admin123。k3s v1.36.4 集群运行稳定,Traefik 接管 80/443 端口,GitLab 19.3.2 保留在宿主机 8080 端口未受影响。后续建议:1) 配置本地 hosts 或修改 Ingress 以方便访问;2) 尽快修改默认密码;3) 配置 Kubernetes Cloud 实现动态构建 Agent;4) 搭建镜像仓库完成 CI/CD 闭环。
hosts 解析

Windows:
# 以管理员身份运行 PowerShell 或记事本
notepad C:\Windows\System32\drivers\etc\hosts
# 在文件末尾添加:
39.107.52.178 jenkins.local
macOS / Linux:
sudo sh -c 'echo "39.107.52.178 jenkins.local" >> /etc/hosts'
验证配置
添加后刷新浏览器访问 http://jenkins.local,应跳转到 Jenkins 登录页。
⚠️ 如果不想修改 hosts,也可临时用 curl 验证:
curl -H "Host: jenkins.local" http://39.107.52.178/
已在本地 hosts 中添加 39.107.52.178 jenkins.local 映射,浏览器访问 http://jenkins.local 即可正常进入 Jenkins。若后续更换 IP 或域名,需同步更新 hosts 文件。
访问成功

更多推荐




所有评论(0)