Portainer 替代?

2023-09-08 13:51:23 +08:00
 kid1412621
现在用的 portainer 管理 homelab 部署的一批服务,但 portainer 不支持 Mobile Web Page ,记得专门有个 issue 说暂时不支持。

此外,*arr 推荐不要用 portainer 并罗列出其问题:
https://wiki.servarr.com/sonarr/installation/docker

- Incorrect order of source and target of mounts
- Inconsistent case-sensitivity
- No automatically created custom networks for inter-container communication
- Inconsistent compose implementations on different architectures
- Pulls every tag on update when you don't set a specific tag
- Capabilities are hidden and some don't work at all on ARM platforms

其它的替代品用过 yacht (卡得要死),lazydocker (停止维护)。
还有没有支持 docker compose 部署的 admin UI 啊?
2485 次点击
所在节点    Docker
15 条回复
locoz
2023-09-08 14:06:07 +08:00
我以前也是用 Unraid 自己的 UI+Portainer ,但后面直接改用 K8S 了,算是个上位替代吧
wunonglin
2023-09-08 14:07:37 +08:00
还不如用 k3s+lens
billzhuang
2023-09-08 14:56:27 +08:00
k3s + cdk8s+
Jirajine
2023-09-08 15:16:35 +08:00
> Portainer should only for viewing docker container logs / container status.
非常赞同这个 wiki 的建议。
另一个替代品是 podman-desktop ,没开玩笑,比 docker 更开放,支持各种后端。
ptsa
2023-09-08 17:03:14 +08:00
@Jirajine #4 podman 有类似 Portainer 这样的 ui 么
kid1412621
2023-09-08 23:19:10 +08:00
@Jirajine #4 今天还遇到了 podman 不支持 buildkit 的问题
kid1412621
2023-09-08 23:19:42 +08:00
@locoz #1 k8s 用什么 ui 呢
locoz
2023-09-10 01:07:12 +08:00
@kid1412621 #6 我是直接用 Flux 做添加应用部署、调整部署配置这种操作,纯文件形式,依靠 Git 管理,不用 UI 。用 UI 的时候主要是看当前日志、进入容器操作、临时停掉一些容器之类的,我个人是 Lens 用的比较多,有时候没电脑或者不能直连服务器就用 KubeSphere 。
kid1412621
2023-09-10 11:52:26 +08:00
@locoz #8 这个配置是纯的 k8s ymal 吗
locoz
2023-09-10 18:51:52 +08:00
@kid1412621 #8 算是,但严格来说都是写 helm 的 values ,原生的 k8s 配置我只在临时测试的时候用用。

有些没有官方 helm 包的家用场景应用(比如常见的影视类的 sonarr 、radarr 之类的)都是用的 https://bjw-s.github.io/helm-charts/docs/ 做的,大幅简化了配置复杂度,基本写完一次剩下的就是复制粘贴改个镜像地址、镜像版本、容器内的端口号、子域名的名称,需要的情况下再改个 pvc (给容器挂载的存储空间)的名称和申请空间量),比 UI 配的还方便些。

镜像更新会有 https://github.com/apps/renovate 自动检测并创建"Pull requests",所以版本更新只需要点一下"Rebase and merge",也是比较方便。
kid1412621
2023-09-10 22:20:24 +08:00
@locoz #10 感谢! 空了我也折腾下。随便问下,内外网域名你是怎么管理的?
locoz
2023-09-11 10:30:20 +08:00
@kid1412621 #10 我目前是四种方案混合使用:
1 、内网环境,内网 DNS 做个泛域名解析指向 K8S 中 Traefik ( Ingress )的 Service IP ( LoadBalancer 模式),LoadBalancer 是基于 kube-vip 做的,集群中的节点离线也会自动切到其他节点,IP 不变。
2 、公网 VPN 连回家变成内网环境,与 1 相同。
3 、公网直连,Ingress 给部分服务(比如 Emby )配了直连域名(非直连域名配了 Traefik 的中间件,禁止非内网 IP 访问),直连域名通过 DDNS 指向公网 IP ,访问直连域名+映射后的端口就是直连。
4 、公网免端口、隐藏服务端 IP 连接,用腾讯云 CDN ,源地址指向 DDNS 域名+映射后的端口,然后就是跟常规的公网服务一样了。

通常来说,我自己的设备是用 1 和 2 ,部分不方便连接或没法连接 VPN 的设备用 4 ,全都是统一化的体验。需要给别人用的那些服务就是用 3 和 4 ,流量较大的优先用 3 ,量少、短期使用的用 4 。

域名解析方面有个注意点,我无论是公网还是内网都是做的泛解析,原因是 HTTPS 证书的签发记录可以被查到,而有些服务我不想被人直接知道,但又需要保持公网和内网一致的体验,所以不能子域名一个一个那么设。而且泛解析处理起来也更省事些,cert-manager 可以自动处理泛域名证书的签发和续签,所有服务只需要签一次,加上 kubed 可以同步 K8S 中的 Secret 到多个命名空间,可以轻松解决在分多命名空间管理、不给 Traefik 设置默认证书的情况下,多 Ingress 的 HTTPS 访问问题。

不给 Traefik 设置默认证书的原因是,如果你设置了默认证书,那么只要访问到你的 IP+HTTPS 端口就能根据证书直接得到域名,进而可能关联到你的 DDNS 域名,这也是不太安全的。
locoz
2023-09-11 10:35:21 +08:00
@kid1412621 #10 要折腾可以参考 https://github.com/onedr0p/flux-cluster-template 这个项目,虽然很多东西比较多余、非最优解或比较复杂,但核心的那些工具和设计方式很好,可以基于这个模板慢慢改成自己的处理方式。
kid1412621
2023-09-11 11:30:35 +08:00
@locoz #12 有点困惑我的就是 有没有内外网域名一致,这样就不用每次切换了
locoz
2023-09-11 11:41:39 +08:00
@kid1412621 #13 方案 1 、2 、4 就是完全一致的地址(同样的域名+同样的默认 443 端口)

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/972029

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX