查看k8s下Jenkins的插件在宿主机的路径

配置文件如下:

复制代码
StatefulSet
apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: jenkins-statefulset
  namespace: devops
spec:
  serviceName: "jenkins-hl"
  selector:
    matchLabels:
      app: jenkins
  template:
    metadata:
      labels:
        app: jenkins
    spec:
      nodeSelector:
        devops: "true"
      serviceAccount: jenkins-sa
      volumes:
        - name: volume-localtime
          hostPath:
            path: /usr/share/zoneinfo/Asia/Shanghai
      containers:
        - name: jenkins-container
          image: jenkins/jenkins:2.492.3-lts
          imagePullPolicy: IfNotPresent
          securityContext:     # 添加参数启用容器root权限
            privileged: true
            runAsUser: 0        # root身份运行
          env:
          - name: JAVA_OPTS
            value: "-Xms2048m -Xmx2048m -Dhudson.security.csrf.GlobalCrumbIssuerConfiguration.DISABLE_CSRF_PROTECTION=true"
          ports:
            - name: http
              containerPort: 8080
            - name: agent
              containerPort: 50000  #jenkins通讯需要设置8080,50000两个端口
          resources:
            limits:
              cpu: 500m
              memory: 2Gi
          livenessProbe:        # 存活探针
            httpGet:
              path: /login
              port: 8080
            initialDelaySeconds: 60
            timeoutSeconds: 5
            failureThreshold: 12
          readinessProbe:        # 就绪探针
            httpGet:
              path: /login
              port: 8080
            initialDelaySeconds: 60
            timeoutSeconds: 5
            failureThreshold: 12
          volumeMounts:
            - name: data
              mountPath: /var/jenkins_home
            - name: volume-localtime
              mountPath: /etc/localtime
 
  volumeClaimTemplates:
  - metadata:
      name: data
    spec:
      accessModes: ["ReadWriteOnce"]
      storageClassName: "nfs-client"
      resources:
        requests:
          storage: 35Gi

怎么查看宿主机存放Jenkins插件所在的地址?

在你提供的这个 StatefulSet 配置中,Jenkins 下载的插件、jobs 配置、用户数据等全部内容都存储在下面这个挂载路径对应的持久卷里:

volumeMounts: - name: data mountPath: /var/jenkins_home

也就是说:
容器内路径/var/jenkins_home
实际存放位置 :由 volumeClaimTemplates 动态创建的 PVC(PersistentVolumeClaim)

插件等文件最终在宿主机上的位置

最终位置取决于你集群使用的 StorageClass nfs-client 具体把 PV 绑定到了哪个 NFS 共享目录。

大多数情况下,使用 nfs-client StorageClass 的实际文件位置有以下几种常见情况(按概率从高到低排序):

序号 存储方式 宿主机大概率路径示例 如何确认具体路径
1 集群内统一 NFS 服务器 /data/nfs/jenkins/data-jenkins-statefulset-0-pvc-xxxxx 最常见方式,看 NFS 服务器导出目录
2 nfs-subdir-external-provisioner /nfs-data/devops-data-jenkins-statefulset-0-pvc-xxxxx 看 provisioner 命名规则(通常带 namespace+名称)
3 每个节点本地目录(较少见) 某个节点上的 /mnt/nfs/jenkins/... 看节点上 nfs 挂载点
4 Longhorn / Rook Ceph 等分布式存储 基本看不到真实路径,通常在 Longhorn UI 或 Ceph 里查看 通过存储系统 UI 查看

如何一步步找到插件文件在宿主机上的真实位置(推荐操作流程)

  1. 先找到对应的 PVC

    kubectl get pvc -n devops | grep jenkins # 通常会看到类似: # data-jenkins-statefulset-0 Bound pvc-xxx-xxx 35Gi RWO nfs-client 2d

  2. 查看 PVC 绑定的 PV

    kubectl describe pvc data-jenkins-statefulset-0 -n devops

重点看这几行:

Volume: pvc-3a4b5c6d-.... VolumeMounts: /var/jenkins_home from data (rw)

  1. 查看 PV 的详细信息(最关键一步)

    kubectl describe pv pvc-3a4b5c6d-... # 把上面看到的 pv 名字填进来

你会看到类似这样的信息:

NFS: Server: 192.168.10.200 Path: /kubernetes/nfs/devops/data-jenkins-statefulset-0-pvc-3a4b5c6d-...

此时你就已经找到答案了: 宿主机上(或 NFS 服务器上)的真实路径 就是:

/kubernetes/nfs/devops/data-jenkins-statefulset-0-pvc-3a4b5c6d-...

  1. 登录到 NFS 服务器(或挂载了该 NFS 的节点),直接进入该目录:

    cd /kubernetes/nfs/devops/data-jenkins-statefulset-0-pvc-3a4b5c6d-... ls -la # 你会看到熟悉的 jenkins 目录结构 plugins/ jobs/ users/ config.xml hudson.model.UpdateCenter.xml secret.key ...

总结一句话

Jenkins 下载的插件文件在宿主机上的位置 = NFS 服务器(或挂载点)上 PVC 对应的目录

最常见的路径形式为:

复制代码

/你的NFS导出根目录/命名空间_资源名称_序号_pvc-xxxxx/plugins/

执行上面第 1→2→3 步,你基本 2 分钟内就能定位到具体目录。

建议把这个路径记录下来,后续备份、迁移、排查插件问题都会非常方便。

相关推荐
杭州杭州杭州2 小时前
Docker
运维·docker·容器
一体化运维管理平台3 小时前
容器监控难题破解:美信监控易全面支持K8s、Docker
云原生·容器·kubernetes
qiubinwei4 小时前
kubeadm部署K8S集群(踩坑实录)
云原生·容器·kubernetes
等什么君!4 小时前
Docker 数据卷:MySQL 数据同步实战
运维·docker·容器
礼拜天没时间.4 小时前
《Docker实战入门与部署指南:从核心概念到网络与数据管理》:环境准备与Docker安装
运维·网络·docker·容器·centos
张小凡vip5 小时前
Kubernetes---存储方案:Rook自动结合Ceph
ceph·容器·kubernetes
Cyber4K5 小时前
【Kubernetes专项】K8s 控制器 StatefulSet 从入门到企业实战应用
云原生·容器·kubernetes
风流倜傥唐伯虎5 小时前
Windows 版 Docker 的 Linux 环境(docker-desktop)与 builder-jammy-base:latest 镜像核心区别
linux·docker·容器
Ha_To5 小时前
2026.1.30 搭建docker仓库
运维·docker·容器
lpfasd1235 小时前
Docker Desktop 在国内使用的囧境:镜像拉取失败、加速器失效与破局之道
运维·docker·容器