以下是本次 Jenkins 在 k3s 中部署的完整操作笔记:

1. 安装 Helm

步骤命令说明
下载 Helmcurl -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 字段,镜像拉取由 k3s registries.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隔离部署
安装 Releasehelm install jenkins jenkins/jenkins -n jenkins -f values.yaml --version 5.9.56指定 Chart 版本避免兼容问题
查看 Pod 状态kubectl get pods -n jenkins -w等待 2/2 Running
验证 Ingresskubectl 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 Releasedeployed (jenkins-5.9.56)
Pod 状态2/2 Running
Jenkins 版本2.568.3 (LTS JDK17)
Ingressjenkins.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 域名,访问时需满足以下任一条件:

  1. 本地 hosts 绑定:在电脑 /etc/hosts 添加 39.107.52.178 jenkins.local,然后浏览器访问 http://jenkins.local
  2. curl 测试curl -H "Host: jenkins.local" http://39.107.52.178/
  3. 修改为 IP 直接访问:如需直接用 IP 访问,可更新 Ingress hostName 为 39.107.52.178

📋 后续步骤

  1. 配置 Jenkins ↔ GitLab 对接(Webhook + 凭证)
  2. 配置 Kubernetes Cloud(动态 Agent)
  3. 搭建镜像仓库(ACR/Harbor)
  4. 编写首个 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 文件。

访问成功

Logo

AtomGit AI 社区提供模型库、数据集、Agent、Token等资源

更多推荐