返回主页

目录

Jenkins 在 Kubernetes 上的搭建

本文基于 Jenkins 官方 Kubernetes 安装文档进行实践,不重复展开全部官方配置文件,而是重点记录部署思路、关键配置改动以及实际验证过程。涉及的 YAML 仅保留与当前环境相关的核心片段。 YAML 配置文件的完整版本请参考 Jenkins 官方文档:https://www.jenkins.io/doc/book/installing/kubernetes/

安装

步骤概括

步骤官方文档写的很详细了,主要写我更改了什么。

因为我这是学习场景下的一次简单尝试,执行了创建命名空间、创建服务账户、创建持久卷、创建无状态负载,创建服务访问 service,就可以通过端口转发访问 Jenkins 了。更改概括如下:

  1. 单节点 Kubernetes 集群部署 Jenkins。
  2. 存储卷使用了 ‘local’ 存储类,将在节点 /mnt/jenkins-data 创建 PersistentVolume 卷。更改了 spec.nodeAffinity.required.nodeSelectorTerms[].matchExpressions[].values 的值为工作节点的主机名。

    单节点部署方式工作节点的主机名使用 kubectl get nodes 命令获取。

  3. PV 的 YAML 文件还更改了 spec.local.path/mnt/jenkins-data

    这样可以减少干扰 /mnt 目录下的其他数据。

  4. 访问方式使用的是 SSH 端口转发。

    转发使用的是 ssh -L 32000:127.0.0.1:32000 <用户名>@<服务器IP> -N 命令,参数说明如下:

    该命令表示在本地监听 32000 端口,并将流量转发到服务器上的 32000 端口。

    -N 表示只做转发,不登录执行远程命令。 建立转发后,在本地访问 http://127.0.0.1:32000

卸载

卸载主要是删除 Jenkins 相关的 Kubernetes 资源,删除或者重新安装简单流程如下:

完整卸载

完整删除 Jenkins,可以按与安装相反的大致顺序进行清理:

  1. 删除 Service。
  2. 删除 Jenkins Deployment。
  3. 删除 PVC / PV。
  4. 删除服务账户及相关权限配置。
  5. 删除命名空间。
  6. 删除节点上的本地数据目录 /mnt/jenkins-data

简单重装

如果只是想以“清除数据”的方式重新安装,那么不一定需要完整删除全部 Kubernetes 资源。

在当前这种单节点 + local PV 的学习环境中,通常只需要:

  1. 删除 Jenkins Deployment。
  2. 删除或清空本地数据目录 /mnt/jenkins-data

这样做的本质是:

注意事项

  1. local PV 对应的目录必须存在

如果 PV 中配置的是:

spec:
  local:
    path: /mnt/jenkins-data

那么节点上的 /mnt/jenkins-data 目录必须提前创建。 否则 Pod 会在挂载阶段失败,并出现类似报错:

MountVolume.NewMounter initialization failed for volume "jenkins-pv-volume" : path "/mnt/jenkins-data" does not exist
  1. 关于误删除 /mnt 目录后的重建
sudo mkdir -p /mnt/jenkins-data
sudo chown -R 1000:1000 /mnt/jenkins-data
sudo chmod 755 /mnt/jenkins-data

参考资料