时间:2025-02-22 20:41
人气:
作者:admin
几年前在云服务器上搭建了一套 TTRss + RssHub 集群, 用于阅读文章.
具体可以参见这篇文章: 使用 K8S 部署 RSS 全套自托管解决方案 - RssHub + Tiny Tiny Rss - 东风微鸣技术博客
近期云服务器要到期了, 刚好趁此机会将其从云上迁移到家里的 Homelab2 集群.
迁移是2025年2月22日上午做的, 结果非常顺利. 做完后太太还没起床呢, 那就再利用这段时间总结一下迁移过程.
内容有些流水账, 如果有疑问/建议欢迎交流.
ewhisper.cnwest-beta.ts.net综上, 其实不只是简单迁移, 还需要相应调整存储/网络相关配置.
这里的迁移场景非常具体, 只针对我的使用场景, 但是迁移的规划/步骤/思路可以供大家参考.
????Notes:
我的完整迁移后代码位于: homelab2/apps/rsshub at master · east4ming/homelab2
本文出于长度考虑, 就不粘贴细节脚本/yaml了, 感兴趣的可以去 repo 查看.
已经通过 Velero 备份为 json 文件. 再通过脚本 kubectl-neat.sh 转换为 yaml 并移除不需要的字段.
????Notes:
kubectl-neat.sh用到了 kubectl krew 插件: neat
dump.rdbpg_dumpall -c -U postgres > export.sql????️Reference:
数据库更新或迁移|???? Awesome TTRSS另外注意, 备份 Postgres 数据前可以先停止 ttrss Deployment.
原集群上, 停掉所有 Deploy, 停止所有服务.
修改 Manifests 以适配新的 Homelab2 集群.
volsync.backube/privileged-movers 注解以启用 volsync特权备份功能lost+found 目录, 否则启动报错 (rook-ceph PV 特性导致必须作此调整)/var/www/feed-icons/ 目录的权限设置为 777SELF_URL_PATH 为新的域名.gitignore) (因为我的 repo 是public 的, 所以密码要避免暴露)cd apps/rsshub
kubectl apply -f ns.yaml
kubectl apply -f deploy/ -f pvc/ -f secret/ -f service/ -f ingress/
先停掉除了 Postgres 以外的所有 Deploy, 防止脏数据.
先将 export.sql 复制到 Postgres PV 中.
再进入 Postgres pod 中执行以下命令恢复数据:
cat export.sql | psql -U postgres
将 dump.rdb 复制到 Redis PV 中. (还需要 chown)
启动所有 Deploy.
登录 TTRss 域名: ttrss.west-beta.ts.net, 进入: 偏好设置 -> 供稿设置 -> 逐一查看, 将URL为 https://rss.ewhisper.cn... 修改为: https://rss.west-beta.ts.net...
因为 ArgoCD 不监控子目录的 yaml 文件, 所以需要将所有 yaml 文件都放在一个目录中.
使用脚本 move_and_rename.sh 执行调整, 调整后修改 .gitignore 文件并删除不再需要的空目录.
以上为本次 TTRss 迁移的总结, 详细步骤对各位没啥用. 但是希望迁移的规划/流程/思路可以提供价值.
三人行, 必有我师; 知识共享, 天下为公. 本文由东风微鸣技术博客 EWhisper.cn 编写.
Ubuntu离线环境部署Kubernetes v1.31.3(ARM64)