Jellyfin 上 K8s 前,先把镜像、PVC 和权限排一遍

简介: 本文记录Jellyfin从Docker Compose迁移至K8s测试环境的典型问题排查:镜像拉取慢、PVC未绑定致媒体目录为空、容器用户权限不足、路径配置错误等。强调K8s中“宿主机→PV→PVC→volumeMount→容器路径”的分层模型,须逐层验证,避免误判。

最近把一个媒体服务从单机 Docker Compose 迁到 K8s 测试环境。服务本身不复杂,但迁移过程中踩到几个很典型的问题:

  • 镜像拉取慢。
  • Pod 启动后媒体目录为空。
  • PVC 挂载正常,但容器用户读不到文件。
  • 页面能打开,但扫描不到媒体库。

这篇只记录排查过程。

目标结构

单机 Compose 里通常是:

volumes:
  - /data/media/movies:/data/movies:ro

迁到 K8s 后,路径关系变成:

宿主机/存储系统 → PV → PVC → Pod volumeMount → 容器内路径

所以不能只问“目录在不在”,还要看 PVC 有没有正确挂进容器。

镜像预检

先不急着 apply Deployment,先确认节点能拉镜像:

kubectl get nodes
kubectl run image-check --image=<team-registry>/jellyfin:latest --restart=Never --command -- sleep 3600
kubectl describe pod image-check
kubectl delete pod image-check

如果这里已经 ImagePullBackOff,就先处理镜像仓库、DNS、代理或节点网络。

不要把镜像拉取失败误判成应用配置问题。

PVC 是否绑定

看 PVC:

kubectl get pvc
kubectl describe pvc media-pvc

状态必须是 Bound

如果 PVC 没绑定,Pod 即使创建了,也不可能正常读取媒体目录。

Pod 里看挂载路径

Deployment 示例:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: jellyfin
spec:
  replicas: 1
  selector:
    matchLabels:
      app: jellyfin
  template:
    metadata:
      labels:
        app: jellyfin
    spec:
      containers:
        - name: jellyfin
          image: <team-registry>/jellyfin:latest
          ports:
            - containerPort: 8096
          volumeMounts:
            - name: media
              mountPath: /data/movies
              readOnly: true
            - name: config
              mountPath: /config
      volumes:
        - name: media
          persistentVolumeClaim:
            claimName: media-pvc
        - name: config
          persistentVolumeClaim:
            claimName: jellyfin-config-pvc

进入 Pod:

kubectl exec -it deploy/jellyfin -- sh
ls -lah /data
ls -lah /data/movies

如果 /data/movies 为空,要回到 PV/PVC 和 StorageClass 排查。

应用后台填写容器内路径

K8s 里也一样。Jellyfin 后台应该填写:

/data/movies

而不是节点上的真实路径,也不是存储系统里的路径。

应用只认识容器内路径。

权限排查

如果容器内能看到目录,但应用读不到,继续看权限:

kubectl exec -it deploy/jellyfin -- id
kubectl exec -it deploy/jellyfin -- ls -lah /data/movies

必要时通过 securityContext 指定用户:

securityContext:
  runAsUser: 1000
  runAsGroup: 1000
  fsGroup: 1000

不同存储插件对 fsGroup 的支持不完全一样,实际要结合 StorageClass 验证。

Service 和 Ingress 放到后面

如果媒体库为空,先别急着排 Ingress。

我的顺序是:

  1. 镜像能否拉取。
  2. Pod 是否 Running。
  3. PVC 是否 Bound。
  4. 容器内是否看到 /data/movies
  5. 容器用户是否能读文件。
  6. Jellyfin 后台是否填写容器内路径。
  7. 最后再看 Service / Ingress。

Ingress 主要影响页面访问,不是媒体库扫描的第一嫌疑。

小结

Jellyfin 从 Docker Compose 迁到 K8s,最容易错的不是 YAML 语法,而是路径模型变了。

Compose 里是宿主机路径挂到容器路径。
K8s 里是 PV/PVC 再挂到容器路径。

应用最终看到的仍然只有容器内路径。

所以排查时别跳层:先镜像,再 PVC,再 volumeMount,再权限,最后才是应用和 Ingress。

相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。 &nbsp; &nbsp; 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
Kubernetes PyTorch 算法框架/工具
2026年4月实测:我把公司K8s集群的Docker镜像拉取速度提升了20倍
上周公司AI训练节点扩容,PyTorch镜像直连拉取32分钟/个,8台集群部署几近瘫痪。实测5种加速方案后,发现小众但稳定的「docker.1ms.run」服务——3.8GB镜像仅需1分48秒,提速18倍!一键配置Docker/Containerd,CI/CD构建从20分钟回归3分半。2026年境内镜像拉取困局,务实解法在此。(239字)
|
2月前
|
存储 编解码 人工智能
阿里云服务器2核4G和4核8G租用价格:不同实例收费价格标准及最新活动价格
阿里云服务器提供2核4G与4核8G多种实例规格,价格从9.9元/月起,企业用户享199元/年特惠,满足不同性能需求。实例包括经济型e实例、通用算力型u1/u2i/u2a实例、计算型c9i实例等,适用于轻量级应用到企业级通用应用、视频处理、AI训练等多种场景。用户可根据业务需求选择实例规格与计费模式,长期使用建议包年包月。阿里云还提供优惠券和补贴活动,进一步降低成本,适合不同负载和预算的用户。
652 3
|
16天前
|
人工智能 运维 网络安全
我这半年实际使用过的 4 款 SSH 工具体验分享
本文精选4款主流SSH工具:轻量稳定的PuTTY、Windows全能神器MobaXterm、跨平台云同步的Termius,以及AI驱动的智能终端Aeroshell,覆盖从经典运维到AI辅助新场景,助开发者与运维人员高效管理服务器。(239字)
501 1
我这半年实际使用过的 4 款 SSH 工具体验分享
|
16天前
|
监控 固态存储 Java
Maven 本地仓库优化:SSD+ 目录结构调整最佳实践
本文深入讲解了 Maven 本地仓库优化的完整方案,包含 SSD 迁移、目录结构规划、清理策略、多版本管理等企业级最佳实践。通过真实案例展示了如何将 50GB 仓库优化到 20GB(减少 60%),构建时间从 12 分钟缩短到 2 分钟(提升 6 倍)。提供完整的迁移脚本、清理工具和监控方案,帮助开发者解决磁盘空间不足、I/O 性能瓶颈等问题。适合 Java 开发者、DevOps 工程师阅读。
|
2月前
|
弹性计算 关系型数据库 数据库
如何获取和使用阿里云优惠券?2026年领取渠道及使用指南
阿里云优惠券含代金券、满减券、折扣券三类,覆盖ECS/OSS/RDS等主流产品。新用户、学生(300元无门槛)、企业(最高1728元)均可领,通过权益中心或活动页领取,下单自动匹配抵扣,助您低成本上云。
329 2
|
1月前
|
JSON 前端开发 测试技术
Kimi-k2.6 流式回包乱序后,我这样接入 ​D​М‌X​Α‌РΙ
kimi-k2.6 不止于聊天,其核心价值在于“可执行交付”:统一支持代码生成、长时程任务、Agent协作、文档→技能复用及多格式输出,具备工程级组合能力。它契合企业对“单模型多工位”的刚需——在研发、内容中台等场景中,稳定闭环完成需求拆解、编码、文档整理等多步任务。真正落地需依托DMXAPI网关实现标准化API集成,解决Web路径的不确定性,让模型能力成为可度量、可审计、可持续的生产基础执行层。(239字)
|
1月前
|
人工智能 Linux API
hermes agent 安装教程:安装优化 + 模型配置 + 工具启用指南
Hermes Agent 是 Nous Research 于 2026 年发布的开源自主进化 AI 智能体框架(MIT 协议,Python 编写)。它通过任务沉淀技能、持久化记忆、原生多工具集成与并行子智能体,实现“越用越强”。支持 Linux/macOS/WSL2,安装便捷,面向个人与企业的新一代私有化 AI 助手。
|
2月前
|
人工智能 监控 Kubernetes
LoongCollector + ACS Agent Sandbox:构建 AI Agent 生产级运行平台
文章介绍了阿里云ACSAgentSandbox与LoongCollector协同构建的AIAgent生产级运行平台,通过沙箱隔离保障运行时安全,并以高性能、全链路可观测能力解决Agent行为不可预测和执行风险难题。
1274 50
|
1月前
|
人工智能 运维
Agentic Ops 企业级可观测性运维智能体实战研讨会,邀您5月29日北京见!
阿里云将于5月29日在北京阿里巴巴朝阳科技园举办【Agentic Ops已来:企业级可观测性运维智能体实战】技术沙龙,聚焦企业级可观测性运维智能体实战。扫码或点击链接立即报名!
|
1月前
|
运维 网络协议
KKCE 在线 Ping|实用网络连通性检测小工具
KKCE在线Ping是一款免安装、浏览器直用的网络检测工具,支持多节点同步测试域名/IP连通性、延迟与丢包率,直观定位卡顿、访问异常等基础网络问题,兼顾个人排查与运维需求。(239字)
495 1